src/pyams_content/shared/site/zmi/link.py
changeset 591 b694d5667d17
parent 527 5dd1aa8bedd9
child 758 6aca2a06cbe3
--- a/src/pyams_content/shared/site/zmi/link.py	Wed Jun 06 13:32:14 2018 +0200
+++ b/src/pyams_content/shared/site/zmi/link.py	Fri Jun 08 10:33:23 2018 +0200
@@ -33,7 +33,7 @@
 from pyams_content.shared.site.link import ContentLink
 from pyams_content.shared.site.zmi.container import SiteContainerTreeTable, SiteContainerTreeNameColumn
 from pyams_content.shared.site.zmi.widget import SiteManagerFoldersSelectorFieldWidget
-from pyams_form.form import AJAXAddForm, AJAXEditForm
+from pyams_form.form import AJAXAddForm, ajax_config
 from pyams_pagelet.pagelet import pagelet_config
 from pyams_skin.table import get_object_name
 from pyams_skin.viewlet.toolbar import ToolbarMenuItem
@@ -42,7 +42,6 @@
 from pyams_utils.url import absolute_url
 from pyams_viewlet.viewlet import viewlet_config
 from pyams_zmi.form import AdminDialogAddForm, AdminDialogEditForm
-from pyramid.view import view_config
 from z3c.form import field
 from zope.interface import Interface
 from zope.schema import Int
@@ -71,6 +70,7 @@
 
 @pagelet_config(name='add-content-link.html', context=ISiteContainer, layer=IPyAMSLayer,
                 permission=CREATE_CONTENT_PERMISSION)
+@ajax_config(name='add-content-link.json', context=ISiteContainer, layer=IPyAMSLayer, base=AJAXAddForm)
 class ContentLinkAddForm(AdminDialogAddForm):
     """Content link add form"""
 
@@ -79,7 +79,6 @@
     fields = field.Fields(IContentLinkAddFormFields).select('reference', 'alt_title', 'parent')
     fields['parent'].widgetFactory = SiteManagerFoldersSelectorFieldWidget
 
-    ajax_handler = 'add-content-link.json'
     edit_permission = CREATE_CONTENT_PERMISSION
 
     __target = None
@@ -110,12 +109,6 @@
         return absolute_url(self.__target, self.request, 'admin#site-tree.html')
 
 
-@view_config(name='add-content-link.json', context=ISiteContainer, request_type=IPyAMSLayer,
-             permission=CREATE_CONTENT_PERMISSION, renderer='json', xhr=True)
-class ContentLinkAJAXAddForm(AJAXAddForm, ContentLinkAddForm):
-    """Content link add form, JSOn renderer"""
-
-
 @adapter_config(context=(IContentLink, IPyAMSLayer, ISiteTreeTable), provides=ITableElementName)
 class ContentLinkTableElementName(ContextRequestViewAdapter):
     """Content link table element name"""
@@ -133,6 +126,7 @@
 
 @pagelet_config(name='properties.html', context=IContentLink, layer=IPyAMSLayer,
                 permission=VIEW_SYSTEM_PERMISSION)
+@ajax_config(name='properties.json', context=IContentLink, layer=IPyAMSLayer)
 class ContentLinkPropertiesEditForm(AdminDialogEditForm):
     """Content link properties edit form"""
 
@@ -141,17 +135,10 @@
     legend = _("Edit content link properties")
 
     fields = field.Fields(IContentLink).omit('__parent__', '__name__')
-    ajax_handler = 'properties.json'
     edit_permission = MANAGE_CONTENT_PERMISSION
 
-
-@view_config(name='properties.json', context=IContentLink, request_type=IPyAMSLayer,
-             permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True)
-class ContentLinkPropertiesAJAXEditForm(AJAXEditForm, ContentLinkPropertiesEditForm):
-    """Content link properties edit form, JSON renderer"""
-
     def get_ajax_output(self, changes):
-        output = super(ContentLinkPropertiesAJAXEditForm, self).get_ajax_output(changes)
+        output = super(self.__class__, self).get_ajax_output(changes)
         intids = get_utility(IIntIds)
         if 'reference' in changes.get(IInternalReference, ()):
             table = SiteContainerTreeTable(self.context.__parent__, self.request)