from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class greetings(Page): timeout_seconds = 30 def is_displayed(self): return self.round_number == 1 class firstcut_p1(Page): form_model = 'player' 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 firstcut_p1_fulifo(Page): form_model = 'player' 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 firstcut_p2(Page): form_model = 'player' 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 == 2 and self.round_number <= 5 class firstcut_p2_fulifo(Page): form_model = 'player' 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 == 2 and self.round_number > 5 class Waitpage(WaitPage): def after_all_players_arrive(self): for player in self.group.get_players(): player.find_min() for player in self.group.get_players(): player.find_leftmost() for player in self.group.get_players(): player.find_firstcut() for player in self.group.get_players(): player.find_leftmostvalue_1() for player in self.group.get_players(): player.dim_find_min() for player in self.group.get_players(): player.check_dropout() self.group.check_overlapping_1() for player in self.group.get_players(): player.dim_check_dropout() for player in self.group.get_players(): player.get_whatsleft() for player in self.group.get_players(): player.get_payoff() for player in self.group.get_players(): player.set_envy() for player in self.group.get_players(): player.score_calculation() for player in self.group.get_players(): player.set_planned_leftpiece() for player in self.group.get_players(): player.set_truthtelling() class Roundresult_L1_p1(Page): timeout_seconds = 30 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.dropout == 1 and self.player.id_in_group == 1 class Roundresult_L1_p2(Page): timeout_seconds = 30 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.dropout == 1 and self.player.id_in_group == 2 class Roundresult_L2_p1(Page): timeout_seconds = 30 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.dropout == 0 and self.player.id_in_group == 1 class Roundresult_L2_p2(Page): timeout_seconds = 30 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.dropout == 0 and self.player.id_in_group == 2 class finished(Page): timeout_seconds = 15 def is_displayed(self): return self.round_number == 7 page_sequence = [ greetings, firstcut_p1, firstcut_p1_fulifo, firstcut_p2, firstcut_p2_fulifo, Waitpage, Roundresult_L1_p1, Roundresult_L1_p2, Roundresult_L2_p1, Roundresult_L2_p2, finished ]