src/pyams_content/reference/pictograms/zmi/__init__.py
changeset 591 b694d5667d17
parent 576 12171cf62cc4
child 609 375ab52043d6
--- a/src/pyams_content/reference/pictograms/zmi/__init__.py	Wed Jun 06 13:32:14 2018 +0200
+++ b/src/pyams_content/reference/pictograms/zmi/__init__.py	Fri Jun 08 10:33:23 2018 +0200
@@ -9,7 +9,6 @@
 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
 # FOR A PARTICULAR PURPOSE.
 #
-from z3c.form.interfaces import NOVALUE, NO_VALUE
 
 __docformat__ = 'restructuredtext'
 
@@ -24,7 +23,6 @@
 from pyams_content.interfaces import MANAGE_SITE_ROOT_PERMISSION, IBaseContent
 from pyams_content.reference.pictograms.interfaces import IPictogramTable, IPictogram
 from pyams_content.reference.zmi.table import ReferenceTableContentsTable, ReferenceTableContentsView
-from pyams_form.form import AJAXAddForm, AJAXEditForm
 from pyams_i18n.interfaces import II18n
 from pyams_skin.interfaces.viewlet import IWidgetTitleViewletManager
 from pyams_skin.layer import IPyAMSLayer
@@ -34,6 +32,7 @@
 
 # import packages
 from pyams_content.reference.pictograms import Pictogram
+from pyams_form.form import AJAXAddForm, ajax_config
 from pyams_i18n.column import I18nAttrColumn
 from pyams_pagelet.pagelet import pagelet_config
 from pyams_skin.event import get_json_table_row_refresh_event
@@ -67,6 +66,7 @@
 
 @pagelet_config(name='add-pictogram.html', context=IPictogramTable, layer=IPyAMSLayer,
                 permission=MANAGE_SITE_ROOT_PERMISSION)
+@ajax_config(name='add-pictogram.json', context=IPictogramTable, layer=IPyAMSLayer, base=AJAXAddForm)
 class PictogramAddForm(AdminDialogAddForm):
     """Pictogram add form"""
 
@@ -74,7 +74,6 @@
     dialog_class = 'modal-large'
 
     fields = field.Fields(IPictogram).omit('__parent__', '__name__')
-    ajax_handler = 'add-pictogram.json'
     edit_permission = MANAGE_SITE_ROOT_PERMISSION
 
     def create(self, data):
@@ -88,13 +87,8 @@
         return 'contents.html'
 
 
-@view_config(name='add-pictogram.json', context=IPictogramTable, request_type=IPyAMSLayer,
-             permission=MANAGE_SITE_ROOT_PERMISSION, renderer='json', xhr=True)
-class PictogramAJAXAddForm(AJAXAddForm, PictogramAddForm):
-    """Pictogram add form, JSON renderer"""
-
-
 @pagelet_config(name='properties.html', context=IPictogram, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
+@ajax_config(name='properties.json', context=IPictogram, layer=IPyAMSLayer)
 class PictogramEditForm(AdminDialogEditForm):
     """Pictogram properties edit form"""
 
@@ -104,17 +98,10 @@
     dialog_class = 'modal-large'
 
     fields = field.Fields(IPictogram).omit('__parent__', '__name__')
-    ajax_handler = 'properties.json'
     edit_permission = MANAGE_SITE_ROOT_PERMISSION
 
-
-@view_config(name='properties.json', context=IPictogram, request_type=IPyAMSLayer,
-             permission=MANAGE_SITE_ROOT_PERMISSION, renderer='json', xhr=True)
-class PictogramAJAXEditForm(AJAXEditForm, PictogramEditForm):
-    """Pictogram edit form, JSON renderer"""
-
     def get_ajax_output(self, changes):
-        output = super(PictogramAJAXEditForm, self).get_ajax_output(changes)
+        output = super(self.__class__, self).get_ajax_output(changes)
         if ('image' in changes.get(IPictogram, ())) or \
            ('title' in changes.get(IBaseContent, ())):
             parent = get_parent(self.context, IPictogramTable)