src/pyams_content/features/search/zmi/theme.py
changeset 1061 d1db251eeea3
child 1297 393e4f1812e1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/pyams_content/features/search/zmi/theme.py	Wed Nov 07 17:29:54 2018 +0100
@@ -0,0 +1,75 @@
+#
+# Copyright (c) 2008-2018 Thierry Florac <tflorac AT ulthar.net>
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+
+__docformat__ = 'restructuredtext'
+
+from z3c.form import field
+
+from pyams_content.features.search import ISearchFolder
+from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
+from pyams_content.shared.view.interfaces import IViewTagsSettings, IViewThemesSettings, IViewCollectionsSettings
+from pyams_content.shared.view.zmi.theme import ViewTagsEditForm, ViewThemesEditForm, ViewCollectionsEditForm
+from pyams_form.form import ajax_config
+from pyams_pagelet.pagelet import pagelet_config
+from pyams_skin.layer import IPyAMSLayer
+from pyams_thesaurus.zmi.widget import ThesaurusTermsTreeFieldWidget
+from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
+
+from pyams_content import _
+
+
+@pagelet_config(name='tags.html', context=ISearchFolder, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
+@ajax_config(name='tags.json', context=ISearchFolder, layer=IPyAMSLayer, permission=MANAGE_CONTENT_PERMISSION)
+class SearchFolderTagsEditForm(ViewTagsEditForm):
+    """Search folder tags settings edit form"""
+
+    legend = _("Search folder tags settings")
+
+    fields = field.Fields(IViewTagsSettings).select('tags')
+    fields['tags'].widgetFactory = ThesaurusTermsTreeFieldWidget
+
+    def updateWidgets(self, prefix=None):
+        super(SearchFolderTagsEditForm, self).updateWidgets(prefix)
+        if 'tags' in self.widgets:
+            self.widgets['tags'].label_css_class = 'hidden'
+
+
+@pagelet_config(name='themes.html', context=ISearchFolder, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
+@ajax_config(name='themes.json', context=ISearchFolder, layer=IPyAMSLayer, permission=MANAGE_CONTENT_PERMISSION)
+class SearchFolderThemesEditForm(ViewThemesEditForm):
+    """Search folder themes settings edit form"""
+
+    legend = _("Search folder themes settings")
+
+    fields = field.Fields(IViewThemesSettings).select('themes')
+    fields['themes'].widgetFactory = ThesaurusTermsTreeFieldWidget
+
+    def updateWidgets(self, prefix=None):
+        super(SearchFolderThemesEditForm, self).updateWidgets(prefix)
+        if 'themes' in self.widgets:
+            self.widgets['themes'].label_css_class = 'hidden'
+
+
+@pagelet_config(name='collections.html', context=ISearchFolder, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
+@ajax_config(name='collections.json', context=ISearchFolder, layer=IPyAMSLayer, permission=MANAGE_CONTENT_PERMISSION)
+class SearchFolderCollectionsEditForm(ViewCollectionsEditForm):
+    """Search folder collections settings edit form"""
+
+    legend = _("Search folder collections settings")
+
+    fields = field.Fields(IViewCollectionsSettings).select('collections')
+    fields['collections'].widgetFactory = ThesaurusTermsTreeFieldWidget
+
+    def updateWidgets(self, prefix=None):
+        super(SearchFolderCollectionsEditForm, self).updateWidgets(prefix)
+        if 'collections' in self.widgets:
+            self.widgets['collections'].label_css_class = 'hidden'