src/pyams_content/component/theme/zmi/manager.py
changeset 829 f933926ed0a1
parent 800 2b5460ecb254
child 830 ea722c2352b7
--- a/src/pyams_content/component/theme/zmi/manager.py	Tue Jul 10 16:59:55 2018 +0200
+++ b/src/pyams_content/component/theme/zmi/manager.py	Wed Jul 11 10:18:10 2018 +0200
@@ -9,6 +9,7 @@
 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
 # FOR A PARTICULAR PURPOSE.
 #
+from pyams_content.component.theme import ICollectionsManagerTarget, ICollectionsManager
 
 __docformat__ = 'restructuredtext'
 
@@ -106,7 +107,7 @@
 class ThemesManagerEditForm(AdminDialogEditForm):
     """Themes manager edit form"""
 
-    prefix = 'manager_tags.'
+    prefix = 'manager_themes.'
 
     legend = _("Selected themes")
 
@@ -130,3 +131,50 @@
             }
         }
         alsoProvides(widget, IObjectData)
+
+
+#
+# Collections management view
+#
+
+@viewlet_config(name='collections-manager.menu', context=ICollectionsManagerTarget, layer=IAdminLayer,
+                manager=IPropertiesMenu, permission=MANAGE_TOOL_PERMISSION, weight=42)
+class CollectionsManagerMenu(MenuItem):
+    """Collections menu"""
+
+    label = _("Collections settings...")
+    icon_class = 'fa-book'
+    url = 'collections.html'
+    modal_target = True
+
+
+@pagelet_config(name='collections.html', context=ICollectionsManagerTarget, layer=IPyAMSLayer,
+                permission=MANAGE_TOOL_PERMISSION)
+@ajax_config(name='collections.json', context=ICollectionsManagerTarget, layer=IPyAMSLayer)
+class CollectionsManagerEditForm(AdminDialogEditForm):
+    """Collections manager edit form"""
+
+    prefix = 'manager_collections.'
+
+    legend = _("Selected collections")
+
+    fields = field.Fields(ICollectionsManager)
+    edit_permission = MANAGE_TOOL_PERMISSION
+
+    def updateWidgets(self, prefix=None):
+        super(CollectionsManagerEditForm, self).updateWidgets(prefix)
+        widget = self.widgets['thesaurus_name']
+        widget.object_data = {
+            'ams-plugins': 'pyams_content',
+            'ams-plugin-pyams_content-src': get_resource_path(pyams_content),
+            'ams-plugin-pyams_content-callback': 'PyAMS_content.collections.initExtracts',
+            'ams-plugin-pyams_content-async': 'false'
+        }
+        alsoProvides(widget, IObjectData)
+        widget = self.widgets['extract_name']
+        widget.object_data = {
+            'ams-events-handlers': {
+                'select2-open': 'PyAMS_content.themes.getExtracts'
+            }
+        }
+        alsoProvides(widget, IObjectData)