--- a/src/pyams_content/component/theme/zmi/manager.py Thu Jul 05 08:48:47 2018 +0200
+++ b/src/pyams_content/component/theme/zmi/manager.py Thu Jul 05 08:53:43 2018 +0200
@@ -16,8 +16,9 @@
# import standard library
# import interfaces
-from pyams_content.component.theme.interfaces import IThemesManagerTarget, IThemesManager
-from pyams_content.interfaces import MANAGE_TOOL_PERMISSION
+from pyams_content.component.theme.interfaces import ITagsManagerTarget, ITagsManager, IThemesManagerTarget, \
+ IThemesManager
+from pyams_content.interfaces import MANAGE_TOOL_PERMISSION, MANAGE_SITE_ROOT_PERMISSION
from pyams_skin.layer import IPyAMSLayer
from pyams_utils.interfaces.data import IObjectData
from pyams_zmi.interfaces.menu import IPropertiesMenu
@@ -37,8 +38,59 @@
from pyams_content import _
+#
+# Tags management view
+#
+
+@viewlet_config(name='tags-manager.menu', context=ITagsManagerTarget, layer=IAdminLayer,
+ manager=IPropertiesMenu, permission=MANAGE_SITE_ROOT_PERMISSION, weight=40)
+class TagsManagerMenu(MenuItem):
+ """Tags menu"""
+
+ label = _("Tags settings...")
+ icon_class = 'fa-tag'
+ url = 'tags.html'
+ modal_target = True
+
+
+@pagelet_config(name='tags.html', context=ITagsManagerTarget, layer=IPyAMSLayer,
+ permission=MANAGE_TOOL_PERMISSION)
+@ajax_config(name='tags.json', context=ITagsManagerTarget, layer=IPyAMSLayer)
+class TagsManagerEditForm(AdminDialogEditForm):
+ """Tags manager edit form"""
+
+ prefix = 'manager_tags.'
+
+ legend = _("Selected tags")
+
+ fields = field.Fields(ITagsManager)
+ edit_permission = MANAGE_SITE_ROOT_PERMISSION
+
+ def updateWidgets(self, prefix=None):
+ super(TagsManagerEditForm, 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.themes.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)
+
+
+#
+# Themes management view
+#
+
@viewlet_config(name='themes-manager.menu', context=IThemesManagerTarget, layer=IAdminLayer,
- manager=IPropertiesMenu, permission=MANAGE_TOOL_PERMISSION, weight=40)
+ manager=IPropertiesMenu, permission=MANAGE_TOOL_PERMISSION, weight=41)
class ThemesManagerMenu(MenuItem):
"""Themes menu"""
@@ -54,7 +106,7 @@
class ThemesManagerEditForm(AdminDialogEditForm):
"""Themes manager edit form"""
- prefix = 'manager_themes.'
+ prefix = 'manager_tags.'
legend = _("Selected themes")
@@ -63,12 +115,18 @@
def updateWidgets(self, prefix=None):
super(ThemesManagerEditForm, self).updateWidgets(prefix)
- if 'extract_name' in self.widgets:
- widget = self.widgets['extract_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.themes.initExtracts',
- 'ams-plugin-pyams_content-async': 'false'
+ 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.themes.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)
+ }
+ alsoProvides(widget, IObjectData)