from ._builtin import Page, WaitPage class Introduction(Page): def is_displayed(self): return self.round_number == 1 or self.round_number == 3 class Possessor(Page): form_model = 'group' form_fields = ['decision'] def is_displayed(self): return self.player.role() == 'Possessor' class Challenger(Page): form_model = 'group' form_fields = ['decision'] def is_displayed(self): return self.player.role() == 'Challenger' class ResultsWaitPage(WaitPage): title_text = ' ' body_text = 'Please wait for the other player to make a decision.' def after_all_players_arrive(self): for p in self.group.get_players(): p.set_payoff() class Results(Page): def vars_for_template(self): me = self.player opponent = me.other_player() return { 'my_decision': me.decision, 'opponent_decision': opponent.decision, 'same_choice': me.decision == opponent.decision, } page_sequence = [ Introduction, Possessor, Challenger, ResultsWaitPage, Results ]