21 from pyams_content.component.theme.interfaces import IThemesTarget |
21 from pyams_content.component.theme.interfaces import IThemesTarget |
22 from pyams_content.features.preview.interfaces import IPreviewTarget |
22 from pyams_content.features.preview.interfaces import IPreviewTarget |
23 from pyams_content.features.review.interfaces import IReviewTarget |
23 from pyams_content.features.review.interfaces import IReviewTarget |
24 from pyams_content.shared.site.interfaces import ITopic, IWfTopic, TOPIC_CONTENT_NAME, \ |
24 from pyams_content.shared.site.interfaces import ITopic, IWfTopic, TOPIC_CONTENT_NAME, \ |
25 TOPIC_CONTENT_TYPE, IWfTopicFactory |
25 TOPIC_CONTENT_TYPE, IWfTopicFactory |
26 from pyams_portal.interfaces import IPortalContext, IPortalPage, PORTAL_PAGE_KEY |
|
27 from pyams_workflow.interfaces import IWorkflow, IWorkflowVersions, IWorkflowState |
26 from pyams_workflow.interfaces import IWorkflow, IWorkflowVersions, IWorkflowState |
28 |
27 |
29 # import packages |
28 # import packages |
30 from pyams_content.shared.common import SharedContent, WfSharedContent, register_content_type, IWfSharedContentFactory |
29 from pyams_content.shared.common import SharedContent, WfSharedContent, register_content_type, IWfSharedContentFactory |
31 from pyams_content.shared.common.portal import SharedContentPortalPage |
30 from pyams_utils.adapter import adapter_config |
32 from pyams_utils.adapter import adapter_config, get_annotation_adapter |
|
33 from zope.interface import implementer, provider |
31 from zope.interface import implementer, provider |
34 |
32 |
35 |
33 |
36 @implementer(IWfTopic, IParagraphContainerTarget, IThemesTarget, IIllustrationTarget, |
34 @implementer(IWfTopic, IIllustrationTarget, IParagraphContainerTarget, IThemesTarget, |
37 IPortalContext, IPreviewTarget, IReviewTarget) |
35 IPreviewTarget, IReviewTarget) |
38 class WfTopic(WfSharedContent): |
36 class WfTopic(WfSharedContent): |
39 """Base topic""" |
37 """Base topic""" |
40 |
38 |
41 content_type = TOPIC_CONTENT_TYPE |
39 content_type = TOPIC_CONTENT_TYPE |
42 content_name = TOPIC_CONTENT_NAME |
40 content_name = TOPIC_CONTENT_NAME |
60 |
58 |
61 |
59 |
62 @adapter_config(context=IWfTopicFactory, provides=IWfSharedContentFactory) |
60 @adapter_config(context=IWfTopicFactory, provides=IWfSharedContentFactory) |
63 def topic_content_factory(context): |
61 def topic_content_factory(context): |
64 return WfTopic |
62 return WfTopic |
65 |
|
66 |
|
67 @adapter_config(context=IWfTopic, provides=IPortalPage) |
|
68 def topic_portal_page_adapter(context): |
|
69 """Topic portal page adapter""" |
|
70 return get_annotation_adapter(context, PORTAL_PAGE_KEY, SharedContentPortalPage) |
|