src/pyams_sequence/widget/__init__.py
changeset 54 3f9dda94c354
parent 30 019da188c5a6
child 90 afd059b0f037
equal deleted inserted replaced
53:2342203445f1 54:3f9dda94c354
    19 # import interfaces
    19 # import interfaces
    20 from hypatia.interfaces import ICatalog
    20 from hypatia.interfaces import ICatalog
    21 from pyams_form.interfaces.form import IFormLayer
    21 from pyams_form.interfaces.form import IFormLayer
    22 from pyams_i18n.interfaces import II18n
    22 from pyams_i18n.interfaces import II18n
    23 from pyams_sequence.interfaces import ISequentialIntIds, ISequentialIdInfo
    23 from pyams_sequence.interfaces import ISequentialIntIds, ISequentialIdInfo
    24 from pyams_sequence.schema import IInternalReference, IInternalReferencesList
    24 from pyams_sequence.schema import IInternalReferenceField, IInternalReferencesListField
    25 from pyams_sequence.widget.interfaces import IInternalReferenceWidget, IInternalReferencesListWidget
    25 from pyams_sequence.widget.interfaces import IInternalReferenceWidget, IInternalReferencesListWidget
    26 
    26 
    27 try:
    27 try:
    28     from pyams_workflow.interfaces import IWorkflowVersions, IWorkflowVersion, IWorkflowManagedContent
    28     from pyams_workflow.interfaces import IWorkflowVersions, IWorkflowVersion, IWorkflowManagedContent
    29 except ImportError:
    29 except ImportError:
    36 # import packages
    36 # import packages
    37 from hypatia.catalog import CatalogQuery
    37 from hypatia.catalog import CatalogQuery
    38 from hypatia.query import Eq, Any
    38 from hypatia.query import Eq, Any
    39 from pyams_catalog.query import CatalogResultSet
    39 from pyams_catalog.query import CatalogResultSet
    40 from pyams_form.widget import widgettemplate_config
    40 from pyams_form.widget import widgettemplate_config
    41 from pyams_sequence.utility import get_last_version
    41 from pyams_sequence.reference import get_last_version
    42 from pyams_utils.adapter import adapter_config
    42 from pyams_utils.adapter import adapter_config
    43 from pyams_utils.registry import get_utility
    43 from pyams_utils.registry import get_utility
    44 from z3c.form.browser.widget import HTMLInputWidget
    44 from z3c.form.browser.widget import HTMLInputWidget
    45 from z3c.form.converter import BaseDataConverter
    45 from z3c.form.converter import BaseDataConverter
    46 from z3c.form.widget import Widget, FieldWidget
    46 from z3c.form.widget import Widget, FieldWidget
    78         else:
    78         else:
    79             translate = self.request.localizer.translate
    79             translate = self.request.localizer.translate
    80             return json.dumps({self.value: translate(_("missing reference: {0}")).format(self.value)})
    80             return json.dumps({self.value: translate(_("missing reference: {0}")).format(self.value)})
    81 
    81 
    82 
    82 
    83 @adapter_config(context=(IInternalReference, IFormLayer), provides=IFieldWidget)
    83 @adapter_config(context=(IInternalReferenceField, IFormLayer), provides=IFieldWidget)
    84 def InternalReferenceFieldWidget(field, request):
    84 def InternalReferenceFieldWidget(field, request):
    85     """Internal reference field widget factory"""
    85     """Internal reference field widget factory"""
    86     return FieldWidget(field, InternalReferenceWidget(request))
    86     return FieldWidget(field, InternalReferenceWidget(request))
    87 
    87 
    88 
    88 
    89 #
    89 #
    90 # Internal references list widget
    90 # Internal references list widget
    91 #
    91 #
    92 
    92 
    93 @adapter_config(context=(IInternalReferencesList, IInternalReferencesListWidget), provides=IDataConverter)
    93 @adapter_config(context=(IInternalReferencesListField, IInternalReferencesListWidget), provides=IDataConverter)
    94 class InternalReferencesListDataConverter(BaseDataConverter):
    94 class InternalReferencesListDataConverter(BaseDataConverter):
    95     """Internal references list data converter"""
    95     """Internal references list data converter"""
    96 
    96 
    97     def toWidgetValue(self, value):
    97     def toWidgetValue(self, value):
    98         if not value:
    98         if not value:
   133                                                                                                  request=self.request),
   133                                                                                                  request=self.request),
   134                                                                      sequence.get_short_oid(oid_info.oid))})
   134                                                                      sequence.get_short_oid(oid_info.oid))})
   135         return json.dumps(results)
   135         return json.dumps(results)
   136 
   136 
   137 
   137 
   138 @adapter_config(context=(IInternalReferencesList, IFormLayer), provides=IFieldWidget)
   138 @adapter_config(context=(IInternalReferencesListField, IFormLayer), provides=IFieldWidget)
   139 def InternalReferencesListFieldWidget(field, request):
   139 def InternalReferencesListFieldWidget(field, request):
   140     """Internal references list field widget factory"""
   140     """Internal references list field widget factory"""
   141     return FieldWidget(field, InternalReferencesListWidget(request))
   141     return FieldWidget(field, InternalReferencesListWidget(request))