I'm setting up the workflow for our Intranet in Plone 5.2.1. There will be users who can add and edit content but won't be able to publish content.
We're also using the Working Copy Support (Iterate) add-on (plone.app.iterate verson 3.3.13), so that editors can edit documents to add or correct information without removing the current working copy of the document from the site while they do so.
On this documentation page for the plugin:
It states at the end:
If the user who has checked out a working copy is not available to check in or cancel a check out, users with the Manager role may navigate to the working copy and perform either the check in or cancel check out actions. That’s because not all contributors have the Check in privilege. If that option is missing from your Actions menu:
- Use the State menu.
- Submit for publication.
- Ask a reviewer to not change the state.
- Ask the reviewer to perform the check in on your behalf instead.
The check in routine will handle the state.
A little kludgey, but workable, for sure, except that it doesn't.
When a user who doesn't have the permission to publish checks out a published document, they create a working copy of it. Their Actions menu, as indicated above, does not have a "Check In" action on it. However, when they click "Submit for Publication" (with the intent of asking the reviewer to check it back in for them, as indicated above), they receive the following error:
We’re sorry, but there seems to be an error…
If you are certain you have the correct web address but are encountering an error, please contact the site administration.
It does log an error. This is the traceback:
Time: Feb 13, 2020 08:41 AM
User Name: > ika (ika)
Request URL http://casdpln01:8080/Intranet/en-ca/departments/engineering-services-projects-project-management-project-engineering/public-folder/copy_of_sample-page/content_status_modify
Exception Type: AttributeError
Exception Value: 'NoneType' object has no attribute 'comment'
Traceback (innermost last):
- Module ZPublisher.WSGIPublisher, line 156, in transaction_pubevents
- Module ZPublisher.WSGIPublisher, line 338, in publish_module
- Module ZPublisher.WSGIPublisher, line 256, in publish
- Module ZPublisher.mapply, line 85, in mapply
- Module ZPublisher.WSGIPublisher, line 62, in call_object
- Module Products.CMFFormController.FSControllerPythonScript, line 104, in call
- Module Products.CMFFormController.Script, line 145, in call
- Module Products.CMFCore.FSPythonScript, line 132, in call
- Module Shared.DC.Scripts.Bindings, line 335, in call
- Module Shared.DC.Scripts.Bindings, line 372, in _bindAndExec
- Module Products.PythonScripts.PythonScript, line 347, in _exec
- Module script, line 50, in content_status_modify
<FSControllerPythonScript at /Intranet/en-ca/departments/engineering-services-projects-project-management-project-engineering/public-folder/copy_of_sample-page/content_status_modify>
- Module Products.CMFCore.WorkflowTool, line 252, in doActionFor
- Module Products.CMFCore.WorkflowTool, line 542, in _invokeWithNotification
- Module zope.event, line 32, in notify
- Module zope.component.event, line 27, in dispatch
- Module zope.component._api, line 124, in subscribers
- Module zope.interface.registry, line 442, in subscribers
- Module zope.interface.adapter, line 607, in subscribers
- Module plone.app.contentrules.handlers, line 267, in workflow_action
- Module plone.app.contentrules.handlers, line 166, in execute_rules
- Module plone.app.contentrules.handlers, line 133, in execute
- Module plone.contentrules.engine.executor, line 37, in call
- Module plone.contentrules.rule.rule, line 47, in call
- Module plone.app.contentrules.actions.mail, line 159, in call
- Module plone.stringinterp.dollarReplace, line 58, in call
- Module string, line 159, in safe_substitute
- Module string, line 150, in convert
- Module plone.stringinterp.dollarReplace, line 36, in getitem
- Module plone.stringinterp.adapters, line 77, in call
- Module plone.app.discussion.contentrules, line 71, in safe_call
- Module plone.app.discussion.contentrules, line 47, in comment
AttributeError: 'NoneType' object has no attribute 'comment'
Any ideas? I've apparently been slated to demo the workflow, so it would be nice to get this sorted out.