19 from pyams_content.features.checker.interfaces import IContentChecker, ERROR_VALUE |
19 from pyams_content.features.checker.interfaces import IContentChecker, ERROR_VALUE |
20 from pyams_content.features.preview.interfaces import IPreviewTarget |
20 from pyams_content.features.preview.interfaces import IPreviewTarget |
21 from pyams_content.features.review.interfaces import IReviewTarget |
21 from pyams_content.features.review.interfaces import IReviewTarget |
22 from pyams_content.shared.form.interfaces import IWfForm, IForm, FORM_CONTENT_TYPE, FORM_CONTENT_NAME, \ |
22 from pyams_content.shared.form.interfaces import IWfForm, IForm, FORM_CONTENT_TYPE, FORM_CONTENT_NAME, \ |
23 IFormFieldContainerTarget, IFormHandler, IFormFieldContainer, IWfFormFactory |
23 IFormFieldContainerTarget, IFormHandler, IFormFieldContainer, IWfFormFactory |
|
24 from pyams_portal.interfaces import IPortalPage, PORTAL_PAGE_KEY, IPortalContext |
24 |
25 |
25 # import packages |
26 # import packages |
26 from pyams_content.shared.common import WfSharedContent, SharedContent, register_content_type, WfSharedContentChecker, \ |
27 from pyams_content.shared.common import WfSharedContent, SharedContent, register_content_type, WfSharedContentChecker, \ |
27 IWfSharedContentFactory |
28 IWfSharedContentFactory |
28 from pyams_utils.adapter import adapter_config |
29 from pyams_content.shared.common.portal import SharedContentPortalPage |
|
30 from pyams_utils.adapter import adapter_config, get_annotation_adapter |
29 from pyams_utils.registry import get_global_registry |
31 from pyams_utils.registry import get_global_registry |
30 from zope.interface import implementer, provider, alsoProvides, noLongerProvides |
32 from zope.interface import implementer, provider, alsoProvides, noLongerProvides |
31 from zope.schema.fieldproperty import FieldProperty |
33 from zope.schema.fieldproperty import FieldProperty |
32 |
34 |
33 from pyams_content import _ |
35 from pyams_content import _ |
34 |
36 |
35 |
37 |
36 @implementer(IWfForm, IFormFieldContainerTarget, |
38 @implementer(IWfForm, IFormFieldContainerTarget, |
37 IPreviewTarget, IReviewTarget) |
39 IPortalContext, IPreviewTarget, IReviewTarget) |
38 class WfForm(WfSharedContent): |
40 class WfForm(WfSharedContent): |
39 """Base form""" |
41 """Base form""" |
40 |
42 |
41 content_type = FORM_CONTENT_TYPE |
43 content_type = FORM_CONTENT_TYPE |
42 content_name = FORM_CONTENT_NAME |
44 content_name = FORM_CONTENT_NAME |
86 @adapter_config(context=IWfFormFactory, provides=IWfSharedContentFactory) |
88 @adapter_config(context=IWfFormFactory, provides=IWfSharedContentFactory) |
87 def form_content_factory(context): |
89 def form_content_factory(context): |
88 return WfForm |
90 return WfForm |
89 |
91 |
90 |
92 |
|
93 @adapter_config(context=IWfForm, provides=IPortalPage) |
|
94 def form_portal_page_adapter(context): |
|
95 """Form portal page adapter""" |
|
96 return get_annotation_adapter(context, PORTAL_PAGE_KEY, SharedContentPortalPage) |
|
97 |
|
98 |
91 @adapter_config(name='properties', context=IWfForm, provides=IContentChecker) |
99 @adapter_config(name='properties', context=IWfForm, provides=IContentChecker) |
92 class WfFormContentChecker(WfSharedContentChecker): |
100 class WfFormContentChecker(WfSharedContentChecker): |
93 """Form content checker""" |
101 """Form content checker""" |
94 |
102 |
95 def inner_check(self, request): |
103 def inner_check(self, request): |