src/pyams_content/shared/view/zmi/theme.py
changeset 1428 48c1ee485dc0
parent 1297 393e4f1812e1
equal deleted inserted replaced
1427:43bd56f3a726 1428:48c1ee485dc0
     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 
    12 
    13 __docformat__ = 'restructuredtext'
       
    14 
       
    15 from z3c.form import button, field
    13 from z3c.form import button, field
    16 from z3c.form.browser.checkbox import SingleCheckBoxFieldWidget
    14 from z3c.form.browser.checkbox import SingleCheckBoxFieldWidget
    17 from z3c.form.interfaces import INPUT_MODE
    15 from z3c.form.interfaces import INPUT_MODE
    18 from zope.interface import Interface, implementer
    16 from zope.interface import Interface, implementer
    19 
    17 
    20 from pyams_content import _
       
    21 from pyams_content.component.theme import ICollectionsManager, ITagsManager, IThemesManager
    18 from pyams_content.component.theme import ICollectionsManager, ITagsManager, IThemesManager
    22 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
    19 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
    23 from pyams_content.shared.view.interfaces import IViewCollectionsSettings, IViewTagsSettings, IViewThemesSettings, \
    20 from pyams_content.shared.view.interfaces import IViewCollectionsSettings, IViewTagsSettings, \
    24     IViewsManager, IWfView
    21     IViewThemesSettings, IViewsManager, IWfView
    25 from pyams_form.form import ajax_config
    22 from pyams_form.form import ajax_config
    26 from pyams_form.interfaces.form import IUncheckedEditFormButtons, IWidgetForm
    23 from pyams_form.interfaces.form import IUncheckedEditFormButtons, IWidgetForm
    27 from pyams_pagelet.pagelet import pagelet_config
    24 from pyams_pagelet.pagelet import pagelet_config
    28 from pyams_skin.interfaces import IInnerPage
    25 from pyams_skin.interfaces import IInnerPage
    29 from pyams_skin.layer import IPyAMSLayer
    26 from pyams_skin.layer import IPyAMSLayer
    33 from pyams_utils.registry import get_utility
    30 from pyams_utils.registry import get_utility
    34 from pyams_viewlet.viewlet import viewlet_config
    31 from pyams_viewlet.viewlet import viewlet_config
    35 from pyams_zmi.form import AdminEditForm
    32 from pyams_zmi.form import AdminEditForm
    36 from pyams_zmi.interfaces.menu import IPropertiesMenu
    33 from pyams_zmi.interfaces.menu import IPropertiesMenu
    37 from pyams_zmi.layer import IAdminLayer
    34 from pyams_zmi.layer import IAdminLayer
       
    35 
       
    36 
       
    37 __docformat__ = 'restructuredtext'
       
    38 
       
    39 from pyams_content import _
    38 
    40 
    39 
    41 
    40 #
    42 #
    41 # Tags management
    43 # Tags management
    42 #
    44 #
    49     label = _("Tags...")
    51     label = _("Tags...")
    50     icon_class = 'fa-tag'
    52     icon_class = 'fa-tag'
    51     url = '#tags.html'
    53     url = '#tags.html'
    52 
    54 
    53 
    55 
    54 @pagelet_config(name='tags.html', context=IWfView, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
    56 @pagelet_config(name='tags.html', context=IWfView, layer=IPyAMSLayer,
    55 @ajax_config(name='tags.json', context=IWfView, layer=IPyAMSLayer, permission=MANAGE_CONTENT_PERMISSION)
    57                 permission=VIEW_SYSTEM_PERMISSION)
       
    58 @ajax_config(name='tags.json', context=IWfView, layer=IPyAMSLayer,
       
    59              permission=MANAGE_CONTENT_PERMISSION)
    56 @implementer(IWidgetForm, IInnerPage)
    60 @implementer(IWidgetForm, IInnerPage)
    57 class ViewTagsEditForm(AdminEditForm):
    61 class ViewTagsEditForm(AdminEditForm):
    58     """View tags settings edit form"""
    62     """View tags settings edit form"""
    59 
    63 
    60     legend = _("View tags settings")
    64     legend = _("View tags settings")
    86 #
    90 #
    87 # Themes management
    91 # Themes management
    88 #
    92 #
    89 
    93 
    90 @viewlet_config(name='themes.menu', context=IWfView, layer=IAdminLayer,
    94 @viewlet_config(name='themes.menu', context=IWfView, layer=IAdminLayer,
    91                 manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=352)
    95                 manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=360)
    92 class ViewThemesMenu(MenuItem):
    96 class ViewThemesMenu(MenuItem):
    93     """View themes menu"""
    97     """View themes menu"""
    94 
    98 
    95     label = _("Themes...")
    99     label = _("Themes...")
    96     icon_class = 'fa-tags'
   100     icon_class = 'fa-tags'
    97     url = '#themes.html'
   101     url = '#themes.html'
    98 
   102 
    99 
   103 
   100 @pagelet_config(name='themes.html', context=IWfView, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
   104 @pagelet_config(name='themes.html', context=IWfView, layer=IPyAMSLayer,
   101 @ajax_config(name='themes.json', context=IWfView, layer=IPyAMSLayer, permission=MANAGE_CONTENT_PERMISSION)
   105                 permission=VIEW_SYSTEM_PERMISSION)
       
   106 @ajax_config(name='themes.json', context=IWfView, layer=IPyAMSLayer,
       
   107              permission=MANAGE_CONTENT_PERMISSION)
   102 @implementer(IWidgetForm, IInnerPage)
   108 @implementer(IWidgetForm, IInnerPage)
   103 class ViewThemesEditForm(AdminEditForm):
   109 class ViewThemesEditForm(AdminEditForm):
   104     """View themes settings edit form"""
   110     """View themes settings edit form"""
   105 
   111 
   106     legend = _("View themes settings")
   112     legend = _("View themes settings")
   108     input_css_class = 'col-md-11'
   114     input_css_class = 'col-md-11'
   109 
   115 
   110     fields = field.Fields(IViewThemesSettings)
   116     fields = field.Fields(IViewThemesSettings)
   111     fields['select_context_themes'].widgetFactory = SingleCheckBoxFieldWidget
   117     fields['select_context_themes'].widgetFactory = SingleCheckBoxFieldWidget
   112     fields['themes'].widgetFactory = ThesaurusTermsTreeFieldWidget
   118     fields['themes'].widgetFactory = ThesaurusTermsTreeFieldWidget
       
   119     fields['include_subthemes'].widgetFactory = SingleCheckBoxFieldWidget
   113 
   120 
   114     @property
   121     @property
   115     def buttons(self):
   122     def buttons(self):
   116         if self.mode == INPUT_MODE:
   123         if self.mode == INPUT_MODE:
   117             return button.Buttons(IUncheckedEditFormButtons)
   124             return button.Buttons(IUncheckedEditFormButtons)
   132 #
   139 #
   133 # Collections management
   140 # Collections management
   134 #
   141 #
   135 
   142 
   136 @viewlet_config(name='collections.menu', context=IWfView, layer=IAdminLayer,
   143 @viewlet_config(name='collections.menu', context=IWfView, layer=IAdminLayer,
   137                 manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=354)
   144                 manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=370)
   138 class ViewCollectionsMenu(MenuItem):
   145 class ViewCollectionsMenu(MenuItem):
   139     """View collections menu"""
   146     """View collections menu"""
   140 
   147 
   141     label = _("Collections...")
   148     label = _("Collections...")
   142     icon_class = 'fa-book'
   149     icon_class = 'fa-book'
   143     url = '#collections.html'
   150     url = '#collections.html'
   144 
   151 
   145 
   152 
   146 @pagelet_config(name='collections.html', context=IWfView, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
   153 @pagelet_config(name='collections.html', context=IWfView, layer=IPyAMSLayer,
   147 @ajax_config(name='collections.json', context=IWfView, layer=IPyAMSLayer, permission=MANAGE_CONTENT_PERMISSION)
   154                 permission=VIEW_SYSTEM_PERMISSION)
       
   155 @ajax_config(name='collections.json', context=IWfView, layer=IPyAMSLayer,
       
   156              permission=MANAGE_CONTENT_PERMISSION)
   148 @implementer(IWidgetForm, IInnerPage)
   157 @implementer(IWidgetForm, IInnerPage)
   149 class ViewCollectionsEditForm(AdminEditForm):
   158 class ViewCollectionsEditForm(AdminEditForm):
   150     """View collections settings edit form"""
   159     """View collections settings edit form"""
   151 
   160 
   152     legend = _("View collections settings")
   161     legend = _("View collections settings")