Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Set copy flags when copying container. #60

Merged
merged 1 commit into from
Sep 12, 2016
Merged

Conversation

jone
Copy link
Member

@jone jone commented Aug 31, 2016

⚠️ Target: 2.2.x (Plone 4), see #61 for Plone 5

Issue:
When copying a DX container which has AT children, the UID of the AT children was not updated.
The reason for the error is that the DX container copy did not have the _v_is_cp flag while the AT children were processed and thus the flag was not properly delegated.

Solution:
By copying the _v_is_cp and _v_cp_refs flags to the copy we have the same behavior as it used to be with AT, which does fix the error.
Closes plone/Products.CMFPlone#1735

Tests:
I could not reproduce the error in a test and therefore could not write a meaningful test. I'd appreciate inputs on how I can do that.
Though I have manually verified that this fix results in no longer having a broken UID index (see plone/Products.CMFPlone#1735 for details).

@datakurre
Copy link
Member

Nice work! I'm sorry for not noticing that when I did add some similar
AT support into DX classes (to prevent DX parent breaking AT references).

👍 for Plone 5 support. There are still famous add-ons like
Products.PloneFormGen used with Plone 5

Jonas Baumann wrote:

Issue:
When copying a DX container which has AT children, the UID of the AT
children was not updated.
The reason for the error is that the DX container copy did not have the
_v_is_cp flag while the AT children were processed and thus the flag was
not properly delegated.

Solution:
By copying the _v_is_cp and _v_cp_refs flags to the copy we have the
same behavior as it used to be with AT, which does fix the error.
Closes plone/Products.CMFPlone#1735
plone/Products.CMFPlone#1735

Tests:
I could not reproduce the error in a test and therefore could not write
a meaningful test. I'd appreciate inputs on how I can do that.
Though I have manually verified that this fix results in no longer
having a broken UID index (see plone/Products.CMFPlone#1735
plone/Products.CMFPlone#1735 for details).

Plone Versions:
I have the problem on Plone 4.3.x. The PR is therefore pointing to
plone.dexterity's |2.2.x| branch.

Should I make a separate pull request target |master| for Plone 5? Does
not make sense to fix that for Plone 5 since Archetypes is no longer
used there?


    You can view, comment on, or merge this pull request online at:

#60

    Commit Summary


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
#60, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAJyv0FZDTGmQbgmK2WrWAWZbW6hGhdmks5qlZwOgaJpZM4JxvJf.

When copying a DX container which has AT children, the UID of the AT
children was not updated.
The reason for the error is that the DX container copy did not have the
_v_is_cp flag while the AT children were processed and thus the flag was
not properly delegated.

By copying the _v_is_cp and _v_cp_refs flags to the copy we have the
same behavior as it used to be with AT, which does fix the error.
@jone
Copy link
Member Author

jone commented Sep 1, 2016

I have added a Plone 5 PR at #61 with the same change (cherry pick).

Tests:
I'm not sure why but I cannot reproduce the UUID problem in any test setup.
I then thought that I could just assert that the flag is set, which should not be that hard, but since plone.dexterity has only mock tests and no Plone is set up at all I couldn't write such a test either.

jone added a commit to 4teamwork/ftw.copymovepatches that referenced this pull request Sep 1, 2016
**Problem:**

When copying a DX container which has AT children, the UID of the AT
children was not updated.
The reason for the error is that the DX container copy did not have the
`_v_is_cp` flag while the AT children were processed and thus the flag
was not properly delegated.

**Solution:**

By copying the `_v_is_cp` and `_v_cp_refs flags` to the copy we have the
same behavior as it used to be with AT, which does fix the error.

- Issue: plone/Products.CMFPlone#1735
- Plone 4 fix: plone/plone.dexterity#60
- Plone 5 fix: plone/plone.dexterity#61
jone added a commit to 4teamwork/ftw.copymovepatches that referenced this pull request Sep 1, 2016
**Problem:**

When copying a DX container which has AT children, the UID of the AT
children was not updated.
The reason for the error is that the DX container copy did not have the
`_v_is_cp` flag while the AT children were processed and thus the flag
was not properly delegated.

**Solution:**

By copying the `_v_is_cp` and `_v_cp_refs flags` to the copy we have the
same behavior as it used to be with AT, which does fix the error.

- Issue: plone/Products.CMFPlone#1735
- Plone 4 fix: plone/plone.dexterity#60
- Plone 5 fix: plone/plone.dexterity#61
jone added a commit to 4teamwork/ftw.copymovepatches that referenced this pull request Sep 1, 2016
**Problem:**

When copying a DX container which has AT children, the UID of the AT
children was not updated.
The reason for the error is that the DX container copy did not have the
`_v_is_cp` flag while the AT children were processed and thus the flag
was not properly delegated.

**Solution:**

By copying the `_v_is_cp` and `_v_cp_refs flags` to the copy we have the
same behavior as it used to be with AT, which does fix the error.

- Issue: plone/Products.CMFPlone#1735
- Plone 4 fix: plone/plone.dexterity#60
- Plone 5 fix: plone/plone.dexterity#61
jone added a commit to 4teamwork/ftw.copymovepatches that referenced this pull request Sep 1, 2016
**Problem:**

When copying a DX container which has AT children, the UID of the AT
children was not updated.
The reason for the error is that the DX container copy did not have the
`_v_is_cp` flag while the AT children were processed and thus the flag
was not properly delegated.

**Solution:**

By copying the `_v_is_cp` and `_v_cp_refs flags` to the copy we have the
same behavior as it used to be with AT, which does fix the error.

- Issue: plone/Products.CMFPlone#1735
- Plone 4 fix: plone/plone.dexterity#60
- Plone 5 fix: plone/plone.dexterity#61
jone added a commit to 4teamwork/ftw.copymovepatches that referenced this pull request Sep 1, 2016
**Problem:**

When copying a DX container which has AT children, the UID of the AT
children was not updated.
The reason for the error is that the DX container copy did not have the
`_v_is_cp` flag while the AT children were processed and thus the flag
was not properly delegated.

**Solution:**

By copying the `_v_is_cp` and `_v_cp_refs flags` to the copy we have the
same behavior as it used to be with AT, which does fix the error.

- Issue: plone/Products.CMFPlone#1735
- Plone 4 fix: plone/plone.dexterity#60
- Plone 5 fix: plone/plone.dexterity#61
jone added a commit to 4teamwork/ftw.copymovepatches that referenced this pull request Sep 1, 2016
**Problem:**

When copying a DX container which has AT children, the UID of the AT
children was not updated.
The reason for the error is that the DX container copy did not have the
`_v_is_cp` flag while the AT children were processed and thus the flag
was not properly delegated.

**Solution:**

By copying the `_v_is_cp` and `_v_cp_refs flags` to the copy we have the
same behavior as it used to be with AT, which does fix the error.

- Issue: plone/Products.CMFPlone#1735
- Plone 4 fix: plone/plone.dexterity#60
- Plone 5 fix: plone/plone.dexterity#61
jone added a commit to 4teamwork/ftw.copymovepatches that referenced this pull request Sep 1, 2016
**Problem:**

When copying a DX container which has AT children, the UID of the AT
children was not updated.
The reason for the error is that the DX container copy did not have the
`_v_is_cp` flag while the AT children were processed and thus the flag
was not properly delegated.

**Solution:**

By copying the `_v_is_cp` and `_v_cp_refs flags` to the copy we have the
same behavior as it used to be with AT, which does fix the error.

- Issue: plone/Products.CMFPlone#1735
- Plone 4 fix: plone/plone.dexterity#60
- Plone 5 fix: plone/plone.dexterity#61
jone added a commit to 4teamwork/ftw.copymovepatches that referenced this pull request Sep 1, 2016
**Problem:**

When copying a DX container which has AT children, the UID of the AT
children was not updated.
The reason for the error is that the DX container copy did not have the
`_v_is_cp` flag while the AT children were processed and thus the flag
was not properly delegated.

**Solution:**

By copying the `_v_is_cp` and `_v_cp_refs flags` to the copy we have the
same behavior as it used to be with AT, which does fix the error.

- Issue: plone/Products.CMFPlone#1735
- Plone 4 fix: plone/plone.dexterity#60
- Plone 5 fix: plone/plone.dexterity#61
@jone
Copy link
Member Author

jone commented Sep 1, 2016

Sorry for the noise! Didn't expect that 😥

@jone jone reopened this Sep 1, 2016
@jensens jensens merged commit f09a597 into 2.2.x Sep 12, 2016
@jensens jensens deleted the jone-set-copy-flags branch September 12, 2016 15:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants