src/pyams_content/shared/site/zmi/folder.py
changeset 591 b694d5667d17
parent 583 a3df1b69616b
child 714 dd257ef7fcaa
--- a/src/pyams_content/shared/site/zmi/folder.py	Wed Jun 06 13:32:14 2018 +0200
+++ b/src/pyams_content/shared/site/zmi/folder.py	Fri Jun 08 10:33:23 2018 +0200
@@ -9,10 +9,6 @@
 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
 # FOR A PARTICULAR PURPOSE.
 #
-from pyams_content.shared.common import IBaseSharedTool
-from pyams_content.shared.common.zmi.manager import SharedToolPropertiesEditForm
-from pyams_utils.adapter import adapter_config, ContextRequestAdapter
-from pyams_zmi.interfaces.menu import ISiteManagementMenu
 
 __docformat__ = 'restructuredtext'
 
@@ -21,20 +17,24 @@
 
 # import interfaces
 from pyams_content.interfaces import MANAGE_SITE_PERMISSION, MANAGE_TOOL_PERMISSION
+from pyams_content.shared.common.interfaces import IBaseSharedTool
 from pyams_content.shared.site.interfaces import ISiteContainer, ISiteManager, ISiteFolder
 from pyams_i18n.interfaces import INegotiator, II18n
 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu, IMenuHeader
 from pyams_skin.layer import IPyAMSLayer
+from pyams_zmi.interfaces.menu import ISiteManagementMenu
 from pyams_zmi.layer import IAdminLayer
 from z3c.form.interfaces import IDataExtractedEvent
 from zope.intid.interfaces import IIntIds
 
 # import packages
+from pyams_content.shared.common.zmi.manager import SharedToolPropertiesEditForm
 from pyams_content.shared.site.zmi.widget import SiteManagerFoldersSelectorFieldWidget
-from pyams_form.form import AJAXAddForm, AJAXEditForm
+from pyams_form.form import AJAXAddForm, AJAXEditForm, ajax_config
 from pyams_i18n.schema import I18nTextLineField
 from pyams_pagelet.pagelet import pagelet_config
 from pyams_skin.viewlet.toolbar import ToolbarMenuItem
+from pyams_utils.adapter import adapter_config, ContextRequestAdapter
 from pyams_utils.registry import get_utility
 from pyams_utils.traversing import get_parent
 from pyams_utils.unicode import translate_string
@@ -80,6 +80,7 @@
 
 @pagelet_config(name='add-site-folder.html', context=ISiteContainer, layer=IPyAMSLayer,
                 permission=MANAGE_SITE_PERMISSION)
+@ajax_config(name='add-site-folder.json', context=ISiteContainer, layer=IPyAMSLayer, base=AJAXAddForm)
 class SiteFolderAddForm(AdminDialogAddForm):
     """Site folder add form"""
 
@@ -93,7 +94,6 @@
     fields = field.Fields(ISiteFolderAddFormFields)
     fields['parent'].widgetFactory = SiteManagerFoldersSelectorFieldWidget
 
-    ajax_handler = 'add-site-folder.json'
     edit_permission = MANAGE_SITE_PERMISSION
 
     def updateWidgets(self, prefix=None):
@@ -140,6 +140,9 @@
     def nextURL(self):
         return absolute_url(self.context, self.request, 'admin#site-tree.html')
 
+    def get_ajax_output(self, changes):
+        return {'status': 'reload'}
+
 
 @subscriber(IDataExtractedEvent, form_selector=SiteFolderAddForm)
 def handle_site_folder_add_form_data_extraction(event):
@@ -150,15 +153,6 @@
         event.form.widgets.errors += (Invalid(_("You must provide a folder name for default server language!")),)
 
 
-@view_config(name='add-site-folder.json', context=ISiteContainer, request_type=IPyAMSLayer,
-             permission=MANAGE_SITE_PERMISSION, renderer='json', xhr=True)
-class SiteFolderAJAXAddForm(AJAXAddForm, SiteFolderAddForm):
-    """Site folder add form, JSON renderer"""
-
-    def get_ajax_output(self, changes):
-        return {'status': 'reload'}
-
-
 @adapter_config(context=(ISiteFolder, ISiteManagementMenu), provides=IMenuHeader)
 class SiteFolderSiteManagementMenuHeader(ContextRequestAdapter):
     """Site folder site management menu header adapter"""