src/pyams_form/widget/__init__.py
changeset 220 08755669300a
parent 204 c435de184bda
equal deleted inserted replaced
219:8072c47cdecd 220:08755669300a
    44 from z3c.form.widget import FieldWidget, Widget, WidgetLayoutFactory, WidgetTemplateFactory
    44 from z3c.form.widget import FieldWidget, Widget, WidgetLayoutFactory, WidgetTemplateFactory
    45 from zope.component import getGlobalSiteManager
    45 from zope.component import getGlobalSiteManager
    46 from zope.interface import Interface, directlyProvides, implementer, implementer_only
    46 from zope.interface import Interface, directlyProvides, implementer, implementer_only
    47 from zope.pagetemplate.interfaces import IPageTemplate
    47 from zope.pagetemplate.interfaces import IPageTemplate
    48 from zope.schema.fieldproperty import FieldProperty
    48 from zope.schema.fieldproperty import FieldProperty
    49 from zope.schema.interfaces import IBytes, IChoice, IDate, IDatetime, IFloat, IInt, IList, ISet, \
    49 from zope.schema.interfaces import IBytes, IChoice, IDate, IDatetime, IDecimal, IFloat, IInt, \
    50     ITime, ITuple, IDecimal
    50     IList, ISet, ITime, ITuple
    51 
    51 
    52 from pyams_form.interfaces.form import IActionWidget, ICloseWidget, IColorWidget, IDateWidget, \
    52 from pyams_form.interfaces.form import IActionWidget, ICloseWidget, IColorWidget, IDateWidget, \
    53     IDatetimeWidget, IFloatWidget, IFormLayer, IHTMLWidget, IIntegerWidget, IJSONDictWidget, \
    53     IDatetimeWidget, IDottedDecimalWidget, IFloatWidget, IFormLayer, IHTMLWidget, IIntegerWidget, \
    54     IResetWidget, ISEOTextLineWidget, ISelect2Widget, ITextLineListWidget, ITimeWidget, \
    54     IJSONDictWidget, IResetWidget, ISEOTextLineWidget, ISelect2Widget, ITextLineListWidget, \
    55     IDottedDecimalWidget
    55     ITimeWidget
    56 from pyams_form.schema import IActionButton, ICloseButton, IResetButton
    56 from pyams_form.schema import IActionButton, ICloseButton, IResetButton
    57 from pyams_skin.interfaces.tinymce import ITinyMCEConfiguration
    57 from pyams_skin.interfaces.tinymce import ITinyMCEConfiguration
    58 from pyams_utils.adapter import adapter_config
    58 from pyams_utils.adapter import adapter_config
    59 from pyams_utils.interfaces.data import IObjectData
    59 from pyams_utils.interfaces.data import IObjectData
    60 from pyams_utils.schema import IColorField, IHTMLField, IJSONDictField, ITextLineListField, \
    60 from pyams_utils.schema import IColorField, IDottedDecimalField, IHTMLField, IJSONDictField, \
    61     IJSONDictFieldsGetter, IDottedDecimalField, DottedDecimalField
    61     IJSONDictFieldsGetter, ITextLineListField
    62 from pyams_utils.timezone import localgmtime, tztime
    62 from pyams_utils.timezone import localgmtime, tztime
    63 from pyams_utils.widget.decimal import DottedDecimalDataConverter
    63 from pyams_utils.widget.decimal import DottedDecimalDataConverter
    64 
    64 
    65 
    65 
    66 __docformat__ = 'restructuredtext'
    66 __docformat__ = 'restructuredtext'
   718         if self.name not in self.request and self.name + '-empty-marker' in self.request:
   718         if self.name not in self.request and self.name + '-empty-marker' in self.request:
   719             return []
   719             return []
   720         value = self.request.get(self.name, default)
   720         value = self.request.get(self.name, default)
   721         if value != default:
   721         if value != default:
   722             if not isinstance(value, (set, tuple, list)):
   722             if not isinstance(value, (set, tuple, list)):
   723                 value = set(value.split('|'))
   723                 value = set(value.split('|')) if value else set()
   724             # do some kind of validation, at least only use existing values
   724             # do some kind of validation, at least only use existing values
   725             for token in value:
   725             for token in value:
   726                 if token == self.noValueToken:
   726                 if token == self.noValueToken:
   727                     continue
   727                     continue
   728                 try:
   728                 try: