Add set_reader_on_versions subscriber : add Reader role to opinion enquirer on all versions created by the Opinion responsible when the Opinion is returned
This commit is contained in:
parent
134bfb2287
commit
9a432255a8
|
@ -93,3 +93,20 @@ def reindex_brain_metadata_on_basetask(doc, event):
|
|||
for b in tasks:
|
||||
# reindex id index just to trigger the update of metadata on brain
|
||||
b._unrestrictedGetObject().reindexObject(idxs=['id'])
|
||||
|
||||
|
||||
@grok.subscribe(IOpinion, IAfterTransitionEvent)
|
||||
def set_reader_on_versions(context, event):
|
||||
if event.new_state.id == 'done':
|
||||
responsible = context.responsible[0]
|
||||
enquirer = context.enquirer[0]
|
||||
container_path = '/'.join(context.getParentNode().getPhysicalPath())
|
||||
query = {'path': {'query' : container_path},
|
||||
'portal_type': 'dmsmainfile',
|
||||
'Creator': responsible}
|
||||
catalog = api.portal.get_tool('portal_catalog')
|
||||
versions = catalog.searchResults(query)
|
||||
for brain in versions:
|
||||
version = brain.getObject()
|
||||
version.manage_addLocalRoles(enquirer, ['Reader'])
|
||||
version.reindexObject()
|
||||
|
|
Reference in New Issue