--- a/src/pyams_content/component/paragraph/zmi/frame.py Wed Jun 06 13:32:14 2018 +0200
+++ b/src/pyams_content/component/paragraph/zmi/frame.py Fri Jun 08 10:33:23 2018 +0200
@@ -38,13 +38,13 @@
from pyams_content.component.paragraph.zmi.container import ParagraphContainerTable, \
ParagraphTitleToolbarViewletManager
from pyams_content.features.renderer.zmi.widget import RendererFieldWidget
+from pyams_form.form import ajax_config
from pyams_pagelet.pagelet import pagelet_config
from pyams_skin.event import get_json_switched_table_refresh_event, get_json_widget_refresh_event
from pyams_utils.adapter import adapter_config, ContextRequestAdapter
from pyams_utils.traversing import get_parent
from pyams_viewlet.viewlet import viewlet_config
from pyams_zmi.form import AdminDialogAddForm
-from pyramid.view import view_config
from z3c.form import field, button
from zope.interface import implementer, Interface
@@ -89,6 +89,8 @@
@pagelet_config(name='add-frame-paragraph.html', context=IParagraphContainerTarget, layer=IPyAMSLayer,
permission=MANAGE_CONTENT_PERMISSION)
+@ajax_config(name='add-frame-paragraph.json', context=IParagraphContainerTarget, request_type=IPyAMSLayer,
+ base=BaseParagraphAJAXAddForm)
@implementer(IFrameParagraphForm)
class FrameParagraphAddForm(AdminDialogAddForm):
"""Framed text paragraph add form"""
@@ -100,7 +102,6 @@
input_css_class = 'col-md-10'
fields = field.Fields(IFrameParagraph).omit('__parent__', '__name__', 'visible')
- ajax_handler = 'add-frame-paragraph.json'
edit_permission = MANAGE_CONTENT_PERMISSION
def updateWidgets(self, prefix=None):
@@ -115,14 +116,10 @@
IParagraphContainer(self.context).append(object)
-@view_config(name='add-frame-paragraph.json', context=IParagraphContainerTarget, request_type=IPyAMSLayer,
- permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True)
-class FrameParagraphAJAXAddForm(BaseParagraphAJAXAddForm, FrameParagraphAddForm):
- """Framed text paragraph add form, JSON renderer"""
-
-
@pagelet_config(name='properties.html', context=IFrameParagraph, layer=IPyAMSLayer,
permission=MANAGE_CONTENT_PERMISSION)
+@ajax_config(name='properties.json', context=IFrameParagraph, request_type=IPyAMSLayer,
+ base=BaseParagraphAJAXEditForm)
@implementer(IFrameParagraphForm)
class FrameParagraphPropertiesEditForm(BaseParagraphPropertiesEditForm):
"""Framed text paragraph properties edit form"""
@@ -138,7 +135,6 @@
fields = field.Fields(IFrameParagraph).omit('__parent__', '__name__', 'visible')
fields['renderer'].widgetFactory = RendererFieldWidget
- ajax_handler = 'properties.json'
edit_permission = MANAGE_CONTENT_PERMISSION
def updateWidgets(self, prefix=None):
@@ -150,14 +146,8 @@
widget.id = '{id}_{name}'.format(id=widget.id, name=self.context.__name__)
body_widget.widget_css_class = 'textarea'
-
-@view_config(name='properties.json', context=IFrameParagraph, request_type=IPyAMSLayer,
- permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True)
-class FrameParagraphPropertiesAJAXEditForm(BaseParagraphAJAXEditForm, FrameParagraphPropertiesEditForm):
- """Framed text paragraph properties edit form, JSON renderer"""
-
def get_ajax_output(self, changes):
- output = super(FrameParagraphPropertiesAJAXEditForm, self).get_ajax_output(changes)
+ output = super(self.__class__, self).get_ajax_output(changes)
if 'body' in changes.get(IFrameParagraph, ()):
# refresh associations count markers
parent = get_parent(self.context, IAssociationTarget)
@@ -171,12 +161,13 @@
@adapter_config(context=(IFrameParagraph, IPyAMSLayer), provides=IParagraphInnerEditor)
+@ajax_config(name='inner-properties.json', context=IFrameParagraph, layer=IPyAMSLayer,
+ base=BaseParagraphAJAXEditForm)
@implementer(IInnerForm, IPropertiesEditForm, IAssociationsParentForm)
class FrameParagraphInnerEditForm(FrameParagraphPropertiesEditForm):
"""Framed text paragraph inner edit form"""
legend = None
- ajax_handler = 'inner-properties.json'
@property
def buttons(self):
@@ -185,14 +176,8 @@
else:
return button.Buttons()
-
-@view_config(name='inner-properties.json', context=IFrameParagraph, request_type=IPyAMSLayer,
- permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True)
-class FrameParagraphInnerAJAXEditForm(BaseParagraphAJAXEditForm, FrameParagraphInnerEditForm):
- """Framed text paragraph inner edit form, JSON renderer"""
-
def get_ajax_output(self, changes):
- output = super(FrameParagraphInnerAJAXEditForm, self).get_ajax_output(changes)
+ output = super(self.__class__, self).get_ajax_output(changes)
updated = changes.get(IFrameParagraph, ())
if 'renderer' in updated:
output.setdefault('events', []).append(