Changes on clone are reflected on the original node also

Created on 22 November 2023, about 1 year ago
Updated 12 May 2024, 7 months ago

Problem/Motivation

Changes on cloned node are also reflected on the original node.
I use Site studio to populate the node content.
When there is a chnage in the site studio component of the cloned node, same changes are reflected in the original node as well.

Steps to reproduce

Clone a node.
Make changes in the site studio components.
Save the node.
View both original and cloned node, both show the changes, whereas expected result is that the original node must not have the changes.

Proposed resolution

Remaining tasks

User interface changes

API changes

Data model changes

🐛 Bug report
Status

Postponed: needs info

Version

1.16

Component

Code

Created by

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

  • Issue created by @syeda-farheen
  • Status changed to Postponed: needs info about 1 year ago
  • 🇬🇧United Kingdom scott_euser

    It might be that this needs to be moved to Acquia support as "Site Studio" seems to be closed source. Not sure how the maintainers will be able to reproduce & debug here. Probably needs Acquia to provide a patch.

  • 🇵🇹Portugal jrochate

    I am not using site studio and I got the same problem:
    - when cloning a node with Layout Paragraphs, we can see that we got a duplication of IDs

    Clones node

         "x-default" => array:27 [▼
            0 => array:2 [▼
              "target_id" => "5747"
              "target_revision_id" => "111694"
            ]
            1 => array:2 [▼
              "target_id" => "5748"
              "target_revision_id" => "111695"
            ]
            2 => array:2 [▼
              "target_id" => "5749"
              "target_revision_id" => "111696"
            ]
            3 => array:2 [▼
              "target_id" => "5750"
              "target_revision_id" => "111697"
            ]
            4 => array:2 [▼
              "target_id" => "5751"
              "target_revision_id" => "111698"
            ]
            5 => array:2 [▼
              "target_id" => "5752"
              "target_revision_id" => "111699"
            ]
            6 => array:2 [▼
              "target_id" => "5765"
              "target_revision_id" => "111700"
            ]
            7 => array:2 [▼
              "target_id" => "5766"
              "target_revision_id" => "111701"
            ]
            8 => array:2 [▼
              "target_id" => "5767"
              "target_revision_id" => "111702"
            ]
            9 => array:2 [▼
              "target_id" => "5753"
              "target_revision_id" => "111703"
            ]
            10 => array:2 [▼
              "target_id" => "5754"
              "target_revision_id" => "111704"
            ]
            11 => array:2 [▼
              "target_id" => "5755"
              "target_revision_id" => "111705"
            ]
            12 => array:2 [▼
              "target_id" => "5756"
              "target_revision_id" => "111706"
            ]
            13 => array:2 [▼
              "target_id" => "5757"
              "target_revision_id" => "111707"
            ]
            14 => array:2 [▼
              "target_id" => "5758"
              "target_revision_id" => "111708"
            ]
            15 => array:2 [▼
              "target_id" => "5759"
              "target_revision_id" => "111709"
            ]
            16 => array:2 [▼
              "target_id" => "5760"
              "target_revision_id" => "111710"
            ]
            17 => array:2 [▼
              "target_id" => "5761"
              "target_revision_id" => "111711"
            ]
            18 => array:2 [▼
              "target_id" => "5762"
              "target_revision_id" => "111712"
            ]
            19 => array:2 [▼
              "target_id" => "5763"
              "target_revision_id" => "111713"
            ]
            20 => array:2 [▼
              "target_id" => "5764"
              "target_revision_id" => "111714"
            ]
            21 => array:2 [▼
              "target_id" => "5768"
              "target_revision_id" => "111715"
            ]
            22 => array:2 [▼
              "target_id" => "5769"
              "target_revision_id" => "111716"
            ]
            23 => array:2 [▼
              "target_id" => "5770"
              "target_revision_id" => "111717"
            ]
            24 => array:2 [▶]
            25 => array:2 [▶]
            26 => array:2 [▶]

    Original node, now with the clone paragraphs back to it:

          "x-default" => array:42 [▼
            0 => array:2 [▼
              "target_id" => "5716"
              "target_revision_id" => "112067"
            ]
            1 => array:2 [▼
              "target_id" => "5717"
              "target_revision_id" => "112068"
            ]
            2 => array:2 [▶]
            3 => array:2 [▶]
            4 => array:2 [▶]
            5 => array:2 [▶]
            6 => array:2 [▶]
            7 => array:2 [▶]
            8 => array:2 [▶]
            9 => array:2 [▶]
            10 => array:2 [▶]
            11 => array:2 [▶]
            12 => array:2 [▶]
            13 => array:2 [▶]
            14 => array:2 [▶]
            15 => array:2 [▶]
            16 => array:2 [▶]
            17 => array:2 [▶]
            18 => array:2 [▶]
            19 => array:2 [▶]
            20 => array:2 [▼
              "target_id" => "5741"
              "target_revision_id" => "112087"
            ]
            21 => array:2 [▼
              "target_id" => "5747"
              "target_revision_id" => "112088"
            ]
            22 => array:2 [▼
              "target_id" => "5748"
              "target_revision_id" => "112089"
            ]
            23 => array:2 [▼
              "target_id" => "5749"
              "target_revision_id" => "112090"
            ]
            24 => array:2 [▼
              "target_id" => "5750"
              "target_revision_id" => "112091"
            ]
            25 => array:2 [▼
              "target_id" => "5751"
              "target_revision_id" => "112092"
            ]
            26 => array:2 [▼
              "target_id" => "5752"
              "target_revision_id" => "112093"
            ]
            27 => array:2 [▼
              "target_id" => "5753"
              "target_revision_id" => "112094"
            ]
            28 => array:2 [▼
              "target_id" => "5754"
              "target_revision_id" => "112095"
            ]
            29 => array:2 [▼
              "target_id" => "5755"
              "target_revision_id" => "112096"
            ]
            30 => array:2 [▼
              "target_id" => "5756"
              "target_revision_id" => "112097"
            ]
            31 => array:2 [▼
              "target_id" => "5757"
              "target_revision_id" => "112098"
            ]
            32 => array:2 [▼
              "target_id" => "5758"
              "target_revision_id" => "112099"
            ]
            33 => array:2 [▼
              "target_id" => "5759"
              "target_revision_id" => "112100"
            ]
            34 => array:2 [▼
              "target_id" => "5760"
              "target_revision_id" => "112101"
            ]
            35 => array:2 [▼
              "target_id" => "5761"
              "target_revision_id" => "112102"
            ]
            36 => array:2 [▼
              "target_id" => "5762"
              "target_revision_id" => "112103"
            ]
            37 => array:2 [▼
              "target_id" => "5763"
              "target_revision_id" => "112104"
            ]
            38 => array:2 [▼
              "target_id" => "5764"
              "target_revision_id" => "112105"
            ]
            39 => array:2 [▼
              "target_id" => "5765"
              "target_revision_id" => "112106"
            ]
            40 => array:2 [▼
              "target_id" => "5766"
              "target_revision_id" => "112107"
            ]
            41 => array:2 [▼
              "target_id" => "5767"
              "target_revision_id" => "112108"
            ]
          ]
  • 🇮🇳India codersrini Chennai

    I have the same issue. Im just using layout builder with a custom block type (card multiple) that has paragraph. When a node is cloned and updated content on the cloned paragraph is reflected in the origin node. 50% of my custom block types (at-least 10) are using paragraphs.

  • 🇬🇧United Kingdom scott_euser

    Might be worth checking https://www.drupal.org/project/entity_clone as the module homepage seems to suggest a wider range of support for nested entities (clone needs to clone seperate entities at the same time or the references will stay the same). E.g. If you have a reference to an author you wouldn't expect a duplicate person but if you have a reference to a block or paragraph you would.

    The module homepage here does suggest support for paragraphs but something is going wrong there it seems.

    Browsing the issue queue I could see 🐛 Cloning Entities with Layout Paragraphs breaks structure and moves subparagraphs into Disabled Items RTBC and 🐛 Nested paragraph support RTBC have working patches. Would be good if you could try those out and see if it solves.

    Hope one of these routes helps!

  • 🇮🇳India codersrini Chennai

    Thanks for the suggestions.
    I used entity_clone long back. I want a lighter module just to clone nodes.
    And I tested the mentioned patches before adding my previous comment. It did not help.
    Also, as said, I use layout builder with custom block types and do not use layout paragraphs.

    But, I noticed below issue and used the mentioned patch and that has WORKED.
    https://www.drupal.org/project/quick_node_clone/issues/3100117 🐛 Inline blocks from layout builder not cloned properly Needs review
    https://git.drupalcode.org/project/quick_node_clone/-/merge_requests/22/...

Production build 0.71.5 2024