17 from zope.interface import Interface, implementer |
17 from zope.interface import Interface, implementer |
18 from zope.location import ILocation |
18 from zope.location import ILocation |
19 from zope.schema.fieldproperty import FieldProperty |
19 from zope.schema.fieldproperty import FieldProperty |
20 |
20 |
21 from pyams_content.features.search.portlet import ISearchResultsPortletSettings |
21 from pyams_content.features.search.portlet import ISearchResultsPortletSettings |
|
22 from pyams_default_theme import _ |
22 from pyams_default_theme.features.search.portlet.interfaces import ISearchResultsPortletDefaultRendererSettings |
23 from pyams_default_theme.features.search.portlet.interfaces import ISearchResultsPortletDefaultRendererSettings |
23 from pyams_default_theme.interfaces import ISearchResultsView |
24 from pyams_default_theme.interfaces import ISearchResultsView |
24 from pyams_portal.interfaces import IPortalContext, IPortletRenderer |
25 from pyams_portal.interfaces import IPortalContext, IPortletRenderer |
25 from pyams_portal.portlet import PortletRenderer |
26 from pyams_portal.portlet import PortletRenderer |
26 from pyams_skin.interfaces.viewlet import IBreadcrumbs |
27 from pyams_skin.interfaces.viewlet import IBreadcrumbs |
27 from pyams_skin.layer import IPyAMSLayer, IPyAMSUserLayer |
28 from pyams_skin.layer import IPyAMSLayer, IPyAMSUserLayer |
28 from pyams_template.template import template_config |
29 from pyams_template.template import template_config |
29 from pyams_utils.adapter import adapter_config, NullAdapter |
30 from pyams_utils.adapter import NullAdapter, adapter_config |
30 from pyams_utils.factory import factory_config |
31 from pyams_utils.factory import factory_config |
31 |
32 from pyams_utils.url import canonical_url, relative_url |
32 from pyams_default_theme import _ |
|
33 |
33 |
34 |
34 |
35 @factory_config(provided=ISearchResultsPortletDefaultRendererSettings) |
35 @factory_config(provided=ISearchResultsPortletDefaultRendererSettings) |
36 class SearchResultsPortletDefaultRendererSettings(Persistent, Contained): |
36 class SearchResultsPortletDefaultRendererSettings(Persistent, Contained): |
37 """Search results portlet default renderer settings""" |
37 """Search results portlet default renderer settings""" |
56 settings = self.renderer_settings |
56 settings = self.renderer_settings |
57 if not settings.allow_pagination: |
57 if not settings.allow_pagination: |
58 self.request.GET['length'] = '999' |
58 self.request.GET['length'] = '999' |
59 super(SearchResultsPortletDefaultRenderer, self).update() |
59 super(SearchResultsPortletDefaultRenderer, self).update() |
60 |
60 |
|
61 def get_url(self, target): |
|
62 if self.settings.force_canonical_url: |
|
63 return canonical_url(target, self.request) |
|
64 else: |
|
65 return relative_url(target, self.request) |
|
66 |
61 |
67 |
62 @adapter_config(context=(ILocation, IPyAMSUserLayer, ISearchResultsView), provides=IBreadcrumbs) |
68 @adapter_config(context=(ILocation, IPyAMSUserLayer, ISearchResultsView), provides=IBreadcrumbs) |
63 class BreadcrumbsAdapter(NullAdapter): |
69 class BreadcrumbsAdapter(NullAdapter): |
64 """Disable breadcrumbs in search results view""" |
70 """Disable breadcrumbs in search results view""" |