From feeb21e1e3c35ab0d38203eb23d0a640354a0aa4 Mon Sep 17 00:00:00 2001 From: helmutm Date: Mon, 10 Sep 2007 17:30:59 +0000 Subject: [PATCH] support for 'dropdown' field git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@2023 fd906abe-77d9-0310-91a1-e0d9ade77398 --- composer/schema/field.py | 7 +++++++ composer/schema/interfaces.py | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/composer/schema/field.py b/composer/schema/field.py index 1e122d2..95a8740 100644 --- a/composer/schema/field.py +++ b/composer/schema/field.py @@ -39,6 +39,7 @@ class Field(Component): required = False standardFieldName = None + vocabulary = None renderFactory = None def __init__(self, name, title=None, fieldType='textline', **kw): @@ -58,6 +59,12 @@ class Field(Component): def getTitleValue(self): return self.title or self.name + def getVocabularyItems(self): + voc = (self.vocabulary or '') + if isinstance(voc, basestring): + voc = voc.splitlines() + return [dict(token=v, title=v) for v in voc if v.strip()] + def getFieldTypeInfo(self): return fieldTypes.getTerm(self.fieldType) diff --git a/composer/schema/interfaces.py b/composer/schema/interfaces.py index fec3082..299e086 100644 --- a/composer/schema/interfaces.py +++ b/composer/schema/interfaces.py @@ -139,6 +139,12 @@ class IField(IComponent): '(only for type textarea)'), default=3, required=False,) + vocabulary = schema.Text( + title=_(u'Vocabulary'), + description=_(u'Values that may be selected as values for ' + 'this field; enter one value per line ' + '(only for dropdown and other selection fields)'), + required=False,) renderFactory = Attribute('A class or another factory providing an ' 'object used for rendering the data e.g. as a '