From 53c8b05c4b0f378582d6d9de2e83bf679cc94605 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Wed, 23 Nov 2011 23:44:44 +0100 Subject: [PATCH] add links to "search for all related items" (#986) --- tabellio/pcfviews/document.pt | 1 + tabellio/pcfviews/document.py | 13 ++++++++++++- tabellio/pcfviews/dossier.pt | 1 + tabellio/pcfviews/dossier.py | 13 ++++++++++++- tabellio/pcfviews/question.pt | 1 + tabellio/pcfviews/question.py | 12 +++++++++++- 6 files changed, 38 insertions(+), 3 deletions(-) diff --git a/tabellio/pcfviews/document.pt b/tabellio/pcfviews/document.pt index 64c1849..f09599b 100644 --- a/tabellio/pcfviews/document.pt +++ b/tabellio/pcfviews/document.pt @@ -60,6 +60,7 @@ + Rechercher tous les documents proches
diff --git a/tabellio/pcfviews/document.py b/tabellio/pcfviews/document.py index 6a398fd..360a1f3 100644 --- a/tabellio/pcfviews/document.py +++ b/tabellio/pcfviews/document.py @@ -1,5 +1,16 @@ +from Products.CMFCore.utils import getToolByName from Products.Five import BrowserView class View(BrowserView): - pass + def related_search_url(self): + catalog = getToolByName(self.context, 'portal_catalog') + try: + form_url = catalog( + portal_type='Folder', + object_provides=('tabellio.searchform.form.IFolderWithPfbDocuments', + 'tabellio.searchform.form.IFolderWithDocuments'), + limit=1)[0].getObject().absolute_url() + except IndexError: + return None + return '%s/?document.widgets.sort_on:list=Session&document.widgets.search_type_is_document=1&document.widgets.topics=%s' % (form_url, ' '.join(self.context.topics)) diff --git a/tabellio/pcfviews/dossier.pt b/tabellio/pcfviews/dossier.pt index 06b55f3..848a47f 100644 --- a/tabellio/pcfviews/dossier.pt +++ b/tabellio/pcfviews/dossier.pt @@ -79,6 +79,7 @@ + Rechercher tous les dossiers proches
diff --git a/tabellio/pcfviews/dossier.py b/tabellio/pcfviews/dossier.py index 6a398fd..e917d86 100644 --- a/tabellio/pcfviews/dossier.py +++ b/tabellio/pcfviews/dossier.py @@ -1,5 +1,16 @@ +from Products.CMFCore.utils import getToolByName from Products.Five import BrowserView class View(BrowserView): - pass + def related_search_url(self): + catalog = getToolByName(self.context, 'portal_catalog') + try: + form_url = catalog( + portal_type='Folder', + object_provides=('tabellio.searchform.form.IFolderWithPfbDocuments', + 'tabellio.searchform.form.IFolderWithDocuments'), + limit=1)[0].getObject().absolute_url() + except IndexError: + return None + return '%s/?dossier.widgets.sort_on:list=Session&dossier.widgets.search_type_is_dossier=1&dossier.widgets.topics=%s' % (form_url, ' '.join(self.context.topics)) diff --git a/tabellio/pcfviews/question.pt b/tabellio/pcfviews/question.pt index 1e315f5..bd47578 100644 --- a/tabellio/pcfviews/question.pt +++ b/tabellio/pcfviews/question.pt @@ -61,6 +61,7 @@ + Rechercher toutes les questions proches
diff --git a/tabellio/pcfviews/question.py b/tabellio/pcfviews/question.py index 6a398fd..c8b787b 100644 --- a/tabellio/pcfviews/question.py +++ b/tabellio/pcfviews/question.py @@ -1,5 +1,15 @@ from Products.Five import BrowserView class View(BrowserView): - pass + def related_search_url(self): + catalog = getToolByName(self.context, 'portal_catalog') + try: + form_url = catalog( + portal_type='Folder', + object_provides=('tabellio.searchform.form.IFolderWithPfbDocuments', + 'tabellio.searchform.form.IFolderWithDocuments'), + limit=1)[0].getObject().absolute_url() + except IndexError: + return None + return '%s/?question.widgets.sort_on:list=Session&question.widgets.search_type_is_question=1&question.widgets.topics=%s' % (form_url, ' '.join(self.context.topics))