from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Intro(Page): pass class DelegationChoice(Page): form_model = 'player' form_fields = ['delegation_choice'] def is_displayed(self): return self.player.id_in_group == 1 class FirstWaitPage(WaitPage): def is_displayed(self): return self.player.id_in_group == 2 title_text = "A's decision" body_text = "Please wait for A to decide whether he delegates or not." class DistributionChoice(Page): form_model = 'player' form_fields = ['distribution_choice'] def is_displayed(self): if self.group.get_player_by_id(1).delegation_choice: return self.player.id_in_group == 2 else: return self.player.id_in_group == 1 def vars_for_template(self): delegation = self.group.get_player_by_id(1).delegation_choice return dict( delegation = delegation, ) class NotDelegationPage(Page): form_model = 'player' def is_displayed(self): if not self.group.get_player_by_id(1).delegation_choice: return self.player.id_in_group == 2 class Receiver(Page): form_model = 'player' def is_displayed(self): return self.player.id_in_group >= 3 class ResultsWaitPage(WaitPage): after_all_players_arrive = 'set_payoffs' title_text = "Steps completed" body_text = "Please wait for all the other players to finish theirs. You will know your payoff immediately after." class Results(Page): pass page_sequence = [Intro, DelegationChoice, FirstWaitPage, DistributionChoice, NotDelegationPage, Receiver, ResultsWaitPage, Results]