From 0625bf43f356c18f6147bacec1310056f59aee1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Wed, 18 Jul 2012 14:45:57 +0200 Subject: [PATCH] add mailPointingDocsTxt index --- themis/search/indexer.py | 25 ++++++++++++++++++++++ themis/search/profiles/default/catalog.xml | 1 + 2 files changed, 26 insertions(+) diff --git a/themis/search/indexer.py b/themis/search/indexer.py index 5c5b1ce..125659e 100644 --- a/themis/search/indexer.py +++ b/themis/search/indexer.py @@ -4,6 +4,10 @@ from five import grok import plone.dexterity.interfaces from Products.CMFCore.utils import getToolByName from ZODB.POSException import ConflictError +from zope import component + +from zc.relation.interfaces import ICatalog +from zope.app.intid.interfaces import IIntIds from themis.fields.vocabs import ContactsSource @@ -351,3 +355,24 @@ def mailHandledByTxtIndexer(obj): return None grok.global_adapter(mailHandledByTxtIndexer, name="mailHandledByTxt") + + +@indexer(plone.dexterity.interfaces.IDexterityItem) +def mailPointingDocsTxtIndexer(obj): + if obj.portal_type not in ('courrier_entrant', 'courrier_sortant'): + return None + intids = component.getUtility(IIntIds) + catalog = component.getUtility(ICatalog) + values = [] + try: + doc_intid = intids.getId(obj) + except KeyError: + return None + for relationvalue in catalog.findRelations({'to_id': doc_intid}): + values.append(relationvalue.from_object.Title()) + if values: + return ', '.join(values) + else: + return None + +grok.global_adapter(mailPointingDocsTxtIndexer, name="mailPointingDocsTxt") diff --git a/themis/search/profiles/default/catalog.xml b/themis/search/profiles/default/catalog.xml index 6cb1b90..9d74e47 100644 --- a/themis/search/profiles/default/catalog.xml +++ b/themis/search/profiles/default/catalog.xml @@ -67,6 +67,7 @@ +