src/pyams_content/component/theme/zmi/manager.py
changeset 800 2b5460ecb254
parent 591 b694d5667d17
child 829 f933926ed0a1
equal deleted inserted replaced
799:dd66696cb871 800:2b5460ecb254
    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)