I need to build a configuration panel in the Plone control panel that store couples, and I'd like to use plone.app.registry on Plone 3.
If I limit myself to the user interface, it's quite simple to define a schema interface that automatically build this:
class IMyPair(Interface):
value = schema.TextLine(title=u"value", required=True)
title = schema.TextLine(title=u"title", required=False)
class MyPair(object):
implements(IMyPair)
def __init__(self, value='', title=''):
self.value = value
self.title = title
class IMyConfigPanel(Interface):
entry = schema.List(
title=_(u'Foo'),
value_type=schema.Object(IMyPair, title=u"entry"),
required=True
)
We used this is a project that store couples inside portal_properties as a single string (with a delimiter).
Using this approach (with the "value_type=schema.Object") with plone.app.registry I get an exception as IObjectField has no IPersistent adapter defined.
Before going deeper and becoming crazy providing my own adapter: there is a simpler way to reach the initial need of my problem?