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 @@ +