src/pyams_content/reference/pictograms/zmi/manager.py
changeset 591 b694d5667d17
parent 482 d142297eee4b
child 956 a8723fffbaf6
equal deleted inserted replaced
590:4fafaf94701d 591:b694d5667d17
    25 from pyams_utils.interfaces.data import IObjectData
    25 from pyams_utils.interfaces.data import IObjectData
    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 
    28 
    29 # import packages
    29 # import packages
    30 from pyams_form.form import AJAXEditForm
    30 from pyams_form.form import AJAXEditForm, ajax_config
    31 from pyams_pagelet.pagelet import pagelet_config
    31 from pyams_pagelet.pagelet import pagelet_config
    32 from pyams_skin.viewlet.menu import MenuItem
    32 from pyams_skin.viewlet.menu import MenuItem
    33 from pyams_template.template import template_config
    33 from pyams_template.template import template_config
    34 from pyams_utils.registry import query_utility
    34 from pyams_utils.registry import query_utility
    35 from pyams_utils.traversing import get_parent
    35 from pyams_utils.traversing import get_parent
    53     url = '#pictograms-selection.html'
    53     url = '#pictograms-selection.html'
    54 
    54 
    55 
    55 
    56 @pagelet_config(name='pictograms-selection.html', context=IPictogramManagerTarget, layer=IPyAMSLayer,
    56 @pagelet_config(name='pictograms-selection.html', context=IPictogramManagerTarget, layer=IPyAMSLayer,
    57                 permission=MANAGE_TOOL_PERMISSION)
    57                 permission=MANAGE_TOOL_PERMISSION)
       
    58 @ajax_config(name='pictograms-selection.json', context=IPictogramManagerTarget, layer=IPyAMSLayer)
    58 @implementer(IWidgetForm, IInnerPage, IObjectData)
    59 @implementer(IWidgetForm, IInnerPage, IObjectData)
    59 class PictogramManagerEditForm(AdminEditForm):
    60 class PictogramManagerEditForm(AdminEditForm):
    60     """Pictogram manager selection form"""
    61     """Pictogram manager selection form"""
    61 
    62 
    62     legend = _("Selected pictograms")
    63     legend = _("Selected pictograms")
    64     fields = field.Fields(Interface)
    65     fields = field.Fields(Interface)
    65     buttons = button.Buttons(IUncheckedEditFormButtons)
    66     buttons = button.Buttons(IUncheckedEditFormButtons)
    66 
    67 
    67     object_data = {'ams-form-data-init-callback': 'PyAMS_content.pictograms.initManagerSelection'}
    68     object_data = {'ams-form-data-init-callback': 'PyAMS_content.pictograms.initManagerSelection'}
    68 
    69 
    69     ajax_handler = 'pictograms-selection.json'
       
    70     edit_permission = MANAGE_TOOL_PERMISSION
    70     edit_permission = MANAGE_TOOL_PERMISSION
    71 
    71 
    72     def update_content(self, content, data):
    72     def update_content(self, content, data):
    73         changes = {}
    73         changes = {}
    74         manager = IPictogramManager(self.context)
    74         manager = IPictogramManager(self.context)
    76         selected = json.loads(self.request.params.get('selected'), '[]')
    76         selected = json.loads(self.request.params.get('selected'), '[]')
    77         if changedField(field, selected, context=manager):
    77         if changedField(field, selected, context=manager):
    78             manager.selected_pictograms = selected
    78             manager.selected_pictograms = selected
    79             changes.setdefault(IPictogramManager, []).append(field.__name__)
    79             changes.setdefault(IPictogramManager, []).append(field.__name__)
    80         return changes
    80         return changes
    81 
       
    82 
       
    83 @view_config(name='pictograms-selection.json', context=IPictogramManagerTarget, request_type=IPyAMSLayer,
       
    84              permission=MANAGE_TOOL_PERMISSION, renderer='json', xhr=True)
       
    85 class PictogramManagerAJAXEditForm(AJAXEditForm, PictogramManagerEditForm):
       
    86     """Pictogram manager selection form, JSON renderer"""
       
    87 
    81 
    88 
    82 
    89 @viewlet_config(name='pictogram-selection.subform', context=IPictogramManagerTarget, layer=IAdminLayer,
    83 @viewlet_config(name='pictogram-selection.subform', context=IPictogramManagerTarget, layer=IAdminLayer,
    90                 view=PictogramManagerEditForm, manager=IWidgetsSuffixViewletsManager, permission=MANAGE_TOOL_PERMISSION)
    84                 view=PictogramManagerEditForm, manager=IWidgetsSuffixViewletsManager, permission=MANAGE_TOOL_PERMISSION)
    91 @template_config(template='templates/manager-selection.pt', layer=IAdminLayer)
    85 @template_config(template='templates/manager-selection.pt', layer=IAdminLayer)