<?xml version="1.0" encoding="UTF-8"?>
<workflow id="AP" name="Author => Publish" description="Author => Publish">
	<task id="APT1" name="Author">
		<actions>
			<action id="APT1A1" name="Send for Edit" type="SEND" goto="APT2"/>
			<action id="APT1A2" name="Send for Publish" type="SEND" goto="APT5">
				<preconditions>
					<precondition>$role != publisher</precondition>
				</preconditions>
			</action>
			<action id="APT1A3" name="Publish" type="PUBLISH" >
				<preconditions>
					<precondition>$role == publisher</precondition>
				</preconditions>
			</action>
			<action id="APT1A4" name="Send for Review" type="SEND"	goto="APT6"/>
		</actions>
	</task>
	<task id="APT2" name="Wait for Edit">
		<actions>
			<action id="APT2A1" name="Edit Draft" type="EDIT" goto="APT3">
				<preconditions>
					<precondition>$user != sender</precondition>
				</preconditions>
			</action>
			<action id="APT2A2" name="Delete Draft" type="DELETE">
				<preconditions>
					<precondition>$user != sender</precondition>
				</preconditions>
			</action>
			<action id="APT2A3" name="Undo Send" type="UNDO" goto="APT4">
				<preconditions>
					<precondition>$user == sender</precondition>
				</preconditions>
			</action>
			<action id="APT2A4" name="Return" type="RETURN" goto="APT4">
				<preconditions>
					<precondition>$user != sender</precondition>
				</preconditions>
			</action>
		</actions>
	</task>
	<task id="APT3" name="Edit Draft">
		<actions>
			<action id="APT3A1" name="Edit Done" type="RETURN" goto="APT4">
				<preconditions>
					<precondition>$user != sender</precondition>
				</preconditions>
			</action>
		</actions>
	</task>
	<task id="APT4" name="To Send for Publish">
		<actions>
			<action id="APT4A1" name="Send for Publish" type="SEND" goto="APT5">
				<preconditions>
					<precondition>$role != publisher</precondition>
				</preconditions>
			</action>
			<action id="APT4A2" name="Publish" type="PUBLISH" >
				<preconditions>
					<precondition>$role == publisher</precondition>
				</preconditions>
			</action>
			<action id="APT4A3" name="Edit Draft" type="EDIT" goto="APT1"/>
			<action id="APT4A4" name="Delete Draft" type="DELETE"/>
			<action id="APT4A5" name="Send for Review" type="SEND"	goto="APT6"/>
		</actions>
	</task>
	<task id="APT5" name="Wait for Publish">
		<actions>
			<action id="APT5A1" name="Publish" type= "PUBLISH">
				<preconditions>
					<precondition>$role == publisher</precondition>
					<precondition>$user != sender</precondition>
				</preconditions>
			</action>
			<action id="APT5A2" name="Return" type="RETURN" goto="APT4">
				<preconditions>
					<precondition>$user != sender</precondition> 
				</preconditions>
			</action>
			<action id="APT5A3" name="Undo Send" type="UNDO" goto="APT4">
				<preconditions>
					<precondition>$user == sender</precondition>
				</preconditions>
			</action>
		</actions>
	</task>
	<task id="APT6" name="Wait for Review">
		<actions>
			<action id="APT6A1" name="Review" type= "REVIEW" goto="APT7">
				<preconditions>
					<precondition>$user != sender</precondition>
				</preconditions>
			</action>
		
			<action id="APT6A2" name="Return" type="RETURN" goto="APT4">
				<preconditions>
					<precondition>$user != sender</precondition>
				</preconditions>
			</action>
			<action id="APT6A3" name="Undo Send" type="UNDO" goto="APT4">
				<preconditions>
					<precondition>$user == sender</precondition>
				</preconditions>
			</action>
		</actions>
	</task>
	<task id="APT7" name="Review Draft">
		<actions>
			<action id="APT7A1" name="Review Done" type="RETURN" goto="APT4">
				<preconditions>
					<precondition>$user != sender</precondition>
				</preconditions>
			</action>
		</actions>
	</task>
</workflow>
