src/pyams_portal/zmi/template.py
changeset 97 926d36ad8b8c
parent 76 3d097899a717
child 119 d2d0c38fa8f8
--- a/src/pyams_portal/zmi/template.py	Mon Jun 11 15:30:26 2018 +0200
+++ b/src/pyams_portal/zmi/template.py	Mon Jun 11 15:31:15 2018 +0200
@@ -19,19 +19,19 @@
 from pyams_portal.interfaces import IPortalTemplateContainer, IPortalTemplate, IPortalContext, \
     MANAGE_TEMPLATE_PERMISSION
 from pyams_skin.interfaces import IPageHeader, IContentTitle
-from pyams_skin.interfaces.viewlet import IWidgetTitleViewletManager
+from pyams_skin.interfaces.viewlet import IWidgetTitleViewletManager, IBreadcrumbItem
 from pyams_skin.layer import IPyAMSLayer
 from pyams_zmi.layer import IAdminLayer
 from z3c.form.interfaces import IDataExtractedEvent
 from zope.component.interfaces import ISite
 
 # import packages
-from pyams_form.form import AJAXAddForm
+from pyams_form.form import AJAXAddForm, ajax_config
 from pyams_pagelet.pagelet import pagelet_config
 from pyams_portal.template import PortalTemplate
 from pyams_portal.zmi.container import PortalTemplateContainerTable
-from pyams_skin.container import delete_container_element
 from pyams_skin.page import DefaultPageHeaderAdapter
+from pyams_skin.viewlet.breadcrumb import BreadcrumbItem
 from pyams_skin.viewlet.toolbar import ToolbarAction
 from pyams_utils.adapter import adapter_config
 from pyams_utils.registry import query_utility
@@ -41,13 +41,19 @@
 from pyams_viewlet.viewlet import viewlet_config
 from pyams_zmi.form import AdminDialogAddForm
 from pyramid.events import subscriber
-from pyramid.view import view_config
 from z3c.form import field
 from zope.interface import Interface, Invalid
 
 from pyams_portal import _
 
 
+@adapter_config(context=(IPortalTemplate, IPyAMSLayer), provides=IBreadcrumbItem)
+class PortalTemplateBreadcrumbAdapter(BreadcrumbItem):
+    """Portal template breadcrumb adapter"""
+
+    label = _("Portal template")
+
+
 @adapter_config(context=(IPortalTemplate, IPyAMSLayer, Interface), provides=IPageHeader)
 class PortalTemplateHeaderAdapter(DefaultPageHeaderAdapter):
     """Portal template header adapter"""
@@ -88,6 +94,8 @@
 
 @pagelet_config(name='add-portal-template.html', context=ISite, layer=IPyAMSLayer,
                 permission=MANAGE_TEMPLATE_PERMISSION)
+@ajax_config(name='add-portal-template.json', context=ISite, layer=IPyAMSLayer,
+             permission=MANAGE_TEMPLATE_PERMISSION, base=AJAXAddForm)
 class PortalTemplateAddForm(AdminDialogAddForm):
     """Portal template add form"""
 
@@ -117,9 +125,3 @@
     name = event.data.get('name')
     if name in container:
         event.form.widgets.errors += (Invalid(_("Specified name is already used!")),)
-
-
-@view_config(name='add-portal-template.json', context=ISite, request_type=IPyAMSLayer,
-             permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True)
-class PortalTemplateAJAXAddForm(AJAXAddForm, PortalTemplateAddForm):
-    """Portal template add form, AJAX handler"""