src/pyams_content/shared/blog/interfaces/__init__.py
changeset 291 ec12c83bc8a5
parent 42 bcb01961928e
child 297 4f385d0a5ce7
--- 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)