[Plone-conference] Porting Products to Plone 5: reference from custom AT Type to Document breaks

David Glick (Plone) david.glick at plone.org
Tue Oct 8 20:27:44 UTC 2013

On 10/5/13 2:48 PM, Kees Hink wrote:
> Products.Archetypes' ReferenceEngine.py has a _uidFor() method that, 
> when passed a string, tries to get the UID from the uid_catalog. [1]
> Problem: In Plone 5, when creating a reference from a custom content 
> type object to a Document, the target UID isn't in uid_catalog. It's 
> in portal_catalog. The custom types' UIDs are in uid_catalog. This 
> surfaced while trying out Products.Doormat on Plone 5 [2]
> Links between default Plone content type objects work fine.
> What did i miss?
> [1] 
> https://github.com/plone/Products.Archetypes/blob/master/Products/Archetypes/ReferenceEngine.py#L527
> [2] https://github.com/collective/Products.Doormat/tree/plone5
I see that Doormat uses Archetypes content. To be referenceable from 
Archetypes content, Dexterity content must have the referenceable 
behavior from plone.app.referenceablebehavior enabled. But we don't want 
Plone 5 to depend on Archetypes, so the types in plone.app.contenttypes 
do not use this behavior out of the box.  If you don't convert Doormat 
to be Dexterity-based and you require that Dexterity content items be 
referenceable from your custom content types, I suppose you'll need to 
make sure that you enable this behavior for the core content types when 
the product is installed.

More information about the Plone-conference mailing list