from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class greetings(Page): timeout_seconds = 30 class Cake_cutting_middle_p1(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 1 def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help} class Cake_cutting_middle_p2(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 2 def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help} class Waitpage_cut(WaitPage): def after_all_players_arrive(self): for p in self.group.get_players(): p.set_cut_value() for p in self.group.get_players(): p.decide_side() self.group.delete_overlapping() for p in self.group.get_players(): p.set_pieces() for p in self.group.get_players(): p.set_own_piece() for p in self.group.get_players(): p.set_envy() for p in self.group.get_players(): p.set_planned_leftpiece() for p in self.group.get_players(): p.set_truthtelling() class Roundresult_L_P1(Page): timeout_seconds = 30 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.id_in_group == 1 and self.player.choice == 0 class Roundresult_L_P2(Page): timeout_seconds = 30 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.id_in_group == 2 and self.player.choice == 0 class Roundresult_R_P1(Page): timeout_seconds = 30 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.id_in_group == 1 and self.player.choice == 1 class Roundresult_R_P2(Page): timeout_seconds = 30 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.id_in_group == 2 and self.player.choice == 1 class finished(Page): timeout_seconds = 15 def before_next_page(self): self.participant.payoff = c(0) page_sequence = [ greetings, Cake_cutting_middle_p1, Cake_cutting_middle_p2, Waitpage_cut, Roundresult_L_P1, Roundresult_L_P2, Roundresult_R_P1, Roundresult_R_P2, finished ]