Bad relationships: RelationChoice, RelationCatalog and removed Dexterity content in Plone
Disclaimer: this post isn’t giving relationship advice (or..it is in some twisted way). Unsurprisingly, removing content in Plone via the ZMI when Plone says something can’t be deleted is likely to cause problems.
In my case, the fact I removed a Dexterity-based container (“Project”) caused users to no longer add or edit content of my Project type. The reason for this boiled down to my use of RelationChoice fields, in order link Projects to Person objects and vice versa. The backend storage for the RelationChoice field is an instance of z3c.relationfield.index.RelationCatalog, and this keeps …