On Nov 18, 2006, at 11:43 PM, Tom Lazar wrote:

there is still one issue that needs to be addressed IMHO. i've also filed an issue for that:

http://plone.org/products/iterate/issues/10

basically, it means that references to children of an iterated folderish object are broken after that object is iterated. kapil has postponed that issue and i can understand that that's a really tough cookie to solve generically but this somehow needs to be addressed if we want to ship plone with iterate! if we can't fix the issue we should at least prevent a COCI-cycle for folderish objects that contain children with backreferences. any other suggestions?

just a 'heads up' that i meanwhile have addressed this issue and have created a working patch which i hereby humbly offer for review... :)

http://plone.org/products/iterate/issues/16

for convenience, here's the contents of the issue:

--snip--
Currently, when (a) checking out an object it (and all its children) lose all their references (this is done by Archetypes implementation of paste on copy, which iterate utilizes to perform the checkout).

Additionally, (b) upon checkin, all backreferences get lost, i.e. any content that references the iterated object (or any of its children) will end up with broken references upon checkin.

Kapil has signalled, that he has plans to remedy this, by simply recording all changes made to the working copy and then apply these to the baseline upon checkin, thus avoiding the messy issue of 'swapping identities' entirely. however, he also signalled, that this implementation is still a bit further off and also, this wouldn't address case (a).

i have therefore created a patch for the 0.3 branch that attempts to resolve (a) and (b). upon checkout the baselines forward references are recreated for the working copy and upon checkin the backreferences are recreated.

again, i haven't written any tests for iterate itself, but have ample test coverage using custom content types for the client project that this patch was created for. if the patch is approved in principal, i can easily port them to iterate for default ATCT types.
--snap--

what's still missing (as i just realize) is recursive locking of the baseline's children upon checkout, but that can easily be remedied.

the patch is rather simple, actually and i hope it might prove to be useful.

cheers,

tom

_______________________________________________
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team

Reply via email to