16 from zope.container.contained import Contained |
16 from zope.container.contained import Contained |
17 from zope.interface import Interface |
17 from zope.interface import Interface |
18 from zope.schema.fieldproperty import FieldProperty |
18 from zope.schema.fieldproperty import FieldProperty |
19 |
19 |
20 from pyams_content.shared.view.portlet.interfaces import IViewItemsPortletSettings |
20 from pyams_content.shared.view.portlet.interfaces import IViewItemsPortletSettings |
21 from pyams_default_theme.shared.view.portlet.interfaces import IViewItemsPortletVerticalRendererSettings, \ |
21 from pyams_default_theme import _ |
22 IViewItemsPortletHorizontalRendererSettings |
22 from pyams_default_theme.shared.view.portlet.interfaces import IViewItemsPortletHorizontalRendererSettings, \ |
|
23 IViewItemsPortletVerticalRendererSettings |
23 from pyams_portal.interfaces import IPortalContext, IPortletRenderer |
24 from pyams_portal.interfaces import IPortalContext, IPortletRenderer |
24 from pyams_portal.portlet import PortletRenderer |
25 from pyams_portal.portlet import PortletRenderer |
25 from pyams_skin.layer import IPyAMSLayer |
26 from pyams_skin.layer import IPyAMSLayer |
26 from pyams_template.template import template_config |
27 from pyams_template.template import template_config |
27 from pyams_utils.adapter import adapter_config |
28 from pyams_utils.adapter import adapter_config |
28 from pyams_utils.factory import factory_config |
29 from pyams_utils.factory import factory_config |
|
30 from pyams_utils.url import canonical_url, relative_url |
29 |
31 |
30 from pyams_default_theme import _ |
32 |
|
33 class BaseViewItemsPortletRenderer(PortletRenderer): |
|
34 """Base view items portlet renderer""" |
|
35 |
|
36 def get_url(self, target): |
|
37 if self.settings.force_canonical_url: |
|
38 return canonical_url(target, self.request) |
|
39 else: |
|
40 return relative_url(target, self.request) |
31 |
41 |
32 |
42 |
33 # |
43 # |
34 # Default view portlet renderer |
44 # Default view portlet renderer |
35 # |
45 # |
47 |
57 |
48 |
58 |
49 @adapter_config(context=(IPortalContext, IPyAMSLayer, Interface, IViewItemsPortletSettings), |
59 @adapter_config(context=(IPortalContext, IPyAMSLayer, Interface, IViewItemsPortletSettings), |
50 provides=IPortletRenderer) |
60 provides=IPortletRenderer) |
51 @template_config(template='templates/view-items-list.pt', layer=IPyAMSLayer) |
61 @template_config(template='templates/view-items-list.pt', layer=IPyAMSLayer) |
52 class ViewItemsPortletVerticalRenderer(PortletRenderer): |
62 class ViewItemsPortletVerticalRenderer(BaseViewItemsPortletRenderer): |
53 """View items portlet vertical renderer""" |
63 """View items portlet vertical renderer""" |
54 |
64 |
55 label = _("Simple vertical view") |
65 label = _("Simple vertical view") |
56 weight = 0 |
66 weight = 0 |
57 |
67 |
71 |
81 |
72 @adapter_config(name='horizontal', |
82 @adapter_config(name='horizontal', |
73 context=(IPortalContext, IPyAMSLayer, Interface, IViewItemsPortletSettings), |
83 context=(IPortalContext, IPyAMSLayer, Interface, IViewItemsPortletSettings), |
74 provides=IPortletRenderer) |
84 provides=IPortletRenderer) |
75 @template_config(template='templates/view-items-horiz-list.pt', layer=IPyAMSLayer) |
85 @template_config(template='templates/view-items-horiz-list.pt', layer=IPyAMSLayer) |
76 class ViewItemsPortletHorizontalRenderer(PortletRenderer): |
86 class ViewItemsPortletHorizontalRenderer(BaseViewItemsPortletRenderer): |
77 """View items portlet horizontal renderer""" |
87 """View items portlet horizontal renderer""" |
78 |
88 |
79 label = _("Simple horizontal thumbnails view") |
89 label = _("Simple horizontal thumbnails view") |
80 weight = 1 |
90 weight = 1 |
81 |
91 |