21 |
21 |
22 # import interfaces |
22 # import interfaces |
23 from hypatia.interfaces import ICatalog |
23 from hypatia.interfaces import ICatalog |
24 from pyams_content.features.preview.interfaces import IPreviewTarget |
24 from pyams_content.features.preview.interfaces import IPreviewTarget |
25 from pyams_content.features.review.interfaces import IReviewTarget |
25 from pyams_content.features.review.interfaces import IReviewTarget |
26 from pyams_content.shared.view.interfaces import IView, IWfView, IViewQuery, IViewQueryParamsExtension, \ |
26 from pyams_content.shared.view.interfaces import IView, IWfView, IWfViewFactory, IViewQuery, \ |
27 IViewQueryFilterExtension, VIEW_CONTENT_TYPE, VIEW_CONTENT_NAME, IViewSettings |
27 IViewQueryParamsExtension, IViewQueryFilterExtension, VIEW_CONTENT_TYPE, VIEW_CONTENT_NAME, IViewSettings |
28 from zope.intid.interfaces import IIntIds |
28 from zope.intid.interfaces import IIntIds |
29 from zope.lifecycleevent.interfaces import IObjectModifiedEvent |
29 from zope.lifecycleevent.interfaces import IObjectModifiedEvent |
30 |
30 |
31 # import packages |
31 # import packages |
32 from hypatia.catalog import CatalogQuery |
32 from hypatia.catalog import CatalogQuery |
33 from hypatia.query import Any, Gt, Lt |
33 from hypatia.query import Any, Gt, Lt |
34 from pyams_cache.beaker import get_cache |
34 from pyams_cache.beaker import get_cache |
35 from pyams_catalog.query import CatalogResultSet, or_ |
35 from pyams_catalog.query import CatalogResultSet, or_ |
36 from pyams_content.shared.common import WfSharedContent, register_content_type, SharedContent |
36 from pyams_content.shared.common import WfSharedContent, register_content_type, SharedContent, IWfSharedContentFactory |
37 from pyams_utils.adapter import adapter_config, ContextAdapter |
37 from pyams_utils.adapter import adapter_config, ContextAdapter |
38 from pyams_utils.list import unique |
38 from pyams_utils.list import unique |
39 from pyams_utils.registry import get_utility, get_global_registry |
39 from pyams_utils.registry import get_utility, get_global_registry |
40 from pyams_utils.timezone import tztime |
40 from pyams_utils.timezone import tztime |
41 from pyams_workflow.interfaces import IWorkflow |
41 from pyams_workflow.interfaces import IWorkflow |
42 from pyramid.events import subscriber |
42 from pyramid.events import subscriber |
43 from pyramid.threadlocal import get_current_registry |
43 from pyramid.threadlocal import get_current_registry |
44 from zope.interface import implementer |
44 from zope.interface import implementer, provider |
45 from zope.schema.fieldproperty import FieldProperty |
45 from zope.schema.fieldproperty import FieldProperty |
46 |
46 |
47 |
47 |
48 VIEWS_CACHE_REGION = 'views' |
48 VIEWS_CACHE_REGION = 'views' |
49 VIEWS_CACHE_NAME = 'PyAMS::view' |
49 VIEWS_CACHE_NAME = 'PyAMS::view' |
109 return results |
109 return results |
110 |
110 |
111 register_content_type(WfView) |
111 register_content_type(WfView) |
112 |
112 |
113 |
113 |
|
114 @provider(IWfViewFactory) |
114 @implementer(IView) |
115 @implementer(IView) |
115 class View(SharedContent): |
116 class View(SharedContent): |
116 """Workflow managed view class""" |
117 """Workflow managed view class""" |
117 |
118 |
118 content_class = WfView |
119 |
|
120 @adapter_config(context=IWfViewFactory, provides=IWfSharedContentFactory) |
|
121 def ViewContentFactory(context): |
|
122 return WfView |
119 |
123 |
120 |
124 |
121 @adapter_config(context=IWfView, provides=IViewQuery) |
125 @adapter_config(context=IWfView, provides=IViewQuery) |
122 class ViewQuery(ContextAdapter): |
126 class ViewQuery(ContextAdapter): |
123 """View query""" |
127 """View query""" |