support for 'dropdown' field

git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@2023 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2007-09-10 17:30:59 +00:00
parent 6960f85b8f
commit feeb21e1e3
2 changed files with 13 additions and 0 deletions

View file

@ -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)

View file

@ -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 '