src/pyams_content/shared/view/zmi/theme.py
changeset 591 b694d5667d17
parent 92 3facc843c06f
child 800 2b5460ecb254
equal deleted inserted replaced
590:4fafaf94701d 591:b694d5667d17
    26 from pyams_zmi.interfaces.menu import IPropertiesMenu
    26 from pyams_zmi.interfaces.menu import IPropertiesMenu
    27 from pyams_zmi.layer import IAdminLayer
    27 from pyams_zmi.layer import IAdminLayer
    28 from z3c.form.interfaces import INPUT_MODE
    28 from z3c.form.interfaces import INPUT_MODE
    29 
    29 
    30 # import packages
    30 # import packages
    31 from pyams_form.form import AJAXEditForm
    31 from pyams_form.form import ajax_config
    32 from pyams_pagelet.pagelet import pagelet_config
    32 from pyams_pagelet.pagelet import pagelet_config
    33 from pyams_skin.viewlet.menu import MenuItem
    33 from pyams_skin.viewlet.menu import MenuItem
    34 from pyams_utils.registry import get_utility
    34 from pyams_utils.registry import get_utility
    35 from pyams_viewlet.viewlet import viewlet_config
    35 from pyams_viewlet.viewlet import viewlet_config
    36 from pyams_zmi.form import AdminEditForm
    36 from pyams_zmi.form import AdminEditForm
    37 from pyramid.view import view_config
       
    38 from z3c.form import field, button
    37 from z3c.form import field, button
    39 from zope.interface import implementer, Interface
    38 from zope.interface import implementer, Interface
    40 
    39 
    41 from pyams_content import _
    40 from pyams_content import _
    42 
    41 
    50     icon_class = 'fa-tags'
    49     icon_class = 'fa-tags'
    51     url = '#themes.html'
    50     url = '#themes.html'
    52 
    51 
    53 
    52 
    54 @pagelet_config(name='themes.html', context=IWfView, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
    53 @pagelet_config(name='themes.html', context=IWfView, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
       
    54 @ajax_config(name='themes.json', context=IWfView, layer=IPyAMSLayer, permission=MANAGE_CONTENT_PERMISSION)
    55 @implementer(IWidgetForm, IInnerPage)
    55 @implementer(IWidgetForm, IInnerPage)
    56 class ViewThemesEditForm(AdminEditForm):
    56 class ViewThemesEditForm(AdminEditForm):
    57     """View themes settings edit form"""
    57     """View themes settings edit form"""
    58 
    58 
    59     legend = _("View themes settings")
    59     legend = _("View themes settings")
    65         if self.mode == INPUT_MODE:
    65         if self.mode == INPUT_MODE:
    66             return button.Buttons(IUncheckedEditFormButtons)
    66             return button.Buttons(IUncheckedEditFormButtons)
    67         else:
    67         else:
    68             return button.Buttons(Interface)
    68             return button.Buttons(Interface)
    69 
    69 
    70     ajax_handler = 'themes.json'
       
    71 
       
    72     def updateWidgets(self, prefix=None):
    70     def updateWidgets(self, prefix=None):
    73         super(ViewThemesEditForm, self).updateWidgets(prefix)
    71         super(ViewThemesEditForm, self).updateWidgets(prefix)
    74         if 'themes' in self.widgets:
    72         if 'themes' in self.widgets:
    75             manager = get_utility(IViewsManager)
    73             manager = get_utility(IViewsManager)
    76             self.widgets['themes'].thesaurus_name = IThesaurusContextManager(manager).thesaurus_name
    74             self.widgets['themes'].thesaurus_name = IThesaurusContextManager(manager).thesaurus_name
    77 
       
    78 
       
    79 @view_config(name='themes.json', context=IWfView, request_type=IPyAMSLayer,
       
    80              permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True)
       
    81 class ViewThemesAJAXEditForm(AJAXEditForm, ViewThemesEditForm):
       
    82     """View themes settings edit form, JSON renderer"""