Move and fix reindex_brain_metadata_on_basetask subscriber
This commit is contained in:
parent
4b33f10eb1
commit
134bfb2287
|
@ -1,11 +1,10 @@
|
|||
from Acquisition import aq_parent
|
||||
from five import grok
|
||||
|
||||
from plone import api
|
||||
from plone.indexer.decorator import indexer
|
||||
from Products.CMFCore.utils import getToolByName
|
||||
|
||||
from zope.lifecycleevent.interfaces import IObjectModifiedEvent
|
||||
from zope.container.contained import ContainerModifiedEvent
|
||||
|
||||
from collective.dms.basecontent.dmsdocument import IDmsDocument
|
||||
from collective.task.interfaces import IBaseTask
|
||||
|
||||
|
@ -18,6 +17,7 @@ def get_document(obj):
|
|||
return obj
|
||||
return parent
|
||||
|
||||
|
||||
@indexer(IBaseTask)
|
||||
def enquirer(obj, **kw):
|
||||
return obj.enquirer and obj.enquirer[0] or ''
|
||||
|
@ -43,17 +43,3 @@ def document_path(obj, **kw):
|
|||
def document_title(obj, **kw):
|
||||
doc = get_document(obj)
|
||||
return doc.Title()
|
||||
|
||||
|
||||
@grok.subscribe(IDmsDocument, IObjectModifiedEvent)
|
||||
def reindex_brain_metadata_on_basetask(doc, event):
|
||||
if isinstance(event, ContainerModifiedEvent):
|
||||
return
|
||||
|
||||
catalog = getToolByName(doc, 'portal_catalog')
|
||||
tasks = catalog.unrestrictedSearchResults({
|
||||
'object_provides': IBaseTask.__identifier__,
|
||||
'path': '/'.join(doc.getPhysicalPath())})
|
||||
for b in tasks:
|
||||
# reindex id index just to trigger the update of metadata on brain
|
||||
b.getObject().reindexObject(idxs=['id'])
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
from five import grok
|
||||
|
||||
from zope.lifecycleevent.interfaces import IObjectRemovedEvent,\
|
||||
IObjectAddedEvent
|
||||
IObjectAddedEvent, IObjectModifiedEvent
|
||||
from zope.container.contained import ContainerModifiedEvent
|
||||
|
||||
from plone import api
|
||||
from Products.DCWorkflow.interfaces import IAfterTransitionEvent
|
||||
|
@ -13,6 +14,7 @@ from collective.task.content.task import ITask
|
|||
from collective.task.content.opinion import IOpinion
|
||||
from collective.task.content.validation import IValidation
|
||||
from collective.task.interfaces import IBaseTask
|
||||
from collective.dms.basecontent.dmsdocument import IDmsDocument
|
||||
|
||||
|
||||
def grant_local_role_to_responsible(context, role, target):
|
||||
|
@ -77,3 +79,17 @@ def set_contributor_on_document(context, event):
|
|||
"""
|
||||
document = context.getParentNode()
|
||||
grant_local_role_to_responsible(context, 'Contributor', document)
|
||||
|
||||
|
||||
@grok.subscribe(IDmsDocument, IObjectModifiedEvent)
|
||||
def reindex_brain_metadata_on_basetask(doc, event):
|
||||
if isinstance(event, ContainerModifiedEvent):
|
||||
return
|
||||
|
||||
catalog = api.portal.get_tool('portal_catalog')
|
||||
tasks = catalog.unrestrictedSearchResults({
|
||||
'object_provides': IBaseTask.__identifier__,
|
||||
'path': '/'.join(doc.getPhysicalPath())})
|
||||
for b in tasks:
|
||||
# reindex id index just to trigger the update of metadata on brain
|
||||
b._unrestrictedGetObject().reindexObject(idxs=['id'])
|
||||
|
|
Reference in New Issue