digraph talkstates { subgraph legend { key[shape=box, label=< Actions by admin
Actions by speaker
>, labeljust="l"] } start[shape=circle label=Start]; submitted[shape=box label=Submitted]; pending[shape=box label=Pending]; approved[shape=box label=Approved]; reserve[shape=box label=Reserve]; pendingreserve[shape=box label="Pending reserve"]; notaccepted[shape=box label="Not Accepted"]; withdrawn[shape=box label="Withdrawn"]; start -> submitted [label = "Speaker submits talk", color=green]; submitted -> pending [label = "Talk approved", color=blue] submitted -> notaccepted [label = "Talk not accepted", color=blue] submitted -> pendingreserve [label = "Talk to\nreserve list", color=blue] submitted -> withdrawn[label = "Speaker withdraws", color=blue] approved -> withdrawn [label = "Speaker withdraws", color=blue] notaccepted -> submitted [label = "Processing reset", color=blue] pending -> approved [label = "Speaker confirms", color=green] pending -> withdrawn [label = "Speaker declines", color=blue] pending -> submitted [label = "Talk unapproved", color=blue] reserve -> pending [label = "Normal activate talk\n from reserve list", color=blue] reserve -> approved [label = "Last minute activate\nfrom reserve", color=blue] reserve -> withdrawn [label = "Speaker withdraws", color=blue] pendingreserve -> reserve [label = "Speaker confirms to\nreserve list", color=green] pendingreserve -> withdrawn [label = "Speaker declines", color=blue] }