--- a/src/pyams_content/component/paragraph/zmi/pictogram.py Wed Jun 06 13:32:14 2018 +0200
+++ b/src/pyams_content/component/paragraph/zmi/pictogram.py Fri Jun 08 10:33:23 2018 +0200
@@ -40,7 +40,7 @@
from pyams_content.component.paragraph.zmi import BaseParagraphAddMenu, BaseParagraphAJAXAddForm, \
BaseParagraphPropertiesEditForm, BaseParagraphAJAXEditForm
from pyams_content.features.renderer.zmi.widget import RendererFieldWidget
-from pyams_form.form import AJAXAddForm, AJAXEditForm
+from pyams_form.form import AJAXAddForm, ajax_config
from pyams_form.security import ProtectedFormObjectMixin
from pyams_i18n.column import I18nAttrColumn
from pyams_pagelet.pagelet import pagelet_config
@@ -88,6 +88,8 @@
@pagelet_config(name='add-pictogram-paragraph.html', context=IParagraphContainerTarget, layer=IPyAMSLayer,
permission=MANAGE_CONTENT_PERMISSION)
+@ajax_config(name='add-pictogram-paragraph.json', context=IParagraphContainerTarget, layer=IPyAMSLayer,
+ base=BaseParagraphAJAXAddForm)
class PictogramParagraphAddForm(AdminDialogAddForm):
"""Pictogram paragraph add form"""
@@ -95,7 +97,6 @@
icon_css_class = 'fa fa-fw fa-linode'
fields = field.Fields(IPictogramParagraph).select('title', 'renderer')
- ajax_handler = 'add-pictogram-paragraph.json'
edit_permission = MANAGE_CONTENT_PERMISSION
def create(self, data):
@@ -103,16 +104,12 @@
def add(self, object):
IParagraphContainer(self.context).append(object)
-
-
-@view_config(name='add-pictogram-paragraph.json', context=IParagraphContainerTarget, request_type=IPyAMSLayer,
- permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True)
-class PictogramParagraphAJAXAddForm(BaseParagraphAJAXAddForm, PictogramParagraphAddForm):
- """Pictogram paragraph add form, JSON renderer"""
-
-
+
+
@pagelet_config(name='properties.html', context=IPictogramParagraph, layer=IPyAMSLayer,
permission=MANAGE_CONTENT_PERMISSION)
+@ajax_config(name='properties.json', context=IPictogramParagraph, layer=IPyAMSLayer,
+ base=BaseParagraphAJAXEditForm)
class PictogramParagraphPropertiesEditForm(BaseParagraphPropertiesEditForm):
"""Pictogram paragraph properties edit form"""
@@ -129,23 +126,17 @@
fields = field.Fields(IPictogramParagraph).select('title', 'renderer')
fields['renderer'].widgetFactory = RendererFieldWidget
- ajax_handler = 'properties.json'
edit_permission = MANAGE_CONTENT_PERMISSION
-@view_config(name='properties.json', context=IPictogramParagraph, request_type=IPyAMSLayer,
- permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True)
-class PictogramParagraphPropertiesAJAXEditForm(BaseParagraphAJAXEditForm, PictogramParagraphPropertiesEditForm):
- """Pictogram paragraph properties edit form, JSON renderer"""
-
-
@adapter_config(context=(IPictogramParagraph, IPyAMSLayer), provides=IParagraphInnerEditor)
+@ajax_config(name='inner-properties.json', context=IPictogramParagraph, layer=IPyAMSLayer,
+ base=BaseParagraphAJAXEditForm)
@implementer(IInnerForm, IPropertiesEditForm, IPictogramsParentForm)
class PictogramParagraphInnerEditForm(PictogramParagraphPropertiesEditForm):
"""Pictogram paragraph inner edit form"""
legend = None
- ajax_handler = 'inner-properties.json'
@property
def buttons(self):
@@ -154,14 +145,8 @@
else:
return button.Buttons()
-
-@view_config(name='inner-properties.json', context=IPictogramParagraph, request_type=IPyAMSLayer,
- permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True)
-class PictogramParagraphInnerAJAXEditForm(BaseParagraphAJAXEditForm, PictogramParagraphInnerEditForm):
- """Pictograms paragraph inner edit form, JSON renderer"""
-
def get_ajax_output(self, changes):
- output = super(PictogramParagraphInnerAJAXEditForm, self).get_ajax_output(changes)
+ output = super(self.__class__, self).get_ajax_output(changes)
updated = changes.get(IPictogramParagraph, ())
if 'renderer' in updated:
output.setdefault('events', []).append(
@@ -325,6 +310,8 @@
@pagelet_config(name='add-pictogram.html', context=IPictogramContainerTarget, layer=IPyAMSLayer,
permission=MANAGE_CONTENT_PERMISSION)
+@ajax_config(name='add-pictogram.json', context=IParagraphContainerTarget, layer=IPyAMSLayer,
+ base=AJAXAddForm)
class PictogramAddForm(AdminDialogAddForm):
"""Pictogram add form"""
@@ -332,7 +319,6 @@
icon_css_class = 'fa fa-fw fa-arrow-h'
fields = field.Fields(IPictogramItem).omit('__parent__', '__name__', 'visible')
- ajax_handler = 'add-pictogram.json'
edit_permission = MANAGE_CONTENT_PERMISSION
def updateWidgets(self, prefix=None):
@@ -362,12 +348,6 @@
def add(self, object):
IPictogramContainer(self.context).append(object)
-
-@view_config(name='add-pictogram.json', context=IPictogramContainerTarget, request_type=IPyAMSLayer,
- permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True)
-class PictogramAJAXAddForm(AJAXAddForm, PictogramAddForm):
- """Pictogram add form, JSON renderer"""
-
def get_ajax_output(self, changes):
return {
'status': 'success',
@@ -385,6 +365,7 @@
@pagelet_config(name='properties.html', context=IPictogramItem, layer=IPyAMSLayer, permission=MANAGE_CONTENT_PERMISSION)
+@ajax_config(name='properties.json', context=IPictogramItem, layer=IPyAMSLayer)
class PictogramPropertiesEditForm(AdminDialogEditForm):
"""Pictogram properties edit form"""
@@ -394,7 +375,6 @@
icon_css_class = 'fa fa-fw fa-linode'
fields = field.Fields(IPictogramItem).omit('__parent__', '__name__', 'visible')
- ajax_handler = 'properties.json'
edit_permission = MANAGE_CONTENT_PERMISSION
def updateWidgets(self, prefix=None):
@@ -424,14 +404,8 @@
if 'body' in self.widgets:
self.widgets['body'].widget_css_class = 'textarea height-100'
-
-@view_config(name='properties.json', context=IPictogramItem, request_type=IPyAMSLayer,
- permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True)
-class PictogramPropertiesAJAXEditForm(AJAXEditForm, PictogramPropertiesEditForm):
- """Pictogram properties edit form, JSON renderer"""
-
def get_ajax_output(self, changes):
- output = super(PictogramPropertiesAJAXEditForm, self).get_ajax_output(changes)
+ output = super(self.__class__, self).get_ajax_output(changes)
updated = changes.get(IPictogramItem, ())
if updated:
target = get_parent(self.context, IPictogramContainerTarget)