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 firstcut_p3(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 == 3 and self.round_number <= 5 class firstcut_p3_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 == 3 and self.round_number > 5 class firstcut_p4(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 == 4 and self.round_number <= 5 class firstcut_p4_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 == 4 and self.round_number > 5 class Waitpage_1(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() class Results_1_p1(Page): timeout_seconds = 20 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 Results_1_p2(Page): timeout_seconds = 20 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 Results_1_p3(Page): timeout_seconds = 20 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 == 3 class Results_1_p4(Page): timeout_seconds = 20 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 == 4 class secondcut_p1(Page): form_model = 'player' form_fields = ['secondcut_value'] def vars_for_template(self): return {'R': self.round_number,'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help,'D':int((120 - self.player.leftmostvalue_1)/3)} def is_displayed(self): return self.player.id_in_group == 1 and self.player.dropout == 0 and self.round_number <= 5 class secondcut_p1_fulifo(Page): form_model = 'player' form_fields = ['secondcut_value'] def vars_for_template(self): return {'R': self.round_number,'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help,'D':int((120 - self.player.leftmostvalue_1)/3)} def is_displayed(self): return self.player.id_in_group == 1 and self.player.dropout == 0 and self.round_number > 5 class secondcut_p2(Page): form_model = 'player' form_fields = ['secondcut_value'] def vars_for_template(self): return {'R': self.round_number,'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help,'D':int((120 - self.player.leftmostvalue_1)/3)} def is_displayed(self): return self.player.id_in_group == 2 and self.player.dropout == 0 and self.round_number <= 5 class secondcut_p2_fulifo(Page): form_model = 'player' form_fields = ['secondcut_value'] def vars_for_template(self): return {'R': self.round_number,'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help,'D':int((120 - self.player.leftmostvalue_1)/3)} def is_displayed(self): return self.player.id_in_group == 2 and self.player.dropout == 0 and self.round_number > 5 class secondcut_p3(Page): form_model = 'player' form_fields = ['secondcut_value'] def vars_for_template(self): return {'R': self.round_number,'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help,'D':int((120 - self.player.leftmostvalue_1)/3)} def is_displayed(self): return self.player.id_in_group == 3 and self.player.dropout == 0 and self.round_number <= 5 class secondcut_p3_fulifo(Page): form_model = 'player' form_fields = ['secondcut_value'] def vars_for_template(self): return {'R': self.round_number,'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help,'D':int((120 - self.player.leftmostvalue_1)/3)} def is_displayed(self): return self.player.id_in_group == 3 and self.player.dropout == 0 and self.round_number > 5 class secondcut_p4(Page): form_model = 'player' form_fields = ['secondcut_value'] def vars_for_template(self): return {'R': self.round_number,'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help,'D':int((120 - self.player.leftmostvalue_1)/3)} def is_displayed(self): return self.player.id_in_group == 4 and self.player.dropout == 0 and self.round_number <= 5 class secondcut_p4_fulifo(Page): form_model = 'player' form_fields = ['secondcut_value'] def vars_for_template(self): return {'R': self.round_number,'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help,'D':int((120 - self.player.leftmostvalue_1)/3)} def is_displayed(self): return self.player.id_in_group == 4 and self.player.dropout == 0 and self.round_number > 5 class Waitpage_2(WaitPage): def after_all_players_arrive(self): for player in self.group.get_players(): player.find_min_2() for player in self.group.get_players(): player.find_leftmost_2() for player in self.group.get_players(): player.find_secondcut() for player in self.group.get_players(): player.find_leftmostvalue_2() for player in self.group.get_players(): player.dim_find_min_2() for player in self.group.get_players(): player.check_seconddropout() self.group.check_overlapping_2() for player in self.group.get_players(): player.dim_check_seconddropout() class Results_2_p1(Page): timeout_seconds = 20 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.seconddropout == 1 and self.player.id_in_group == 1 class Results_2_p2(Page): timeout_seconds = 20 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.seconddropout == 1 and self.player.id_in_group == 2 class Results_2_p3(Page): timeout_seconds = 20 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.seconddropout == 1 and self.player.id_in_group == 3 class Results_2_p4(Page): timeout_seconds = 20 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.seconddropout == 1 and self.player.id_in_group == 4 class thirdcut_p1(Page): form_model = 'player' form_fields = ['thirdcut_value'] def vars_for_template(self): return {'R': self.round_number,'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help,'D':int((120 - self.player.leftmostvalue_1 - self.player.leftmostvalue_2)/2) } def is_displayed(self): return self.player.id_in_group == 1 and self.player.dropout == 0 and self.player.seconddropout == 0 and self.round_number <= 5 class thirdcut_p1_fulifo(Page): form_model = 'player' form_fields = ['thirdcut_value'] def vars_for_template(self): return {'R': self.round_number,'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help,'D':int((120 - self.player.leftmostvalue_1 - self.player.leftmostvalue_2)/2)} def is_displayed(self): return self.player.id_in_group == 1 and self.player.dropout == 0 and self.player.seconddropout == 0 and self.round_number > 5 class thirdcut_p2(Page): form_model = 'player' form_fields = ['thirdcut_value'] def vars_for_template(self): return {'R': self.round_number,'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help,'D':int((120 - self.player.leftmostvalue_1 - self.player.leftmostvalue_2)/2)} def is_displayed(self): return self.player.id_in_group == 2 and self.player.dropout == 0 and self.player.seconddropout == 0 and self.round_number <= 5 class thirdcut_p2_fulifo(Page): form_model = 'player' form_fields = ['thirdcut_value'] def vars_for_template(self): return {'R': self.round_number,'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help,'D':int((120 - self.player.leftmostvalue_1 - self.player.leftmostvalue_2)/2)} def is_displayed(self): return self.player.id_in_group == 2 and self.player.dropout == 0 and self.player.seconddropout == 0 and self.round_number > 5 class thirdcut_p3(Page): form_model = 'player' form_fields = ['thirdcut_value'] def vars_for_template(self): return {'R': self.round_number,'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help,'D':int((120 - self.player.leftmostvalue_1 - self.player.leftmostvalue_2)/2)} def is_displayed(self): return self.player.id_in_group == 3 and self.player.dropout == 0 and self.player.seconddropout == 0 and self.round_number <= 5 class thirdcut_p3_fulifo(Page): form_model = 'player' form_fields = ['thirdcut_value'] def vars_for_template(self): return {'R': self.round_number,'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help,'D':int((120 - self.player.leftmostvalue_1 - self.player.leftmostvalue_2)/2)} def is_displayed(self): return self.player.id_in_group == 3 and self.player.dropout == 0 and self.player.seconddropout == 0 and self.round_number > 5 class thirdcut_p4(Page): form_model = 'player' form_fields = ['thirdcut_value'] def vars_for_template(self): return {'R': self.round_number,'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help,'D':int((120 - self.player.leftmostvalue_1 - self.player.leftmostvalue_2)/2)} def is_displayed(self): return self.player.id_in_group == 4 and self.player.dropout == 0 and self.player.seconddropout == 0 and self.round_number <= 5 class thirdcut_p4_fulifo(Page): form_model = 'player' form_fields = ['thirdcut_value'] def vars_for_template(self): return {'R': self.round_number,'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help,'D':int((120 - self.player.leftmostvalue_1 - self.player.leftmostvalue_2)/2)} def is_displayed(self): return self.player.id_in_group == 4 and self.player.dropout == 0 and self.player.seconddropout == 0 and self.round_number > 5 class Waitpage_3(WaitPage): def after_all_players_arrive(self): for player in self.group.get_players(): player.find_min_3() for player in self.group.get_players(): player.find_leftmost_3() for player in self.group.get_players(): player.find_thirdcut() for player in self.group.get_players(): player.find_leftmostvalue_3() for player in self.group.get_players(): player.dim_find_min_3() for player in self.group.get_players(): player.check_thirddropout() self.group.check_overlapping_3() for player in self.group.get_players(): player.dim_check_thirddropout() 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_1() for player in self.group.get_players(): player.set_truthtelling_1st_stage() for player in self.group.get_players(): player.set_planned_leftpiece_2() for player in self.group.get_players(): player.set_truthtelling_2nd_stage() for player in self.group.get_players(): player.set_planned_leftpiece_3() for player in self.group.get_players(): player.set_truthtelling_3rd_stage() 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_L1_p3(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 == 3 class Roundresult_L1_p4(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 == 4 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.seconddropout == 1 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.seconddropout == 1 and self.player.id_in_group == 2 class Roundresult_L2_p3(Page): timeout_seconds = 30 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.seconddropout == 1 and self.player.id_in_group == 3 class Roundresult_L2_p4(Page): timeout_seconds = 30 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.seconddropout == 1 and self.player.id_in_group == 4 class Roundresult_L3_p1(Page): timeout_seconds = 30 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.thirddropout == 1 and self.player.id_in_group == 1 class Roundresult_L3_p2(Page): timeout_seconds = 30 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.thirddropout == 1 and self.player.id_in_group == 2 class Roundresult_L3_p3(Page): timeout_seconds = 30 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.thirddropout == 1 and self.player.id_in_group == 3 class Roundresult_L3_p4(Page): timeout_seconds = 30 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.thirddropout == 1 and self.player.id_in_group == 4 class Roundresult_L4_p1(Page): timeout_seconds = 30 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.seconddropout == 0 and self.player.dropout == 0 and self.player.thirddropout == 0 and self.player.id_in_group == 1 class Roundresult_L4_p2(Page): timeout_seconds = 30 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.seconddropout == 0 and self.player.dropout == 0 and self.player.thirddropout == 0 and self.player.id_in_group == 2 class Roundresult_L4_p3(Page): timeout_seconds = 30 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.seconddropout == 0 and self.player.dropout == 0 and self.player.thirddropout == 0 and self.player.id_in_group == 3 class Roundresult_L4_p4(Page): timeout_seconds = 30 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.player.seconddropout == 0 and self.player.dropout == 0 and self.player.thirddropout == 0 and self.player.id_in_group == 4 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, firstcut_p3, firstcut_p3_fulifo, firstcut_p4, firstcut_p4_fulifo, Waitpage_1, Results_1_p1, Results_1_p2, Results_1_p3, Results_1_p4, secondcut_p1, secondcut_p1_fulifo, secondcut_p2, secondcut_p2_fulifo, secondcut_p3, secondcut_p3_fulifo, secondcut_p4, secondcut_p4_fulifo, Waitpage_2, Results_2_p1, Results_2_p2, Results_2_p3, Results_2_p4, thirdcut_p1, thirdcut_p1_fulifo, thirdcut_p2, thirdcut_p2_fulifo, thirdcut_p3, thirdcut_p3_fulifo, thirdcut_p4, thirdcut_p4_fulifo, Waitpage_3, Roundresult_L1_p1, Roundresult_L1_p2, Roundresult_L1_p3, Roundresult_L1_p4, Roundresult_L2_p1, Roundresult_L2_p2, Roundresult_L2_p3, Roundresult_L2_p4, Roundresult_L3_p1, Roundresult_L3_p2, Roundresult_L3_p3, Roundresult_L3_p4, Roundresult_L4_p1, Roundresult_L4_p2, Roundresult_L4_p3, Roundresult_L4_p4, finished ]