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) |