src/pyams_content/shared/common/zmi/properties.py
changeset 14 234db8f05928
parent 0 7c0001cacf8e
child 24 b5882159dea4
--- a/src/pyams_content/shared/common/zmi/properties.py	Mon Jan 18 17:29:59 2016 +0100
+++ b/src/pyams_content/shared/common/zmi/properties.py	Mon Jan 18 17:42:32 2016 +0100
@@ -18,7 +18,7 @@
 # import interfaces
 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
 from pyams_content.shared.common.interfaces import IWfSharedContent
-from pyams_form.interfaces.form import IWidgetForm
+from pyams_form.interfaces.form import IWidgetForm, IInnerTabForm, IInnerSubForm
 from pyams_skin.interfaces import IInnerPage, IPageHeader
 from pyams_skin.layer import IPyAMSLayer
 from pyams_zmi.interfaces.menu import IContentManagementMenu, IPropertiesMenu
@@ -26,16 +26,17 @@
 
 # import packages
 from pyams_content.shared.common.zmi import WfSharedContentHeaderAdapter
+from pyams_content.shared.common.zmi.summary import SharedContentSummaryForm
 from pyams_form.form import AJAXEditForm
 from pyams_pagelet.pagelet import pagelet_config
 from pyams_skin.viewlet.menu import MenuItem
 from pyams_utils.adapter import adapter_config
 from pyams_viewlet.manager import viewletmanager_config
 from pyams_viewlet.viewlet import viewlet_config
-from pyams_zmi.form import AdminEditForm
+from pyams_zmi.form import AdminEditForm, InnerAdminDisplayForm
 from pyramid.view import view_config
 from z3c.form import field
-from zope.interface import implementer
+from zope.interface import implementer, Interface
 
 from pyams_content import _
 
@@ -53,7 +54,7 @@
 
     label = _("Composition")
     icon_class = 'fa-dropbox'
-    url = '#'
+    url = '#summary.html'
 
 
 @viewlet_config(name='properties.submenu', context=IWfSharedContent, layer=IAdminLayer,
@@ -74,7 +75,7 @@
 
     legend = _("Content properties")
 
-    fields = field.Fields(IWfSharedContent).omit('__parent__', '__name__', 'creator', 'first_owner', 'modifiers')
+    fields = field.Fields(IWfSharedContent).select('title', 'short_name', 'description', 'keywords', 'notepad')
     ajax_handler = 'properties.json'
 
     def updateWidgets(self, prefix=None):
@@ -96,3 +97,42 @@
     """Shared content properties header adapter"""
 
     icon_class = 'fa fa-fw fa-edit'
+
+
+#
+# Properties summary
+#
+
+@adapter_config(name='properties-summary',
+                context=(IWfSharedContent, IPyAMSLayer, SharedContentSummaryForm),
+                provides=IInnerTabForm)
+class SharedContentPropertiesSummary(InnerAdminDisplayForm):
+    """Shared content properties summary tab"""
+
+    tab_label = _("Properties")
+    tab_target = 'properties-summary.html'
+
+    fields = field.Fields(Interface)
+
+    weight = 10
+
+
+@pagelet_config(name='properties-summary.html', context=IWfSharedContent, layer=IPyAMSLayer)
+@implementer(IInnerPage, IInnerTabForm)
+class SharedContentPropertiesSummaryDisplayForm(InnerAdminDisplayForm):
+    """Shared content properties summary display form"""
+
+    fields = field.Fields(Interface)
+
+
+@adapter_config(name='properties-main-summary.html',
+                context=(IWfSharedContent, IPyAMSLayer, SharedContentPropertiesSummaryDisplayForm),
+                provides=IInnerSubForm)
+class SharedContentMainPropertiesSummaryDisplayForm(InnerAdminDisplayForm):
+    """Shared content main properties summary display form"""
+
+    legend = _("Content properties")
+
+    fields = field.Fields(IWfSharedContent).select('title', 'short_name', 'description', 'keywords', 'notepad')
+
+    weight = 1