from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class greetings_P1(Page): timeout_seconds = 30 def is_displayed(self): return self.round_number == 1 and self.player.id_in_group == 1 class greetings_P2(Page): timeout_seconds = 30 def is_displayed(self): return self.round_number == 1 and self.player.id_in_group == 2 class Cake_cutting(Page): form_model = 'group' form_fields = ['cut_value'] def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help} def is_displayed(self): return self.player.id_in_group == 1 and self.round_number <= 5 class Cake_cutting_full_info(Page): form_model = 'group' form_fields = ['cut_value'] def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help} def is_displayed(self): return self.player.id_in_group == 1 and self.round_number > 5 class Waitpage_cut(WaitPage): def after_all_players_arrive(self): for player in self.group.get_players(): player.set_pieces() class Cake_choose(Page): form_model = 'group' form_fields = ['choice'] def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help} def is_displayed(self): return self.player.id_in_group == 2 and self.round_number <= 5 class Cake_choose_full_info(Page): form_model = 'group' form_fields = ['choice'] def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help} def is_displayed(self): return self.player.id_in_group == 2 and self.round_number > 5 class Waitpage_choose(WaitPage): def after_all_players_arrive(self): for player in self.group.get_players(): player.set_payoff() for player in self.group.get_players(): player.set_envy() for player in self.group.get_players(): player.score_caculation() for player in self.group.get_players(): player.set_truthtelling() class Results_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.group.choice_piece == 'Right' class Results_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.group.choice_piece == 'Left' class Results_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.group.choice_piece == 'Left' class Results_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.group.choice_piece == 'Right' class finished(Page): timeout_seconds = 15 def is_displayed(self): return self.round_number == 7 page_sequence = [ greetings_P1, greetings_P2, Cake_cutting, Cake_cutting_full_info, Waitpage_cut, Cake_choose, Cake_choose_full_info, Waitpage_choose, Results_L_P1, Results_L_P2, Results_R_P1, Results_R_P2, finished ]