7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED |
7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED |
8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS |
9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS |
10 # FOR A PARTICULAR PURPOSE. |
10 # FOR A PARTICULAR PURPOSE. |
11 # |
11 # |
12 from pyams_content.zmi.interfaces import IUserAddingsMenuLabel |
|
13 |
12 |
14 __docformat__ = 'restructuredtext' |
13 __docformat__ = 'restructuredtext' |
15 |
14 |
16 |
15 |
17 # import standard library |
16 # import standard library |
18 |
17 |
19 # import interfaces |
18 # import interfaces |
20 from hypatia.interfaces import ICatalog |
19 from hypatia.interfaces import ICatalog |
21 from pyams_content.shared.common.interfaces import ISharedTool |
20 from pyams_content.shared.common.interfaces import ISharedTool, ISharedSite |
|
21 from pyams_content.zmi.interfaces import IUserAddingsMenuLabel |
22 from pyams_i18n.interfaces import II18n |
22 from pyams_i18n.interfaces import II18n |
23 from pyams_skin.interfaces.viewlet import ITopLinksViewletManager |
23 from pyams_skin.interfaces.viewlet import ITopLinksViewletManager |
24 from pyams_zmi.layer import IAdminLayer |
24 from pyams_zmi.layer import IAdminLayer |
25 |
25 |
26 # import packages |
26 # import packages |
36 from pyramid.threadlocal import get_current_registry |
36 from pyramid.threadlocal import get_current_registry |
37 |
37 |
38 from pyams_content import _ |
38 from pyams_content import _ |
39 |
39 |
40 |
40 |
|
41 @viewlet_config(name='shared-sites.menu', layer=IAdminLayer, manager=ITopLinksViewletManager, weight=20) |
|
42 class SharedSitesMenu(TopLinksViewlet): |
|
43 """Shared sites menu""" |
|
44 |
|
45 label = '' |
|
46 css_class = 'top-menu bordered margin-top-10' |
|
47 dropdown_label = _("Shared sites") |
|
48 |
|
49 def update(self): |
|
50 super(SharedSitesMenu, self).update() |
|
51 registry = get_local_registry() |
|
52 for name, site in registry.getUtilitiesFor(ISharedSite): |
|
53 menu = TopLinksMenu(self.context, self.request, self.__parent__, self) |
|
54 menu.label = II18n(site).query_attribute('title', request=self.request) or tool.__name__ |
|
55 menu.url = absolute_url(site, self.request, 'admin.html#dashboard.html') |
|
56 self.viewlets.append(menu) |
|
57 |
|
58 |
41 @viewlet_config(name='shared-tools.menu', layer=IAdminLayer, manager=ITopLinksViewletManager, weight=30) |
59 @viewlet_config(name='shared-tools.menu', layer=IAdminLayer, manager=ITopLinksViewletManager, weight=30) |
42 class SharedToolsMenu(TopLinksViewlet): |
60 class SharedToolsMenu(TopLinksViewlet): |
43 """Shared tools menu""" |
61 """Shared tools menu""" |
44 |
62 |
45 label = '' |
63 label = '' |
48 |
66 |
49 def update(self): |
67 def update(self): |
50 super(SharedToolsMenu, self).update() |
68 super(SharedToolsMenu, self).update() |
51 registry = get_local_registry() |
69 registry = get_local_registry() |
52 for name, tool in registry.getUtilitiesFor(ISharedTool): |
70 for name, tool in registry.getUtilitiesFor(ISharedTool): |
|
71 if ISharedSite.providedBy(tool): |
|
72 continue |
53 menu = TopLinksMenu(self.context, self.request, self.__parent__, self) |
73 menu = TopLinksMenu(self.context, self.request, self.__parent__, self) |
54 menu.label = II18n(tool).query_attribute('title', request=self.request) or tool.__name__ |
74 menu.label = II18n(tool).query_attribute('title', request=self.request) or tool.__name__ |
55 menu.url = absolute_url(tool, self.request, 'admin.html#dashboard.html') |
75 menu.url = absolute_url(tool, self.request, 'admin.html#dashboard.html') |
56 self.viewlets.append(menu) |
76 self.viewlets.append(menu) |
57 |
77 |