diff --git a/tabellio/searchform/configure.zcml b/tabellio/searchform/configure.zcml index 8aebe29..01530d9 100644 --- a/tabellio/searchform/configure.zcml +++ b/tabellio/searchform/configure.zcml @@ -23,4 +23,11 @@ class=".simple.SimpleSearchView" permission="zope2.View"/> + + diff --git a/tabellio/searchform/guided-search.pt b/tabellio/searchform/guided-search.pt new file mode 100644 index 0000000..86bdfe3 --- /dev/null +++ b/tabellio/searchform/guided-search.pt @@ -0,0 +1,79 @@ + + + + + + +
+

+
+ + + +
+ + + + + + diff --git a/tabellio/searchform/guided.py b/tabellio/searchform/guided.py new file mode 100644 index 0000000..a1913a9 --- /dev/null +++ b/tabellio/searchform/guided.py @@ -0,0 +1,30 @@ +from zope import component +from Products.Five import BrowserView +from Products.CMFCore.utils import getToolByName +from plone.registry.interfaces import IRegistry +from tabellio.config.interfaces import ITabellioSettings + + +class GuidedSearchView(BrowserView): + def deputies_url(self): + self.settings = component.getUtility(IRegistry).forInterface(ITabellioSettings, False) + self.portal = getToolByName(self.context, 'portal_url').getPortalObject() + return self.deputies_folder.absolute_url() + + def get_folder_at_path(self, path): + current = self.portal + for part in path.split('/'): + if not part: + continue + current = getattr(current, part) + return current + + _deputies_folder = None + def deputies_folder(self): + if self._deputies_folder: + return self._deputies_folder + path = self.settings.deputiesPath + self._deputies_folder = self.get_folder_at_path(path) + return self._deputies_folder + deputies_folder = property(deputies_folder) +