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 greetings_P3(Page): timeout_seconds = 30 def is_displayed(self): return self.round_number == 1 and self.player.id_in_group == 3 class greetings_P4(Page): timeout_seconds = 30 def is_displayed(self): return self.round_number == 1 and self.player.id_in_group == 4 class round_1_p1_cutter(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 1 and self.round_number <= 5 def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help} class round_1_p1_cutter_full(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 1 and self.round_number > 5 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_1(WaitPage): def after_all_players_arrive(self): for p in self.group.get_players(): p.set_cut_value() self.group.set_resulting_cut() for p in self.group.get_players(): p.set_is_challenger() if self.group.round_value == 1: self.group.set_resulting_cut_left() for p in self.group.get_players(): p.set_left_piece() elif self.group.round_value ==2: for p in self.group.get_players(): self.group.set_resulting_cut_middle() p.set_middle_piece() elif self.group.round_value == 3: for p in self.group.get_players(): self.group.set_resulting_cut_right() p.set_right_piece() if self.group.round_value == 1: self.group.get_player_by_id(1).set_planned_leftpiece_1() self.group.get_player_by_id(1).set_truthtelling_1() elif self.group.round_value == 2: self.group.get_player_by_id(1).set_planned_leftpiece_2() self.group.get_player_by_id(1).set_truthtelling_2() else: self.group.get_player_by_id(1).set_planned_leftpiece_3() self.group.get_player_by_id(1).set_truthtelling_3() class round_1_p2_decide(Page): form_model = 'player' form_fields = ['is_challenger_this'] def is_displayed(self): return self.player.id_in_group == 2 and self.round_number <= 5 def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help} class round_1_p2_decide_full(Page): form_model = 'player' form_fields = ['is_challenger_this'] def is_displayed(self): return self.player.id_in_group == 2 and self.round_number > 5 def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help} class round_1_p2_challenger(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 2 and self.round_number <= 5 and self.player.is_challenger_this def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help} class round_1_p2_challenger_full(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 2 and self.round_number > 5 and self.player.is_challenger_this 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_2(WaitPage): def after_all_players_arrive(self): for p in self.group.get_players(): p.set_cut_value() self.group.set_resulting_cut() for p in self.group.get_players(): p.set_is_challenger() if self.group.round_value == 1: self.group.set_resulting_cut_left() for p in self.group.get_players(): p.set_left_piece() elif self.group.round_value == 2: for p in self.group.get_players(): self.group.set_resulting_cut_middle() p.set_middle_piece() elif self.group.round_value == 3: for p in self.group.get_players(): self.group.set_resulting_cut_right() p.set_right_piece() if self.group.round_value == 1: self.group.get_player_by_id(2).set_planned_leftpiece_1() self.group.get_player_by_id(2).set_truthtelling_1() elif self.group.round_value == 2: self.group.get_player_by_id(2).set_planned_leftpiece_2() self.group.get_player_by_id(2).set_truthtelling_2() else: self.group.get_player_by_id(2).set_planned_leftpiece_3() self.group.get_player_by_id(2).set_truthtelling_3() class round_1_p3_decide(Page): form_model = 'player' form_fields = ['is_challenger_this'] def is_displayed(self): return self.player.id_in_group == 3 and self.round_number <= 5 def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help} class round_1_p3_decide_full(Page): form_model = 'player' form_fields = ['is_challenger_this'] def is_displayed(self): return self.player.id_in_group == 3 and self.round_number > 5 def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help} class round_1_p3_challenger(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 3 and self.round_number <= 5 and self.player.is_challenger_this def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help} class round_1_p3_challenger_full(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 3 and self.round_number > 5 and self.player.is_challenger_this 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_3(WaitPage): def after_all_players_arrive(self): for p in self.group.get_players(): p.set_cut_value() self.group.set_resulting_cut() for p in self.group.get_players(): p.set_is_challenger() if self.group.round_value == 1: self.group.set_resulting_cut_left() for p in self.group.get_players(): p.set_left_piece() elif self.group.round_value == 2: for p in self.group.get_players(): self.group.set_resulting_cut_middle() p.set_middle_piece() elif self.group.round_value == 3: for p in self.group.get_players(): self.group.set_resulting_cut_right() p.set_right_piece() if self.group.round_value == 1: self.group.get_player_by_id(3).set_planned_leftpiece_1() self.group.get_player_by_id(3).set_truthtelling_1() elif self.group.round_value == 2: self.group.get_player_by_id(3).set_planned_leftpiece_2() self.group.get_player_by_id(3).set_truthtelling_2() else: self.group.get_player_by_id(3).set_planned_leftpiece_3() self.group.get_player_by_id(3).set_truthtelling_3() class round_1_p4_decide(Page): form_model = 'player' form_fields = ['is_challenger_this'] def is_displayed(self): return self.player.id_in_group == 4 and self.round_number <= 5 def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help} class round_1_p4_decide_full(Page): form_model = 'player' form_fields = ['is_challenger_this'] def is_displayed(self): return self.player.id_in_group == 4 and self.round_number > 5 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_end_one_stage(WaitPage): def after_all_players_arrive(self): for p in self.group.get_players(): p.set_cut_value() self.group.set_resulting_cut() for p in self.group.get_players(): p.set_is_challenger() self.group.set_dropout() self.group.set_is_dropout_p4() if self.group.round_value == 1: self.group.set_resulting_cut_left() for p in self.group.get_players(): p.set_left_piece() elif self.group.round_value ==2: for p in self.group.get_players(): self.group.set_resulting_cut_middle() p.set_middle_piece() elif self.group.round_value == 3: for p in self.group.get_players(): self.group.set_resulting_cut_right() p.set_right_piece() if self.group.round_value == 1: self.group.get_player_by_id(4).set_planned_leftpiece_1() self.group.get_player_by_id(4).set_truthtelling_1() elif self.group.round_value == 2: self.group.get_player_by_id(4).set_planned_leftpiece_2() self.group.get_player_by_id(4).set_truthtelling_2() else: self.group.get_player_by_id(4).set_planned_leftpiece_3() self.group.get_player_by_id(4).set_truthtelling_3() self.group.set_round_value() self.group.resulting_cut = None for p in self.group.get_players(): if p.is_dropout: p.is_challenger_this = False else: p.is_challenger_this = None p.cut_value = None p.is_cutter = False self.group.set_cutter() 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.is_dropout == True 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.is_dropout == True 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.is_dropout == True 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.is_dropout == True and self.player.id_in_group == 4 class round_2_p1_cutter(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 1 and self.round_number <= 5 and not self.player.is_dropout def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'width_slider': 620 - self.group.resulting_cut_left, 'left': self.group.resulting_cut_left - 1, 'S':int((120 - self.player.left_piece)/3)} class round_2_p1_cutter_full(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 1 and self.round_number > 5 and not self.player.is_dropout def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'width_slider': 620 - self.group.resulting_cut_left, 'left': self.group.resulting_cut_left - 1, 'S':int((120 - self.player.left_piece)/3)} class round_2_p2_cutter(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 2 and self.round_number <= 5 and not self.player.is_dropout and self.player.is_cutter def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'width_slider': 620 - self.group.resulting_cut_left, 'left': self.group.resulting_cut_left - 1, 'S': int((120 - self.player.left_piece) / 3)} class round_2_p2_cutter_full(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 2 and self.round_number > 5 and not self.player.is_dropout and self.player.is_cutter def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'width_slider': 620 - self.group.resulting_cut_left, 'left': self.group.resulting_cut_left - 1, 'S':int((120 - self.player.left_piece)/3)} class round_2_p2_decide(Page): form_model = 'player' form_fields = ['is_challenger_this'] def is_displayed(self): return self.player.id_in_group == 2 and self.round_number <= 5 and not self.player.is_dropout and not self.player.is_cutter def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S':int((120 - self.player.left_piece)/3)} class round_2_p2_decide_full(Page): form_model = 'player' form_fields = ['is_challenger_this'] def is_displayed(self): return self.player.id_in_group == 2 and self.round_number > 5 and not self.player.is_dropout and not self.player.is_cutter def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S':int((120 - self.player.left_piece)/3)} class round_2_p2_challenger(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 2 and self.round_number <= 5 and not self.player.is_dropout and self.player.is_challenger_this def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S':int((120 - self.player.left_piece)/3)} class round_2_p2_challenger_full(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 2 and self.round_number > 5 and not self.player.is_dropout and self.player.is_challenger_this def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S':int((120 - self.player.left_piece)/3)} class round_2_p3_decide_final(Page): form_model = 'player' form_fields = ['is_challenger_this'] def is_displayed(self): return self.player.id_in_group == 3 and self.round_number <= 5 and not self.player.is_dropout \ and self.group.is_dropout_p4 == True def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S':int((120 - self.player.left_piece)/3)} class round_2_p3_decide_final_full(Page): form_model = 'player' form_fields = ['is_challenger_this'] def is_displayed(self): return self.player.id_in_group == 3 and self.round_number > 5 and not self.player.is_dropout \ and self.group.is_dropout_p4 == True def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S':int((120 - self.player.left_piece)/3)} class round_2_p3_decide_proceed(Page): form_model = 'player' form_fields = ['is_challenger_this'] def is_displayed(self): return self.player.id_in_group == 3 and self.round_number <= 5 and not self.player.is_dropout \ and self.group.is_dropout_p4 == False def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S':int((120 - self.player.left_piece)/3)} class round_2_p3_decide_proceed_full(Page): form_model = 'player' form_fields = ['is_challenger_this'] def is_displayed(self): return self.player.id_in_group == 3 and self.round_number > 5 and not self.player.is_dropout \ and self.group.is_dropout_p4 == False def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S':int((120 - self.player.left_piece)/3)} class round_2_p3_challenger(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 3 and self.round_number <= 5 and not self.player.is_dropout \ and self.player.is_challenger_this and self.group.is_dropout_p4 == False def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S':int((120 - self.player.left_piece)/3)} class round_2_p3_challenger_full(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 3 and self.round_number > 5 and not self.player.is_dropout \ and self.player.is_challenger_this and self.group.is_dropout_p4 == False def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S':int((120 - self.player.left_piece)/3)} class round_2_p4_decide(Page): form_model = 'player' form_fields = ['is_challenger_this'] def is_displayed(self): return self.player.id_in_group == 4 and self.round_number <= 5 and not self.player.is_dropout def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S':int((120 - self.player.left_piece)/3 )} class round_2_p4_decide_full(Page): form_model = 'player' form_fields = ['is_challenger_this'] def is_displayed(self): return self.player.id_in_group == 4 and self.round_number > 5 and not self.player.is_dropout def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S':int((120 - self.player.left_piece)/3)} class Results_2_p1(Page): timeout_seconds = 20 def vars_for_template(self): return {'R': self.round_number,'W':self.group.resulting_cut_middle - self.group.resulting_cut_left} def is_displayed(self): return self.player.is_dropout2 == True 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,'W':self.group.resulting_cut_middle - self.group.resulting_cut_left} def is_displayed(self): return self.player.is_dropout2 == True and self.player.id_in_group == 2 class Results_2_p3_final(Page): timeout_seconds = 20 def vars_for_template(self): return {'R': self.round_number,'W':self.group.resulting_cut_middle - self.group.resulting_cut_left} def is_displayed(self): return self.player.is_dropout2 == True and self.player.id_in_group == 3 and self.group.is_dropout_p4 == True class Results_2_p3_proceed(Page): timeout_seconds = 20 def vars_for_template(self): return {'R': self.round_number,'W':self.group.resulting_cut_middle - self.group.resulting_cut_left} def is_displayed(self): return self.player.is_dropout2 == True and self.player.id_in_group == 3 and self.group.is_dropout_p4 == False class Results_2_p4(Page): timeout_seconds = 20 def vars_for_template(self): return {'R': self.round_number,'W':self.group.resulting_cut_middle - self.group.resulting_cut_left} def is_displayed(self): return self.player.is_dropout2 == True and self.player.id_in_group == 4 class round_3_p1_cutter(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 1 and self.round_number <= 5 and not self.player.is_dropout and not self.player.is_dropout2 def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S':int((120 - self.player.left_piece - self.player.middle_piece)/2)} class round_3_p1_cutter_full(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 1 and self.round_number > 5 and not self.player.is_dropout and not self.player.is_dropout2 def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S': int((120 - self.player.left_piece - self.player.middle_piece) / 2) } class round_3_p2_cutter(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 2 and self.round_number <= 5 and not self.player.is_dropout and not self.player.is_dropout2 \ and self.player.is_cutter def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S': int((120 - self.player.left_piece - self.player.middle_piece) / 2)} class round_3_p2_cutter_full(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 2 and self.round_number > 5 and not self.player.is_dropout and not self.player.is_dropout2 \ and self.player.is_cutter def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S': int((120 - self.player.left_piece - self.player.middle_piece) / 2)} class round_3_p2_decide(Page): form_model = 'player' form_fields = ['is_challenger_this'] def is_displayed(self): return self.player.id_in_group == 2 and self.round_number <= 5 and not self.player.is_dropout and not self.player.is_dropout2 \ and not self.player.is_cutter def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S': int((120 - self.player.left_piece - self.player.middle_piece) / 2)} class round_3_p2_decide_full(Page): form_model = 'player' form_fields = ['is_challenger_this'] def is_displayed(self): return self.player.id_in_group == 2 and self.round_number > 5 and not self.player.is_dropout and not self.player.is_dropout2 \ and not self.player.is_cutter def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S': int((120 - self.player.left_piece - self.player.middle_piece) / 2)} class round_3_p3_cutter(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 3 and self.round_number <= 5 and not self.player.is_dropout and not self.player.is_dropout2 \ and self.player.is_cutter def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S': int((120 - self.player.left_piece - self.player.middle_piece) / 2)} class round_3_p3_cutter_full(Page): form_model = 'player' form_fields = ['cut_value'] def is_displayed(self): return self.player.id_in_group == 3 and self.round_number > 5 and not self.player.is_dropout and not self.player.is_dropout2 \ and self.player.is_cutter def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S': int((120 - self.player.left_piece - self.player.middle_piece) / 2)} class round_3_p3_decide(Page): form_model = 'player' form_fields = ['is_challenger_this'] def is_displayed(self): return self.player.id_in_group == 3 and self.round_number <= 5 and not self.player.is_dropout \ and not self.player.is_dropout2 and not self.player.is_cutter def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S': int((120 - self.player.left_piece - self.player.middle_piece) / 2)} class round_3_p3_decide_full(Page): form_model = 'player' form_fields = ['is_challenger_this'] def is_displayed(self): return self.player.id_in_group == 3 and self.round_number > 5 and not self.player.is_dropout \ and not self.player.is_dropout2 and not self.player.is_cutter def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S': int((120 - self.player.left_piece - self.player.middle_piece) / 2)} class round_3_p4_decide(Page): form_model = 'player' form_fields = ['is_challenger_this'] def is_displayed(self): return self.player.id_in_group == 4 and self.round_number <= 5 and not self.player.is_dropout and not self.player.is_dropout2 def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S': int((120 - self.player.left_piece - self.player.middle_piece) / 2)} class round_3_p4_decide_full(Page): form_model = 'player' form_fields = ['is_challenger_this'] def is_displayed(self): return self.player.id_in_group == 4 and self.round_number > 5 and not self.player.is_dropout and not self.player.is_dropout2 def vars_for_template(self): return {'R': self.round_number, 'P': self.player.in_round(max(1, self.round_number - 1)).payoff_help, 'S': int((120 - self.player.left_piece - self.player.middle_piece) / 2)} class Waitpage_end(WaitPage): def after_all_players_arrive(self): for p in self.group.get_players(): p.set_payoff() for p in self.group.get_players(): p.set_envy() for p in self.group.get_players(): p.set_payoff_help() 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.is_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.is_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.is_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.is_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.is_dropout2 == 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.is_dropout2 == 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.is_dropout2 == 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.is_dropout2 == 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.is_dropout3 == 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.is_dropout3 == 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.is_dropout3 == 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.is_dropout3 == 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.is_dropout3 == 0 and self.player.is_dropout2 == 0 and self.player.is_dropout == 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.is_dropout3 == 0 and self.player.is_dropout2 == 0 and self.player.is_dropout == 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.is_dropout3 == 0 and self.player.is_dropout2 == 0 and self.player.is_dropout == 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.is_dropout3 == 0 and self.player.is_dropout2 == 0 and self.player.is_dropout == 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_P1, greetings_P2, greetings_P3, greetings_P4, round_1_p1_cutter, round_1_p1_cutter_full, Waitpage_cut_1, round_1_p2_decide, round_1_p2_decide_full, round_1_p2_challenger, round_1_p2_challenger_full, Waitpage_cut_2, round_1_p3_decide, round_1_p3_decide_full, round_1_p3_challenger, round_1_p3_challenger_full, Waitpage_cut_3, round_1_p4_decide, round_1_p4_decide_full, Waitpage_end_one_stage, Results_1_p4, round_2_p1_cutter, round_2_p1_cutter_full, Waitpage_cut_1, Results_1_p1, round_2_p2_cutter, round_2_p2_cutter_full, round_2_p2_decide, round_2_p2_decide_full, round_2_p2_challenger, round_2_p2_challenger_full, Waitpage_cut_2, Results_1_p2, round_2_p3_decide_final, round_2_p3_decide_final_full, round_2_p3_decide_proceed, round_2_p3_decide_proceed_full, round_2_p3_challenger, round_2_p3_challenger_full, Waitpage_cut_3, Results_1_p3, round_2_p4_decide, round_2_p4_decide_full, Waitpage_end_one_stage, Results_2_p4, round_3_p1_cutter, round_3_p1_cutter_full, Waitpage_cut_1, Results_2_p1, round_3_p2_cutter, round_3_p2_cutter_full, round_3_p2_decide, round_3_p2_decide_full, Waitpage_cut_2, Results_2_p2, round_3_p3_cutter, round_3_p3_cutter_full, round_3_p3_decide, round_3_p3_decide_full, Waitpage_cut_3, Results_2_p3_final, Results_2_p3_proceed, round_3_p4_decide, round_3_p4_decide_full, Waitpage_end_one_stage, Waitpage_end, 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, ]