from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Wait(WaitPage): def after_all_players_arrive(self): self.group.random_numbers() class Round(Page): pass class P1(Page): form_model = 'group' form_fields = ['p', 'd'] def is_displayed(self): return self.player.id_in_group == 1 and self.round_number <= Constants.num_rounds2 class WaitForP1(WaitPage): body_text = "Waiting for Buyer to make a decision." class P2(Page): form_model = 'group' form_fields = ['accept_reject'] def is_displayed(self): return self.player.id_in_group == 2 and self.round_number <= Constants.num_rounds2 class WaitForP2(WaitPage): body_text = "Waiting for Seller to make a decision." class P3(Page): form_model = 'group' form_fields = ['deliver', 'message1'] def is_displayed(self): return self.player.id_in_group == 2 and self.group.accept_reject == 1 and self.round_number <= Constants.num_rounds2 class P4(Page): form_model = 'group' form_fields = ['veto'] def is_displayed(self): return self.player.id_in_group == 1 and self.group.deliver == 0 and self.round_number <= Constants.num_rounds2 class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): self.group.set_payoffs() body_text = "Waiting for result." class Results(Page): def is_displayed(self): return self.round_number <= Constants.num_rounds2 class Results_R(Page): def is_displayed(self): return self.round_number >= Constants.num_rounds21 class P5(Page): form_model = 'group' form_fields = ['p','d'] def is_displayed(self): return self.player.id_in_group == 2 and self.round_number >= Constants.num_rounds21 class P6(Page): form_model = 'group' form_fields = ['accept_reject'] def is_displayed(self): return self.player.id_in_group == 1 and self.round_number >= Constants.num_rounds21 class P7(Page): form_model = 'group' form_fields = ['deliver','message2'] def is_displayed(self): return self.player.id_in_group == 1 and self.group.accept_reject == 1 and self.round_number >= Constants.num_rounds21 class P8(Page): form_model = 'group' form_fields = ['veto'] def is_displayed(self): return self.player.id_in_group == 2 and self.group.deliver == 0 and self.round_number >= Constants.num_rounds21 page_sequence = [ Wait, P1, P5, WaitForP1, P2, P6, WaitForP2, P3, P7, WaitForP1, P4, P8, ResultsWaitPage, Results, Results_R ]