Moderator is not forced to delete a comment or to let it pending: Workflow has two more states "rejected" and "spam" to existing review workflow. Moderation view extended showing all states. Filter by state.
139 lines
6.3 KiB
XML
139 lines
6.3 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<dc-workflow
|
|
xmlns:i18n="http://xml.zope.org/namespaces/i18n"
|
|
i18n:domain="plone"
|
|
workflow_id="comment_multiple_state_review_workflow"
|
|
title="Comment Multiple State Review Workflow"
|
|
description="A review workflow for comments with multiple states"
|
|
state_variable="review_state"
|
|
initial_state="pending"
|
|
i18n:attributes="title; description"
|
|
>
|
|
<permission>Access contents information</permission>
|
|
<permission>Modify portal content</permission>
|
|
<permission>Reply to item</permission>
|
|
<permission>View</permission>
|
|
<state state_id="pending" title="Pending">
|
|
<description>Submitted, pending review.</description>
|
|
<exit-transition transition_id="mark_as_spam"/>
|
|
<exit-transition transition_id="publish"/>
|
|
<exit-transition transition_id="reject"/>
|
|
<permission-map name="Access contents information" acquired="False">
|
|
<permission-role>Manager</permission-role>
|
|
<permission-role>Owner</permission-role>
|
|
<permission-role>Reviewer</permission-role>
|
|
</permission-map>
|
|
<permission-map name="Modify portal content" acquired="False">
|
|
<permission-role>Manager</permission-role>
|
|
<permission-role>Owner</permission-role>
|
|
<permission-role>Reviewer</permission-role>
|
|
</permission-map>
|
|
<permission-map name="Reply to item" acquired="False">
|
|
</permission-map>
|
|
<permission-map name="View" acquired="False">
|
|
<permission-role>Manager</permission-role>
|
|
<permission-role>Owner</permission-role>
|
|
<permission-role>Reviewer</permission-role>
|
|
</permission-map>
|
|
</state>
|
|
<state state_id="published" title="Published">
|
|
<description>Visible to everyone, non-editable.</description>
|
|
<exit-transition transition_id="mark_as_spam"/>
|
|
<exit-transition transition_id="recall"/>
|
|
<exit-transition transition_id="reject"/>
|
|
<permission-map name="Access contents information" acquired="True">
|
|
</permission-map>
|
|
<permission-map name="Modify portal content" acquired="False">
|
|
<permission-role>Manager</permission-role>
|
|
</permission-map>
|
|
<permission-map name="Reply to item" acquired="True">
|
|
</permission-map>
|
|
<permission-map name="View" acquired="True">
|
|
</permission-map>
|
|
</state>
|
|
<state state_id="rejected" title="Rejected">
|
|
<exit-transition transition_id="mark_as_spam"/>
|
|
<exit-transition transition_id="publish"/>
|
|
<exit-transition transition_id="recall"/>
|
|
</state>
|
|
<state state_id="spam" title="Spam">
|
|
<exit-transition transition_id="publish"/>
|
|
<exit-transition transition_id="recall"/>
|
|
<exit-transition transition_id="reject"/>
|
|
</state>
|
|
<transition transition_id="mark_as_spam" title="Mark as spam" new_state="spam" trigger="USER" before_script="" after_script="">
|
|
<description>Spam comments are invisible to other users.</description>
|
|
<action url="%(content_url)s/content_status_modify?workflow_action=mark_as_spam" category="workflow" icon="">Spam</action>
|
|
<guard>
|
|
<guard-permission>Review comments</guard-permission>
|
|
</guard>
|
|
</transition>
|
|
<transition transition_id="publish" title="Reviewer approves content" new_state="published" trigger="USER" before_script="" after_script="">
|
|
<description>Approving the comment makes it visible to other users.</description>
|
|
<action url="%(content_url)s/content_status_modify?workflow_action=publish" category="workflow" icon="">Approve</action>
|
|
<guard>
|
|
<guard-permission>Review comments</guard-permission>
|
|
</guard>
|
|
</transition>
|
|
<transition transition_id="recall" title="Reviewer recalls comment back to pending state" new_state="pending" trigger="USER" before_script="" after_script="">
|
|
<action url="%(content_url)s/content_status_modify?workflow_action=recall" category="workflow" icon="">Reject</action>
|
|
<guard>
|
|
<guard-permission>Review comments</guard-permission>
|
|
</guard>
|
|
</transition>
|
|
<transition transition_id="reject" title="Reviewer rejects comment" new_state="rejected" trigger="USER" before_script="" after_script="">
|
|
<description>Rejected comments are invisible to other users.</description>
|
|
<action url="%(content_url)s/content_status_modify?workflow_action=reject" category="workflow" icon="">Reject</action>
|
|
<guard>
|
|
<guard-permission>Review comments</guard-permission>
|
|
</guard>
|
|
</transition>
|
|
<variable variable_id="action" for_catalog="False" for_status="True" update_always="True">
|
|
<description>Previous transition</description>
|
|
<default>
|
|
|
|
<expression>transition/getId|nothing</expression>
|
|
</default>
|
|
<guard>
|
|
</guard>
|
|
</variable>
|
|
<variable variable_id="actor" for_catalog="False" for_status="True" update_always="True">
|
|
<description>The ID of the user who performed the previous transition</description>
|
|
<default>
|
|
|
|
<expression>user/getUserName</expression>
|
|
</default>
|
|
<guard>
|
|
</guard>
|
|
</variable>
|
|
<variable variable_id="comments" for_catalog="False" for_status="True" update_always="True">
|
|
<description>Comment about the last transition</description>
|
|
<default>
|
|
|
|
<expression>python:state_change.kwargs.get('comment', '')</expression>
|
|
</default>
|
|
<guard>
|
|
</guard>
|
|
</variable>
|
|
<variable variable_id="review_history" for_catalog="False" for_status="False" update_always="False">
|
|
<description>Provides access to workflow history</description>
|
|
<default>
|
|
|
|
<expression>state_change/getHistory</expression>
|
|
</default>
|
|
<guard>
|
|
<guard-permission>Request review</guard-permission>
|
|
<guard-permission>Review portal content</guard-permission>
|
|
</guard>
|
|
</variable>
|
|
<variable variable_id="time" for_catalog="False" for_status="True" update_always="True">
|
|
<description>When the previous transition was performed</description>
|
|
<default>
|
|
|
|
<expression>state_change/getDateTime</expression>
|
|
</default>
|
|
<guard>
|
|
</guard>
|
|
</variable>
|
|
</dc-workflow>
|