'events': [ {'name': 'startVoting', 'src': 'intro', 'dst': 'contests'}, {'name': 'selectContest', 'src': 'contests', 'dst': 'candidates'}, {'name': 'reviewCandidates', 'src': 'candidates', 'dst': 'review_candidates'}, {'name': 'reselectCandidates', 'src': 'review_candidates', 'dst': 'candidates'}, {'name': 'doneReview', 'src': 'review_candidates', 'dst': 'check_done'}, {'name': 'nextContest', 'src': 'check_done', 'dst': 'contests'}, {'name': 'otherContest', 'src': 'contests', 'dst': 'contests'}, # TODO {'name': 'reviewBallot', 'src': 'check_done', 'dst': 'review_ballot'}, {'name': 'reselectContest', 'src': 'review_ballot', 'dst': 'contests'}, # TODO {'name': 'doneBallot', 'src': 'review_ballot', 'dst': 'done_ballot'}, ], 'callbacks': { 'onintro': onintro, 'oncontests': oncontests, 'oncandidates': oncandidates, 'onreview_candidates': onreviewcandidates, 'oncheck_done': oncheckdone, 'onreview_ballot': onreviewballot, 'ondone_ballot': ondoneballot } }) ''' Assign State Behaviors ''' #fsm.onchangestate = printstatechange fsm.startVoting()