14 |
14 |
15 |
15 |
16 # import standard library |
16 # import standard library |
17 |
17 |
18 # import interfaces |
18 # import interfaces |
|
19 from pyams_content.component.paragraph.interfaces import IParagraphFactorySettings |
19 from pyams_content.component.theme.interfaces import IThemesManagerTarget |
20 from pyams_content.component.theme.interfaces import IThemesManagerTarget |
20 from pyams_content.shared.blog.interfaces import IBlogManager, BLOG_CONTENT_TYPE, IBlogFolder |
21 from pyams_content.shared.blog.interfaces import IBlogManager, BLOG_CONTENT_TYPE, IBlogFolder |
21 from pyams_portal.interfaces import IPortalContext |
22 from pyams_portal.interfaces import IPortalContext |
22 from zope.annotation.interfaces import IAttributeAnnotatable |
23 from zope.annotation.interfaces import IAttributeAnnotatable |
23 from zope.component.interfaces import ISite |
24 from zope.component.interfaces import ISite |
29 from pyams_skin.skin import UserSkinnableContent |
30 from pyams_skin.skin import UserSkinnableContent |
30 from pyams_utils.traversing import get_parent |
31 from pyams_utils.traversing import get_parent |
31 from pyramid.events import subscriber |
32 from pyramid.events import subscriber |
32 from zope.container.folder import Folder |
33 from zope.container.folder import Folder |
33 from zope.interface import implementer |
34 from zope.interface import implementer |
|
35 from zope.schema.fieldproperty import FieldProperty |
34 |
36 |
35 |
37 |
36 @implementer(IBlogFolder) |
38 @implementer(IBlogFolder) |
37 class BlogFolder(Folder): |
39 class BlogFolder(Folder): |
38 """Blog folder class""" |
40 """Blog folder class""" |
39 |
41 |
40 |
42 |
41 @implementer(IBlogManager, IThemesManagerTarget, IAttributeAnnotatable, IPortalContext) |
43 @implementer(IBlogManager, IParagraphFactorySettings, IThemesManagerTarget, IAttributeAnnotatable, IPortalContext) |
42 class BlogManager(SharedTool, UserSkinnableContent): |
44 class BlogManager(SharedTool, UserSkinnableContent): |
43 """Nlog manager class""" |
45 """Nlog manager class""" |
44 |
46 |
45 shared_content_type = BLOG_CONTENT_TYPE |
47 shared_content_type = BLOG_CONTENT_TYPE |
46 shared_content_factory = BlogPost |
48 shared_content_factory = BlogPost |
|
49 |
|
50 auto_created_paragraphs = FieldProperty(IParagraphFactorySettings['auto_created_paragraphs']) |
47 |
51 |
48 |
52 |
49 @subscriber(IObjectAddedEvent, context_selector=IBlogManager) |
53 @subscriber(IObjectAddedEvent, context_selector=IBlogManager) |
50 def handle_added_blog_manager(event): |
54 def handle_added_blog_manager(event): |
51 """Register blog manager when added""" |
55 """Register blog manager when added""" |