13 __docformat__ = 'restructuredtext' |
13 __docformat__ = 'restructuredtext' |
14 |
14 |
15 |
15 |
16 # import standard library |
16 # import standard library |
17 |
17 |
18 # import interfaces |
18 from pyramid.decorator import reify |
19 from pyams_portal.interfaces import IPortalContext, IPortalPage, IPortalTemplateConfiguration, \ |
19 from pyramid.exceptions import NotFound |
20 IPortalPortletsConfiguration, IPortletRenderer, IPortlet, PREVIEW_MODE |
|
21 from pyams_skin.layer import IPyAMSUserLayer |
|
22 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION |
|
23 from pyams_workflow.interfaces import IWorkflowPublicationInfo |
|
24 |
20 |
25 # import packages |
21 # import packages |
26 from pyams_default_theme.page import BaseIndexPage |
22 from pyams_default_theme.page import BaseIndexPage |
27 from pyams_pagelet.pagelet import pagelet_config |
23 from pyams_pagelet.pagelet import pagelet_config |
|
24 # import interfaces |
|
25 from pyams_portal.interfaces import IPortalContext, IPortalPage, IPortalTemplateConfiguration, \ |
|
26 IPortalPortletsConfiguration, IPortletRenderer, IPortlet, PREVIEW_MODE, IPortletCSSClass |
|
27 from pyams_skin.layer import IPyAMSUserLayer |
28 from pyams_template.template import template_config |
28 from pyams_template.template import template_config |
29 from pyramid.decorator import reify |
29 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION |
30 from pyramid.exceptions import NotFound |
30 from pyams_workflow.interfaces import IWorkflowPublicationInfo |
31 |
31 |
32 |
32 |
33 class BasePortalContextIndexPage(BaseIndexPage): |
33 class BasePortalContextIndexPage(BaseIndexPage): |
34 """Base portal context index page""" |
34 """Base portal context index page""" |
35 |
35 |
65 return IPortalPortletsConfiguration(self.context) |
65 return IPortalPortletsConfiguration(self.context) |
66 |
66 |
67 def get_portlet(self, name): |
67 def get_portlet(self, name): |
68 return self.request.registry.getUtility(IPortlet, name=name) |
68 return self.request.registry.getUtility(IPortlet, name=name) |
69 |
69 |
|
70 def get_portlet_css_class(self, portlet_id): |
|
71 configuration = self.portlet_configuration.get_portlet_configuration(portlet_id) |
|
72 portlet = self.get_portlet(configuration.portlet_name) |
|
73 return self.request.registry.queryMultiAdapter((portlet, self.request), IPortletCSSClass, default='') |
|
74 |
70 def render_portlet(self, portlet_id): |
75 def render_portlet(self, portlet_id): |
71 renderer = self.portlets.get(portlet_id) |
76 renderer = self.portlets.get(portlet_id) |
72 if renderer is not None: |
77 if renderer is not None: |
73 return renderer.render() |
78 return renderer.render() |
74 else: |
79 else: |