diff --git a/composer/schema/factory.py b/composer/schema/factory.py index 5b3746f..b7b9318 100644 --- a/composer/schema/factory.py +++ b/composer/schema/factory.py @@ -39,6 +39,7 @@ class Email(schema.TextLine): # put field type name and other info in standard field classes. schema.Field.__typeInfo__ = ('textline',) +schema.Choice.__typeInfo__ = ('dropdown',) class SchemaFactory(object): @@ -61,7 +62,7 @@ class SchemaFactory(object): schema.Float: ('number',), schema.Bool: ('checkbox',), schema.List: ('list',), - schema.Choice: ('dropdown',), + #schema.Choice: ('dropdown',), schema.Bytes: ('fileupload',), #Email: ('email',), } @@ -84,6 +85,7 @@ class SchemaFactory(object): getattr(field, 'vocabularyName', None)) f = Field(field.getName(), fieldType=info[0], + fieldTypeInfo=len(info) > 1 and info[1] or None, required=field.required, default=field.default, default_method=getattr(field, 'default_method', None), @@ -91,6 +93,9 @@ class SchemaFactory(object): title=field.title, description=field.description, readonly=field.readonly, - nostore=getattr(field, 'nostore', False),) + #value_type=getattr(field, 'value_type', None), + nostore=getattr(field, 'nostore', False), + multiple=getattr(field, 'multiple', False), + baseField=field,) fields.append(f) return Schema(name=interface.__name__, *fields, **kw) diff --git a/composer/schema/field.py b/composer/schema/field.py index 86d0dee..d3268bf 100644 --- a/composer/schema/field.py +++ b/composer/schema/field.py @@ -209,7 +209,7 @@ class DateFieldInstance(NumberFieldInstance): if value is None: return '' view = self.clientInstance.view - langInfo = view and view.languageInfo or None + langInfo = view and getattr(view, 'languageInfo', None) or None format = self.context.display_format or ('dateTime', 'short') if langInfo: locale = locales.getLocale(langInfo.language)