<?xml version="1.0" encoding="UTF-8"?>
<workflow id="ARP" name="Author => Review => Publish" description="Author => Review => Publish">
	<task id="ARPT1" name="Author">
		<actions>
			<action id="ARPT1A1" name="Send for Edit" type="SEND" goto="ARPT2"/>
			<action id="ARPT1A2" name="Send for Review" type="SEND"	goto="ARPT5"/>
		</actions>
	</task>
	<task id="ARPT2" name="Wait for Edit">
		<actions>
			<action id="ARPT2A1" name="Edit Draft" type="EDIT" goto="ARPT3">
				<preconditions>
					<precondition>$user != sender</precondition>
				</preconditions>
			</action>
			<action id="ARPT2A2" name="Delete Draft" type="DELETE">
				<preconditions>
					<precondition>$user != sender</precondition>
				</preconditions>
			</action>
			<action id="ARPT2A3" name="Undo Send" type="UNDO" goto="ARPT4">
				<preconditions>
					<precondition>$user == sender</precondition>
				</preconditions>
			</action>
			<action id="ARPT2A4" name="Return" type="RETURN" goto="ARPT4">
				<preconditions>
					<precondition>$user != sender</precondition>
				</preconditions>
			</action>
		</actions>
	</task>
	<task id="ARPT3" name="Edit Draft">
		<actions>
			<action id="ARPT3A1" name="Edit Done" type="RETURN" goto="ARPT4">
				<preconditions>
					<precondition>$user != sender</precondition>
				</preconditions>
			</action>
		</actions>
	</task>
	<task id="ARPT4" name="To Send for Review">
		<actions>
			<action id="ARPT4A1" name="Send for Review" type="SEND"	goto="ARPT5"/>
			<action id="ARPT4A2" name="Edit Draft" type="EDIT" goto="ARPT1"/>
			<action id="ARPT4A3" name="Delete Draft" type="DELETE"/>
		</actions>
	</task>
	<task id="ARPT5" name="Wait for Review">
		<actions>
			<action id="ARPT5A1" name="Review" type= "REVIEW" goto="ARPT6">
				<preconditions>
					<precondition>$user != sender</precondition>
				</preconditions>
			</action>
		
			<action id="ARPT5A2" name="Return" type="RETURN" goto="ARPT4">
				<preconditions>
					<precondition>$user != sender</precondition>
				</preconditions>
			</action>
			<action id="ARPT5A3" name="Undo Send" type="UNDO" goto="ARPT4">
				<preconditions>
					<precondition>$user == sender</precondition>
				</preconditions>
			</action>
		</actions>
	</task>
	<task id="ARPT6" name="Review Draft">
		<actions>
			<action id="ARPT6A1" name="Review Done" type="RETURN" goto="ARPT7">
				<preconditions>
					<precondition>$user != sender</precondition>
				</preconditions>
			</action>
		</actions>
	</task>
	<task id="ARPT7" name="To Send for Publish">
		<actions>
			<action id="ARPT7A1" name="Send for Publish" type="SEND" goto="ARPT8">
				<preconditions>
					<precondition>$role != publisher</precondition>
				</preconditions>
			</action>
			<action id="ARPT7A2" name="Publish" type="PUBLISH" >
				<preconditions>
					<precondition>$role == publisher</precondition>
				</preconditions>
			</action>
			<action id="ARPT7A3" name="Edit Draft" type="EDIT" goto="ARPT1"/>
			<action id="ARPT7A4" name="Delete Draft" type="DELETE"/>
		</actions>
	</task>
	<task id="ARPT8" name="Wait for Publish">
		<actions>
			<action id="ARPT8A1" name="Publish" type= "PUBLISH">
				<preconditions>
					<precondition>$role == publisher</precondition>
					<precondition>$user != sender</precondition>
				</preconditions>
			</action>
			<action id="ARPT8A2" name="Return" type="RETURN" goto="ARPT7">
				<preconditions>
					<precondition>$user != sender</precondition>
				</preconditions>
			</action>
			<action id="ARPT8A3" name="Undo Send" type="UNDO" goto="ARPT7">
				<preconditions>
					<precondition>$user == sender</precondition>
				</preconditions>
			</action>
		</actions>
	</task>
</workflow>
