From afde54bb3b216961d42c87de8c108db35eccbb11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Tue, 11 Dec 2018 08:30:45 +0100 Subject: [PATCH] add custom can_last_version_validate index (#22001) --- src/pfwbged/policy/indexers.py | 14 ++++++++++++++ src/pfwbged/policy/profiles/default/catalog.xml | 4 ++++ 2 files changed, 18 insertions(+) diff --git a/src/pfwbged/policy/indexers.py b/src/pfwbged/policy/indexers.py index f7114e5..0ff8f6d 100644 --- a/src/pfwbged/policy/indexers.py +++ b/src/pfwbged/policy/indexers.py @@ -1,6 +1,7 @@ from five import grok from plone.indexer import indexer from plone import api +from Products.CMFCore.utils import getToolByName from collective.dms.basecontent.dmsdocument import IDmsDocument @@ -36,3 +37,16 @@ def recipients_as_text(obj, **kw): return ' / '.join([x.to_object.get_full_title() for x in obj.recipients]) grok.global_adapter(recipients_as_text, name='recipients_as_text') + + +@indexer(IDmsDocument) +def can_last_version_validate(obj, **kw): + for child in reversed(obj.values()): + if child.portal_type != 'dmsmainfile': + continue + wf_tool = getToolByName(obj, 'portal_workflow') + workflowActions = wf_tool.listActionInfos(object=child) + return bool('validate' in [x.get('id') for x in workflowActions]) + return False + +grok.global_adapter(can_last_version_validate, name='can_last_version_validate') diff --git a/src/pfwbged/policy/profiles/default/catalog.xml b/src/pfwbged/policy/profiles/default/catalog.xml index a9d3026..d2cd968 100644 --- a/src/pfwbged/policy/profiles/default/catalog.xml +++ b/src/pfwbged/policy/profiles/default/catalog.xml @@ -3,6 +3,9 @@ + + + @@ -14,6 +17,7 @@ +