src/pyams_content/zmi/viewlet/toplinks/__init__.py
changeset 45 74b7fbb59a92
parent 37 349fd1600cf9
child 57 23ee41f44161
equal deleted inserted replaced
44:6931ae3912c9 45:74b7fbb59a92
     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