Added containment restrictions
authorThierry Florac <tflorac@ulthar.net>
Sun, 26 Nov 2017 09:56:51 +0100
changeset 291 ec12c83bc8a5
parent 290 3c4cf9537da7
child 292 c8704817db4a
Added containment restrictions
src/pyams_content/shared/blog/interfaces/__init__.py
--- a/src/pyams_content/shared/blog/interfaces/__init__.py	Sun Nov 26 09:56:24 2017 +0100
+++ b/src/pyams_content/shared/blog/interfaces/__init__.py	Sun Nov 26 09:56:51 2017 +0100
@@ -17,9 +17,12 @@
 
 # import interfaces
 from pyams_content.shared.common.interfaces import ISharedSite, ISharedTool, IWfSharedContent, ISharedContent
+from pyams_sequence.interfaces import ISequentialIdTarget
+from pyams_workflow.interfaces import IWorkflowPublicationSupport
 from zope.container.interfaces import IContainer
 
 # import packages
+from zope.container.constraints import containers, contains
 
 from pyams_content import _
 
@@ -28,17 +31,24 @@
 BLOG_CONTENT_NAME = _("Blog post")
 
 
-class IBlogManager(ISharedSite, ISharedTool):
-    """Blog manager interface"""
+class IWfBlogPost(IWfSharedContent):
+    """Blog topic interface"""
 
 
-class IWfBlogPost(IWfSharedContent):
-    """Blog topic interface"""
+class IBlogPost(ISharedContent):
+    """Workflow managed blog post interface"""
+
+    containers('.IBlogFolder')
 
 
 class IBlogFolder(IContainer):
     """Blog folder interface"""
 
+    containers('.IBlogManager', '.IBlogFolder')
+    contains('.IBlogFolder', '.IBlogPost')
 
-class IBlogPost(ISharedContent):
-    """Workflow managed blog post interface"""
+
+class IBlogManager(ISharedSite, ISharedTool, IWorkflowPublicationSupport, ISequentialIdTarget):
+    """Blog manager interface"""
+
+    contains(IBlogFolder)