src/pyams_content/shared/view/zmi/properties.py
changeset 856 0e8c775ca958
parent 527 5dd1aa8bedd9
child 1090 d6d041577ae0
--- a/src/pyams_content/shared/view/zmi/properties.py	Tue Jul 17 18:01:26 2018 +0200
+++ b/src/pyams_content/shared/view/zmi/properties.py	Tue Jul 17 18:01:54 2018 +0200
@@ -14,17 +14,22 @@
 
 
 # import standard library
+import json
 
 # import interfaces
 from pyams_content.shared.view.interfaces import IWfView
 from pyams_form.interfaces.form import IInnerSubForm
 from pyams_skin.layer import IPyAMSLayer
+from pyams_utils.interfaces.data import IObjectData
 
 # import packages
+from pyams_content.shared.common.types import get_all_data_types
 from pyams_content.shared.common.zmi.properties import SharedContentPropertiesEditForm
+from pyams_form.widget import HiddenSelect2FieldWidget
 from pyams_utils.adapter import adapter_config
 from pyams_zmi.form import InnerAdminEditForm
 from z3c.form import field
+from zope.interface import alsoProvides
 
 from pyams_content import _
 
@@ -41,5 +46,19 @@
     fieldset_class = 'bordered no-x-margin margin-y-10'
 
     fields = field.Fields(IWfView).select('select_context_type', 'selected_content_types',
+                                          'select_context_datatype', 'selected_datatypes',
                                           'order_by', 'reversed_order', 'limit')
+    fields['selected_datatypes'].widgetFactory = HiddenSelect2FieldWidget
+
     weight = 1
+
+    def updateWidgets(self, prefix=None):
+        super(ViewPropertiesEditForm, self).updateWidgets(prefix)
+        if 'selected_datatypes' in self.widgets:
+            widget = self.widgets['selected_datatypes']
+            # widget.multiple = True
+            widget.object_data = {
+                'ams-select2-multiple': True,
+                'ams-select2-data': json.dumps(get_all_data_types(self.request))
+            }
+            alsoProvides(widget, IObjectData)