14 |
14 |
15 |
15 |
16 # import standard library |
16 # import standard library |
17 |
17 |
18 # import interfaces |
18 # import interfaces |
19 from pyams_content.component.theme.interfaces import IThemesManagerTarget, IThemesManager |
19 from pyams_content.component.theme.interfaces import ITagsManagerTarget, ITagsManager, IThemesManagerTarget, \ |
20 from pyams_content.interfaces import MANAGE_TOOL_PERMISSION |
20 IThemesManager |
|
21 from pyams_content.interfaces import MANAGE_TOOL_PERMISSION, MANAGE_SITE_ROOT_PERMISSION |
21 from pyams_skin.layer import IPyAMSLayer |
22 from pyams_skin.layer import IPyAMSLayer |
22 from pyams_utils.interfaces.data import IObjectData |
23 from pyams_utils.interfaces.data import IObjectData |
23 from pyams_zmi.interfaces.menu import IPropertiesMenu |
24 from pyams_zmi.interfaces.menu import IPropertiesMenu |
24 from pyams_zmi.layer import IAdminLayer |
25 from pyams_zmi.layer import IAdminLayer |
25 |
26 |
35 from zope.interface import alsoProvides |
36 from zope.interface import alsoProvides |
36 |
37 |
37 from pyams_content import _ |
38 from pyams_content import _ |
38 |
39 |
39 |
40 |
|
41 # |
|
42 # Tags management view |
|
43 # |
|
44 |
|
45 @viewlet_config(name='tags-manager.menu', context=ITagsManagerTarget, layer=IAdminLayer, |
|
46 manager=IPropertiesMenu, permission=MANAGE_SITE_ROOT_PERMISSION, weight=40) |
|
47 class TagsManagerMenu(MenuItem): |
|
48 """Tags menu""" |
|
49 |
|
50 label = _("Tags settings...") |
|
51 icon_class = 'fa-tag' |
|
52 url = 'tags.html' |
|
53 modal_target = True |
|
54 |
|
55 |
|
56 @pagelet_config(name='tags.html', context=ITagsManagerTarget, layer=IPyAMSLayer, |
|
57 permission=MANAGE_TOOL_PERMISSION) |
|
58 @ajax_config(name='tags.json', context=ITagsManagerTarget, layer=IPyAMSLayer) |
|
59 class TagsManagerEditForm(AdminDialogEditForm): |
|
60 """Tags manager edit form""" |
|
61 |
|
62 prefix = 'manager_tags.' |
|
63 |
|
64 legend = _("Selected tags") |
|
65 |
|
66 fields = field.Fields(ITagsManager) |
|
67 edit_permission = MANAGE_SITE_ROOT_PERMISSION |
|
68 |
|
69 def updateWidgets(self, prefix=None): |
|
70 super(TagsManagerEditForm, self).updateWidgets(prefix) |
|
71 widget = self.widgets['thesaurus_name'] |
|
72 widget.object_data = { |
|
73 'ams-plugins': 'pyams_content', |
|
74 'ams-plugin-pyams_content-src': get_resource_path(pyams_content), |
|
75 'ams-plugin-pyams_content-callback': 'PyAMS_content.themes.initExtracts', |
|
76 'ams-plugin-pyams_content-async': 'false' |
|
77 } |
|
78 alsoProvides(widget, IObjectData) |
|
79 widget = self.widgets['extract_name'] |
|
80 widget.object_data = { |
|
81 'ams-events-handlers': { |
|
82 'select2-open': 'PyAMS_content.themes.getExtracts' |
|
83 } |
|
84 } |
|
85 alsoProvides(widget, IObjectData) |
|
86 |
|
87 |
|
88 # |
|
89 # Themes management view |
|
90 # |
|
91 |
40 @viewlet_config(name='themes-manager.menu', context=IThemesManagerTarget, layer=IAdminLayer, |
92 @viewlet_config(name='themes-manager.menu', context=IThemesManagerTarget, layer=IAdminLayer, |
41 manager=IPropertiesMenu, permission=MANAGE_TOOL_PERMISSION, weight=40) |
93 manager=IPropertiesMenu, permission=MANAGE_TOOL_PERMISSION, weight=41) |
42 class ThemesManagerMenu(MenuItem): |
94 class ThemesManagerMenu(MenuItem): |
43 """Themes menu""" |
95 """Themes menu""" |
44 |
96 |
45 label = _("Themes settings...") |
97 label = _("Themes settings...") |
46 icon_class = 'fa-tags' |
98 icon_class = 'fa-tags' |
52 permission=MANAGE_TOOL_PERMISSION) |
104 permission=MANAGE_TOOL_PERMISSION) |
53 @ajax_config(name='themes.json', context=IThemesManagerTarget, layer=IPyAMSLayer) |
105 @ajax_config(name='themes.json', context=IThemesManagerTarget, layer=IPyAMSLayer) |
54 class ThemesManagerEditForm(AdminDialogEditForm): |
106 class ThemesManagerEditForm(AdminDialogEditForm): |
55 """Themes manager edit form""" |
107 """Themes manager edit form""" |
56 |
108 |
57 prefix = 'manager_themes.' |
109 prefix = 'manager_tags.' |
58 |
110 |
59 legend = _("Selected themes") |
111 legend = _("Selected themes") |
60 |
112 |
61 fields = field.Fields(IThemesManager) |
113 fields = field.Fields(IThemesManager) |
62 edit_permission = MANAGE_TOOL_PERMISSION |
114 edit_permission = MANAGE_TOOL_PERMISSION |
63 |
115 |
64 def updateWidgets(self, prefix=None): |
116 def updateWidgets(self, prefix=None): |
65 super(ThemesManagerEditForm, self).updateWidgets(prefix) |
117 super(ThemesManagerEditForm, self).updateWidgets(prefix) |
66 if 'extract_name' in self.widgets: |
118 widget = self.widgets['thesaurus_name'] |
67 widget = self.widgets['extract_name'] |
119 widget.object_data = { |
68 widget.object_data = { |
120 'ams-plugins': 'pyams_content', |
69 'ams-plugins': 'pyams_content', |
121 'ams-plugin-pyams_content-src': get_resource_path(pyams_content), |
70 'ams-plugin-pyams_content-src': get_resource_path(pyams_content), |
122 'ams-plugin-pyams_content-callback': 'PyAMS_content.themes.initExtracts', |
71 'ams-plugin-pyams_content-callback': 'PyAMS_content.themes.initExtracts', |
123 'ams-plugin-pyams_content-async': 'false' |
72 'ams-plugin-pyams_content-async': 'false' |
124 } |
|
125 alsoProvides(widget, IObjectData) |
|
126 widget = self.widgets['extract_name'] |
|
127 widget.object_data = { |
|
128 'ams-events-handlers': { |
|
129 'select2-open': 'PyAMS_content.themes.getExtracts' |
73 } |
130 } |
74 alsoProvides(widget, IObjectData) |
131 } |
|
132 alsoProvides(widget, IObjectData) |