src/pyams_content/shared/common/zmi/security.py
changeset 591 b694d5667d17
parent 565 070528d7f960
child 754 7f33d4f99386
--- a/src/pyams_content/shared/common/zmi/security.py	Wed Jun 06 13:32:14 2018 +0200
+++ b/src/pyams_content/shared/common/zmi/security.py	Fri Jun 08 10:33:23 2018 +0200
@@ -27,7 +27,7 @@
 from z3c.table.interfaces import IValues, IColumn
 
 # import packages
-from pyams_form.form import AJAXEditForm
+from pyams_form.form import ajax_config
 from pyams_form.group import NamedWidgetsGroup
 from pyams_pagelet.pagelet import pagelet_config
 from pyams_skin.container import ContainerView
@@ -42,7 +42,6 @@
 from pyams_zmi.view import AdminView
 from pyramid.exceptions import NotFound
 from pyramid.url import resource_url
-from pyramid.view import view_config
 from z3c.form import field
 from z3c.form.browser.checkbox import SingleCheckBoxFieldWidget
 from z3c.form.interfaces import HIDDEN_MODE
@@ -153,6 +152,7 @@
 
 @pagelet_config(name='contributor-restrictions.html', context=IBaseSharedTool, layer=IPyAMSLayer,
                 permission=MANAGE_TOOL_PERMISSION)
+@ajax_config(name='contributor-restrictions.json', context=IBaseSharedTool, layer=IPyAMSLayer)
 class SharedToolContributorRestrictionsEditForm(AdminDialogEditForm):
     """Shared tool contributor restrictions edit form"""
 
@@ -160,7 +160,6 @@
 
     icon_css_class = 'fa fa-fw fa-lock'
 
-    ajax_handler = 'contributor-restrictions.json'
     edit_permission = MANAGE_TOOL_PERMISSION
 
     @property
@@ -200,17 +199,11 @@
         self.widgets['principal_id'].value = self.principal
         self.widgets['principal_id'].mode = HIDDEN_MODE
 
-
-@view_config(name='contributor-restrictions.json', context=IBaseSharedTool, request_type=IPyAMSLayer,
-             permission=MANAGE_TOOL_PERMISSION, renderer='json', xhr=True)
-class SharedToolContributorRestrictionsAJAXEditForm(AJAXEditForm, SharedToolContributorRestrictionsEditForm):
-    """Shared tool contributor restrictions edit form, JSON renderer"""
-
     def get_ajax_output(self, changes):
         if changes:
             return {'status': 'reload'}
         else:
-            return super(SharedToolContributorRestrictionsAJAXEditForm, self).get_ajax_output(changes)
+            return super(self.__class__, self).get_ajax_output(changes)
 
 
 #
@@ -345,6 +338,7 @@
 
 @pagelet_config(name='manager-restrictions.html', context=IBaseSharedTool, layer=IPyAMSLayer,
                 permission=MANAGE_TOOL_PERMISSION)
+@ajax_config(name='manager-restrictions.json', context=IBaseSharedTool, layer=IPyAMSLayer)
 class SharedToolManagerRestrictionsEditForm(AdminDialogEditForm):
     """Shared tool manager restrictions edit form"""
 
@@ -352,7 +346,6 @@
 
     icon_css_class = 'fa fa-fw fa-lock'
 
-    ajax_handler = 'manager-restrictions.json'
     edit_permission = MANAGE_TOOL_PERMISSION
 
     @property
@@ -414,14 +407,8 @@
                                          checkbox_field=self.interface['restricted_contents']))
         super(SharedToolManagerRestrictionsEditForm, self).updateGroups()
 
-
-@view_config(name='manager-restrictions.json', context=IBaseSharedTool, request_type=IPyAMSLayer,
-             permission=MANAGE_TOOL_PERMISSION, renderer='json', xhr=True)
-class SharedToolManagerRestrictionsAJAXEditForm(AJAXEditForm, SharedToolManagerRestrictionsEditForm):
-    """Shared tool manager restrictions edit form, JSON renderer"""
-
     def get_ajax_output(self, changes):
         if changes:
             return {'status': 'reload'}
         else:
-            return super(SharedToolManagerRestrictionsAJAXEditForm, self).get_ajax_output(changes)
+            return super(self.__class__, self).get_ajax_output(changes)