[silva.core.contentlayout][Sylvain Viollon] Make the service edi...

[email protected] Mon, 04 Nov 2013 17:47:27 +0100
Newsgroups gmane.comp.web.zope.silva.cvs
Message-ID <[email protected]>
author:    Sylvain Viollon
date:      Mon Nov 04 17:47:21 2013 +0100
revision:  358:91525dd46908 in silva.core.contentlayout
branch:    2.4
details:   https://hg.infrae.com/silva.core.contentlayout?cmd=changeset;node=91525dd46908
modified:  src/silva/core/contentlayout/service.py
added:     
removed:   
log:       Make the service editable in SMI.


diffstat:

 src/silva/core/contentlayout/service.py |  76 +++++++++++++++++++++++++++++++-
 1 files changed, 73 insertions(+), 3 deletions(-)

diffs (124 lines):

diff -r f05cf9da4a44 -r 91525dd46908 src/silva/core/contentlayout/service.py
--- a/src/silva/core/contentlayout/service.py	Tue Oct 08 17:25:29 2013 +0200
+++ b/src/silva/core/contentlayout/service.py	Mon Nov 04 17:47:21 2013 +0100
@@ -17,8 +17,10 @@
 
 from silva.core import conf as silvaconf
 from silva.core.interfaces import IAuthorizationManager, IRoot
+from silva.core.interfaces import ISilvaConfigurableService
 from silva.core.services.base import SilvaService
 from silva.translations import translate as _
+from silva.ui import menu
 from zeam.form import silva as silvaforms
 
 from Products.Silva.ExtensionRegistry import extensionRegistry
@@ -42,7 +44,7 @@
     """Design service provides security and other settings for content
     layout designs
     """
-    grok.implements(interfaces.IContentLayoutService)
+    grok.implements(interfaces.IContentLayoutService, ISilvaConfigurableService)
     grok.name('service_contentlayout')
     silvaconf.icon('service.png')
     meta_type = 'Silva ContentLayout Service'
@@ -240,9 +242,26 @@
     grok.name('manage_templates')
     grok.context(ContentLayoutService)
 
-    label = _(u"Template Service configuration")
+    label = _(u"Template configuration")
     description = _(u"Configure restrictions and defaults"
-                    u" for content layout tempates")
+                    u" for content layout tempates.")
+
+
+
+class ContentLayoutServiceTemplatesConfiguration(silvaforms.ComposedConfigurationForm):
+    grok.name('admin-templates')
+    grok.context(ContentLayoutService)
+
+    label = _(u"Template configuration")
+    description = _(u"Configure restrictions and defaults"
+                    u" for content layout tempates.")
+
+
+class ContentLayoutServiceTemplatesConfigurationMenu(menu.MenuItem):
+    grok.adapts(menu.ContentMenu, ContentLayoutService)
+    grok.order(20)
+    name = _('Templates')
+    screen = ContentLayoutServiceTemplatesConfiguration
 
 
 class DesignContentRule(object):
@@ -312,6 +331,22 @@
     ignoreContent = False
 
 
+class DesignRestrictionsConfiguration(silvaforms.SMISubForm):
+    """Configure designs access restrictions.
+    """
+    grok.context(ContentLayoutService)
+    grok.view(ContentLayoutServiceTemplatesConfiguration)
+    grok.order(10)
+
+    label = _(u"Define templates access restrictions")
+    fields = silvaforms.Fields(interfaces.IDesignRestrictions)
+    actions = silvaforms.Actions(
+        silvaforms.CancelConfigurationAction(),
+        silvaforms.EditAction())
+    dataManager = silvaforms.SilvaDataManager
+    ignoreContent = False
+
+
 class DefaultDesignRule(DesignContentRule):
     """Default design for a content type.
     """
@@ -339,6 +374,23 @@
     ignoreContent = False
 
 
+
+class ContentDefaultDesignConfiguration(silvaforms.SMISubForm):
+    """Configure default design for content types
+    """
+    grok.context(ContentLayoutService)
+    grok.view(ContentLayoutServiceTemplatesConfiguration)
+    grok.order(10)
+
+    label = _(u"Define default template for content types")
+    fields = silvaforms.Fields(interfaces.IContentDefaultDesigns)
+    actions = silvaforms.Actions(
+        silvaforms.CancelConfigurationAction(),
+        silvaforms.EditAction())
+    dataManager = silvaforms.SilvaDataManager
+    ignoreContent = False
+
+
 # Block configuration
 
 class BlockGroup(object):
@@ -374,6 +426,24 @@
     ignoreContent = False
 
 
+class ContentLayoutServiceBlocksConfiguration(silvaforms.ConfigurationForm):
+    grok.context(ContentLayoutService)
+
+    label = _(u"Component palette configuration")
+    description = _(u"Sort possible components into groups.")
+    fields = silvaforms.Fields(interfaces.IBlockGroupsFields)
+    actions = silvaforms.Actions(
+        silvaforms.CancelConfigurationAction(),
+        silvaforms.EditAction())
+
+
+class ContentLayoutServiceBlocksConfigurationMenu(menu.MenuItem):
+    grok.adapts(menu.ContentMenu, ContentLayoutService)
+    grok.order(10)
+    name = _('Component palette')
+    screen = ContentLayoutServiceBlocksConfiguration
+
+
 @grok.subscribe(interfaces.IContentLayoutService, IObjectAddedEvent)
 def configure_models(service, event):
     root = aq_parent(service)