src/pyams_content/shared/view/zmi/properties.py
changeset 856 0e8c775ca958
parent 527 5dd1aa8bedd9
child 1090 d6d041577ae0
equal deleted inserted replaced
855:b83aca9d6e2b 856:0e8c775ca958
    12 
    12 
    13 __docformat__ = 'restructuredtext'
    13 __docformat__ = 'restructuredtext'
    14 
    14 
    15 
    15 
    16 # import standard library
    16 # import standard library
       
    17 import json
    17 
    18 
    18 # import interfaces
    19 # import interfaces
    19 from pyams_content.shared.view.interfaces import IWfView
    20 from pyams_content.shared.view.interfaces import IWfView
    20 from pyams_form.interfaces.form import IInnerSubForm
    21 from pyams_form.interfaces.form import IInnerSubForm
    21 from pyams_skin.layer import IPyAMSLayer
    22 from pyams_skin.layer import IPyAMSLayer
       
    23 from pyams_utils.interfaces.data import IObjectData
    22 
    24 
    23 # import packages
    25 # import packages
       
    26 from pyams_content.shared.common.types import get_all_data_types
    24 from pyams_content.shared.common.zmi.properties import SharedContentPropertiesEditForm
    27 from pyams_content.shared.common.zmi.properties import SharedContentPropertiesEditForm
       
    28 from pyams_form.widget import HiddenSelect2FieldWidget
    25 from pyams_utils.adapter import adapter_config
    29 from pyams_utils.adapter import adapter_config
    26 from pyams_zmi.form import InnerAdminEditForm
    30 from pyams_zmi.form import InnerAdminEditForm
    27 from z3c.form import field
    31 from z3c.form import field
       
    32 from zope.interface import alsoProvides
    28 
    33 
    29 from pyams_content import _
    34 from pyams_content import _
    30 
    35 
    31 
    36 
    32 @adapter_config(name='view-settings',
    37 @adapter_config(name='view-settings',
    39 
    44 
    40     legend = _("Main view settings")
    45     legend = _("Main view settings")
    41     fieldset_class = 'bordered no-x-margin margin-y-10'
    46     fieldset_class = 'bordered no-x-margin margin-y-10'
    42 
    47 
    43     fields = field.Fields(IWfView).select('select_context_type', 'selected_content_types',
    48     fields = field.Fields(IWfView).select('select_context_type', 'selected_content_types',
       
    49                                           'select_context_datatype', 'selected_datatypes',
    44                                           'order_by', 'reversed_order', 'limit')
    50                                           'order_by', 'reversed_order', 'limit')
       
    51     fields['selected_datatypes'].widgetFactory = HiddenSelect2FieldWidget
       
    52 
    45     weight = 1
    53     weight = 1
       
    54 
       
    55     def updateWidgets(self, prefix=None):
       
    56         super(ViewPropertiesEditForm, self).updateWidgets(prefix)
       
    57         if 'selected_datatypes' in self.widgets:
       
    58             widget = self.widgets['selected_datatypes']
       
    59             # widget.multiple = True
       
    60             widget.object_data = {
       
    61                 'ams-select2-multiple': True,
       
    62                 'ams-select2-data': json.dumps(get_all_data_types(self.request))
       
    63             }
       
    64             alsoProvides(widget, IObjectData)