from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class greetings_P1(Page): timeout_seconds = 75 def is_displayed(self): return self.round_number == 1 and self.player.id_in_group == 1 class greetings_P2(Page): timeout_seconds = 75 def is_displayed(self): return self.round_number == 1 and self.player.id_in_group == 2 class inform_P1(Page): timeout_seconds = 15 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.player.id_in_group == 1 and self.round_number == 2 or\ self.group.stop == 0 and self.player.id_in_group == 1 and self.round_number == 4 class inform_P1_R6(Page): timeout_seconds = 15 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.player.id_in_group == 1 and self.round_number == 6 class inform_P2(Page): timeout_seconds = 15 def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.player.id_in_group == 2 and self.round_number == 3 or\ self.group.stop == 0 and self.player.id_in_group == 2 and self.round_number == 5 class choose_knife_P1(Page): form_model = 'group' form_fields = ['knife_choice'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.player.id_in_group == 1 and self.round_number == 1 or\ self.group.stop == 0 and self.player.id_in_group == 1 and self.round_number == 3 or\ self.group.stop == 0 and self.player.id_in_group == 1 and self.round_number == 5 class choose_knife_P2(Page): form_model = 'group' form_fields = ['knife_choice'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.player.id_in_group == 2 and self.round_number == 2 or\ self.group.stop == 0 and self.player.id_in_group == 2 and self.round_number == 4 class choose_knife_P2_R6(Page): form_model = 'group' form_fields = ['knife_choice'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.player.id_in_group == 2 and self.round_number == 6 class cut_P1_1(Page): form_model = 'group' form_fields = ['cut_1','proceed_from_1'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 1 and self.player.id_in_group == 1 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 1 and self.player.id_in_group == 1 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 1 and self.player.id_in_group == 1 and self.round_number == 5 class cut_P2_1(Page): form_model = 'group' form_fields = ['cut_1','proceed_from_1'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 1 and self.player.id_in_group == 2 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 1 and self.player.id_in_group == 2 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 1 and self.player.id_in_group == 2 and self.round_number == 6 class cut_P1_2(Page): form_model = 'group' form_fields = ['cut_1','cut_2','proceed_from_2'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 2 and self.player.id_in_group == 1 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 2 and self.player.id_in_group == 1 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 2 and self.player.id_in_group == 1 and self.round_number == 5 or \ self.group.stop == 0 and self.group.proceed_from_1 == 1 and self.player.id_in_group == 1 and self.round_number == 1 or \ self.group.stop == 0 and self.group.proceed_from_1 == 1 and self.player.id_in_group == 1 and self.round_number == 3 or \ self.group.stop == 0 and self.group.proceed_from_1 == 1 and self.player.id_in_group == 1 and self.round_number == 5 class cut_P2_2(Page): form_model = 'group' form_fields = ['cut_1','cut_2','proceed_from_2'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 2 and self.player.id_in_group == 2 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 2 and self.player.id_in_group == 2 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 2 and self.player.id_in_group == 2 and self.round_number == 6 or \ self.group.stop == 0 and self.group.proceed_from_1 == 1 and self.player.id_in_group == 2 and self.round_number == 2 or \ self.group.stop == 0 and self.group.proceed_from_1 == 1 and self.player.id_in_group == 2 and self.round_number == 4 or \ self.group.stop == 0 and self.group.proceed_from_1 == 1 and self.player.id_in_group == 2 and self.round_number == 6 class cut_P1_3(Page): form_model = 'group' form_fields = ['cut_1','cut_2','cut_3','proceed_from_3'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 3 and self.player.id_in_group == 1 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 3 and self.player.id_in_group == 1 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 3 and self.player.id_in_group == 1 and self.round_number == 5 or \ self.group.stop == 0 and self.group.proceed_from_2 == 1 and self.player.id_in_group == 1 and self.round_number == 1 or \ self.group.stop == 0 and self.group.proceed_from_2 == 1 and self.player.id_in_group == 1 and self.round_number == 3 or \ self.group.stop == 0 and self.group.proceed_from_2 == 1 and self.player.id_in_group == 1 and self.round_number == 5 class cut_P2_3(Page): form_model = 'group' form_fields = ['cut_1','cut_2','cut_3','proceed_from_3'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 3 and self.player.id_in_group == 2 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 3 and self.player.id_in_group == 2 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 3 and self.player.id_in_group == 2 and self.round_number == 6 or \ self.group.stop == 0 and self.group.proceed_from_2 == 1 and self.player.id_in_group == 2 and self.round_number == 2 or \ self.group.stop == 0 and self.group.proceed_from_2 == 1 and self.player.id_in_group == 2 and self.round_number == 4 or \ self.group.stop == 0 and self.group.proceed_from_2 == 1 and self.player.id_in_group == 2 and self.round_number == 6 class cut_P1_4(Page): form_model = 'group' form_fields = ['cut_1','cut_2','cut_3','cut_4','proceed_from_4'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 4 and self.player.id_in_group == 1 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 4 and self.player.id_in_group == 1 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 4 and self.player.id_in_group == 1 and self.round_number == 5 or \ self.group.stop == 0 and self.group.proceed_from_3 == 1 and self.player.id_in_group == 1 and self.round_number == 1 or \ self.group.stop == 0 and self.group.proceed_from_3 == 1 and self.player.id_in_group == 1 and self.round_number == 3 or \ self.group.stop == 0 and self.group.proceed_from_3 == 1 and self.player.id_in_group == 1 and self.round_number == 5 class cut_P2_4(Page): form_model = 'group' form_fields = ['cut_1','cut_2','cut_3','cut_4','proceed_from_4'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 4 and self.player.id_in_group == 2 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 4 and self.player.id_in_group == 2 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 4 and self.player.id_in_group == 2 and self.round_number == 6 or \ self.group.stop == 0 and self.group.proceed_from_3 == 1 and self.player.id_in_group == 2 and self.round_number == 2 or \ self.group.stop == 0 and self.group.proceed_from_3 == 1 and self.player.id_in_group == 2 and self.round_number == 4 or \ self.group.stop == 0 and self.group.proceed_from_3 == 1 and self.player.id_in_group == 2 and self.round_number == 6 class cut_P1_5(Page): form_model = 'group' form_fields = ['cut_1','cut_2','cut_3','cut_4','cut_5','proceed_from_5'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 5 and self.player.id_in_group == 1 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 5 and self.player.id_in_group == 1 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 5 and self.player.id_in_group == 1 and self.round_number == 5 or \ self.group.stop == 0 and self.group.proceed_from_4 == 1 and self.player.id_in_group == 1 and self.round_number == 1 or \ self.group.stop == 0 and self.group.proceed_from_4 == 1 and self.player.id_in_group == 1 and self.round_number == 3 or \ self.group.stop == 0 and self.group.proceed_from_4 == 1 and self.player.id_in_group == 1 and self.round_number == 5 class cut_P2_5(Page): form_model = 'group' form_fields = ['cut_1','cut_2','cut_3','cut_4','cut_5','proceed_from_5'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 5 and self.player.id_in_group == 2 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 5 and self.player.id_in_group == 2 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 5 and self.player.id_in_group == 2 and self.round_number == 6 or \ self.group.stop == 0 and self.group.proceed_from_4 == 1 and self.player.id_in_group == 2 and self.round_number == 2 or \ self.group.stop == 0 and self.group.proceed_from_4 == 1 and self.player.id_in_group == 2 and self.round_number == 4 or \ self.group.stop == 0 and self.group.proceed_from_4 == 1 and self.player.id_in_group == 2 and self.round_number == 6 class cut_P1_6(Page): form_model = 'group' form_fields = ['cut_1','cut_2','cut_3','cut_4','cut_5','cut_6','proceed_from_6'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 6 and self.player.id_in_group == 1 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 6 and self.player.id_in_group == 1 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 6 and self.player.id_in_group == 1 and self.round_number == 5 or \ self.group.stop == 0 and self.group.proceed_from_5 == 1 and self.player.id_in_group == 1 and self.round_number == 1 or \ self.group.stop == 0 and self.group.proceed_from_5 == 1 and self.player.id_in_group == 1 and self.round_number == 3 or \ self.group.stop == 0 and self.group.proceed_from_5 == 1 and self.player.id_in_group == 1 and self.round_number == 5 class cut_P2_6(Page): form_model = 'group' form_fields = ['cut_1','cut_2','cut_3','cut_4','cut_5','cut_6','proceed_from_6'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 6 and self.player.id_in_group == 2 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 6 and self.player.id_in_group == 2 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 6 and self.player.id_in_group == 2 and self.round_number == 6 or \ self.group.stop == 0 and self.group.proceed_from_5 == 1 and self.player.id_in_group == 2 and self.round_number == 2 or \ self.group.stop == 0 and self.group.proceed_from_5 == 1 and self.player.id_in_group == 2 and self.round_number == 4 or \ self.group.stop == 0 and self.group.proceed_from_5 == 1 and self.player.id_in_group == 2 and self.round_number == 6 class cut_P1_7(Page): form_model = 'group' form_fields = ['cut_1','cut_2','cut_3','cut_4','cut_5','cut_6','cut_7','proceed_from_7'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 7 and self.player.id_in_group == 1 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 7 and self.player.id_in_group == 1 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 7 and self.player.id_in_group == 1 and self.round_number == 5 or \ self.group.stop == 0 and self.group.proceed_from_6 == 1 and self.player.id_in_group == 1 and self.round_number == 1 or \ self.group.stop == 0 and self.group.proceed_from_6 == 1 and self.player.id_in_group == 1 and self.round_number == 3 or \ self.group.stop == 0 and self.group.proceed_from_6 == 1 and self.player.id_in_group == 1 and self.round_number == 5 class cut_P2_7(Page): form_model = 'group' form_fields = ['cut_1','cut_2','cut_3','cut_4','cut_5','cut_6','cut_7','proceed_from_7'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 7 and self.player.id_in_group == 2 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 7 and self.player.id_in_group == 2 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 7 and self.player.id_in_group == 2 and self.round_number == 6 or \ self.group.stop == 0 and self.group.proceed_from_6 == 1 and self.player.id_in_group == 2 and self.round_number == 2 or \ self.group.stop == 0 and self.group.proceed_from_6 == 1 and self.player.id_in_group == 2 and self.round_number == 4 or \ self.group.stop == 0 and self.group.proceed_from_6 == 1 and self.player.id_in_group == 2 and self.round_number == 6 class cut_P1_8(Page): form_model = 'group' form_fields = ['cut_1','cut_2','cut_3','cut_4','cut_5','cut_6','cut_7','cut_8','proceed_from_8'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 8 and self.player.id_in_group == 1 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 8 and self.player.id_in_group == 1 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 8 and self.player.id_in_group == 1 and self.round_number == 5 or \ self.group.stop == 0 and self.group.proceed_from_7 == 1 and self.player.id_in_group == 1 and self.round_number == 1 or \ self.group.stop == 0 and self.group.proceed_from_7 == 1 and self.player.id_in_group == 1 and self.round_number == 3 or \ self.group.stop == 0 and self.group.proceed_from_7 == 1 and self.player.id_in_group == 1 and self.round_number == 5 class cut_P2_8(Page): form_model = 'group' form_fields = ['cut_1','cut_2','cut_3','cut_4','cut_5','cut_6','cut_7','cut_8','proceed_from_8'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 8 and self.player.id_in_group == 2 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 8 and self.player.id_in_group == 2 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 8 and self.player.id_in_group == 2 and self.round_number == 6 or \ self.group.stop == 0 and self.group.proceed_from_7 == 1 and self.player.id_in_group == 2 and self.round_number == 2 or \ self.group.stop == 0 and self.group.proceed_from_7 == 1 and self.player.id_in_group == 2 and self.round_number == 4 or \ self.group.stop == 0 and self.group.proceed_from_7 == 1 and self.player.id_in_group == 2 and self.round_number == 6 class cut_P1_9(Page): form_model = 'group' form_fields = ['cut_1','cut_2','cut_3','cut_4','cut_5','cut_6','cut_7','cut_8','cut_9'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 9 and self.player.id_in_group == 1 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 9 and self.player.id_in_group == 1 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 9 and self.player.id_in_group == 1 and self.round_number == 5 or \ self.group.stop == 0 and self.group.proceed_from_8 == 1 and self.player.id_in_group == 1 and self.round_number == 1 or \ self.group.stop == 0 and self.group.proceed_from_8 == 1 and self.player.id_in_group == 1 and self.round_number == 3 or \ self.group.stop == 0 and self.group.proceed_from_8 == 1 and self.player.id_in_group == 1 and self.round_number == 5 class cut_P2_9(Page): form_model = 'group' form_fields = ['cut_1','cut_2','cut_3','cut_4','cut_5','cut_6','cut_7','cut_8','cut_9'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 9 and self.player.id_in_group == 2 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 9 and self.player.id_in_group == 2 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 9 and self.player.id_in_group == 2 and self.round_number == 6 or \ self.group.stop == 0 and self.group.proceed_from_8 == 1 and self.player.id_in_group == 2 and self.round_number == 2 or \ self.group.stop == 0 and self.group.proceed_from_8 == 1 and self.player.id_in_group == 2 and self.round_number == 4 or \ self.group.stop == 0 and self.group.proceed_from_8 == 1 and self.player.id_in_group == 2 and self.round_number == 6 class After_cut(WaitPage): def is_displayed(self): return self.group.stop == 0 and self.round_number == 1 or self.group.stop == 0 and self.round_number == 2 or\ self.group.stop == 0 and self.round_number == 3 or self.group.stop == 0 and self.round_number == 4 or\ self.group.stop == 0 and self.round_number == 5 or self.group.stop == 0 and self.round_number == 6 def after_all_players_arrive(self): self.group.set_knife_choice() self.group.set_cuts() self.group.get_value_overlapping() for p in self.group.get_players(): p.set_values() class select_P1_1(Page): form_model = 'group' form_fields = ['claim_1','claim_2'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 1 and self.player.id_in_group == 1 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 1 and self.player.id_in_group == 1 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 1 and self.player.id_in_group == 1 and self.round_number == 5 class select_P2_1(Page): form_model = 'group' form_fields = ['claim_1','claim_2'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 1 and self.player.id_in_group == 2 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 1 and self.player.id_in_group == 2 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 1 and self.player.id_in_group == 2 and self.round_number == 6 class select_P1_2(Page): form_model = 'group' form_fields = ['claim_1','claim_2','claim_3'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 2 and self.player.id_in_group == 1 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 2 and self.player.id_in_group == 1 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 2 and self.player.id_in_group == 1 and self.round_number == 5 class select_P2_2(Page): form_model = 'group' form_fields = ['claim_1','claim_2','claim_3'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 2 and self.player.id_in_group == 2 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 2 and self.player.id_in_group == 2 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 2 and self.player.id_in_group == 2 and self.round_number == 6 class select_P1_3(Page): form_model = 'group' form_fields = ['claim_1','claim_2','claim_3','claim_4'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 3 and self.player.id_in_group == 1 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 3 and self.player.id_in_group == 1 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 3 and self.player.id_in_group == 1 and self.round_number == 5 class select_P2_3(Page): form_model = 'group' form_fields = ['claim_1','claim_2','claim_3','claim_4'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 3 and self.player.id_in_group == 2 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 3 and self.player.id_in_group == 2 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 3 and self.player.id_in_group == 2 and self.round_number == 6 class select_P1_4(Page): form_model = 'group' form_fields = ['claim_1','claim_2','claim_3','claim_4','claim_5'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 4 and self.player.id_in_group == 1 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 4 and self.player.id_in_group == 1 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 4 and self.player.id_in_group == 1 and self.round_number == 5 class select_P2_4(Page): form_model = 'group' form_fields = ['claim_1','claim_2','claim_3','claim_4','claim_5'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 4 and self.player.id_in_group == 2 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 4 and self.player.id_in_group == 2 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 4 and self.player.id_in_group == 2 and self.round_number == 6 class select_P1_5(Page): form_model = 'group' form_fields = ['claim_1','claim_2','claim_3','claim_4','claim_5','claim_6'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 5 and self.player.id_in_group == 1 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 5 and self.player.id_in_group == 1 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 5 and self.player.id_in_group == 1 and self.round_number == 5 class select_P2_5(Page): form_model = 'group' form_fields = ['claim_1','claim_2','claim_3','claim_4','claim_5','claim_6'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 5 and self.player.id_in_group == 2 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 5 and self.player.id_in_group == 2 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 5 and self.player.id_in_group == 2 and self.round_number == 6 class select_P1_6(Page): form_model = 'group' form_fields = ['claim_1','claim_2','claim_3','claim_4','claim_5','claim_6','claim_7'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 6 and self.player.id_in_group == 1 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 6 and self.player.id_in_group == 1 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 6 and self.player.id_in_group == 1 and self.round_number == 5 class select_P2_6(Page): form_model = 'group' form_fields = ['claim_1','claim_2','claim_3','claim_4','claim_5','claim_6','claim_7'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 6 and self.player.id_in_group == 2 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 6 and self.player.id_in_group == 2 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 6 and self.player.id_in_group == 2 and self.round_number == 6 class select_P1_7(Page): form_model = 'group' form_fields = ['claim_1','claim_2','claim_3','claim_4','claim_5','claim_6','claim_7','claim_8'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 7 and self.player.id_in_group == 1 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 7 and self.player.id_in_group == 1 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 7 and self.player.id_in_group == 1 and self.round_number == 5 class select_P2_7(Page): form_model = 'group' form_fields = ['claim_1','claim_2','claim_3','claim_4','claim_5','claim_6','claim_7','claim_8'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 7 and self.player.id_in_group == 2 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 7 and self.player.id_in_group == 2 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 7 and self.player.id_in_group == 2 and self.round_number == 6 class select_P1_8(Page): form_model = 'group' form_fields = ['claim_1','claim_2','claim_3','claim_4','claim_5','claim_6','claim_7','claim_8','claim_9'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 8 and self.player.id_in_group == 1 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 8 and self.player.id_in_group == 1 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 8 and self.player.id_in_group == 1 and self.round_number == 5 class select_P2_8(Page): form_model = 'group' form_fields = ['claim_1','claim_2','claim_3','claim_4','claim_5','claim_6','claim_7','claim_8','claim_9'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 8 and self.player.id_in_group == 2 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 8 and self.player.id_in_group == 2 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 8 and self.player.id_in_group == 2 and self.round_number == 6 class select_P1_9(Page): form_model = 'group' form_fields = ['claim_1','claim_2','claim_3','claim_4','claim_5','claim_6','claim_7','claim_8','claim_9','claim_10'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 9 and self.player.id_in_group == 1 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 9 and self.player.id_in_group == 1 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 9 and self.player.id_in_group == 1 and self.round_number == 5 class select_P2_9(Page): form_model = 'group' form_fields = ['claim_1','claim_2','claim_3','claim_4','claim_5','claim_6','claim_7','claim_8','claim_9','claim_10'] def vars_for_template(self): return {'R': self.round_number} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 9 and self.player.id_in_group == 2 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 9 and self.player.id_in_group == 2 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 9 and self.player.id_in_group == 2 and self.round_number == 6 class After_select(WaitPage): def is_displayed(self): return self.group.stop == 0 and self.round_number == 1 or self.group.stop == 0 and self.round_number == 2 or\ self.group.stop == 0 and self.round_number == 3 or self.group.stop == 0 and self.round_number == 4 or\ self.group.stop == 0 and self.round_number == 5 or self.group.stop == 0 and self.round_number == 6 def after_all_players_arrive(self): for p in self.group.get_players(): p.set_ownvalue() class decide_P1_1(Page): form_model = 'group' form_fields = ['Decision'] def vars_for_template(self): return {'R': self.round_number,'Rec2':600-self.group.cut_1} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 1 and self.player.id_in_group == 1 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 1 and self.player.id_in_group == 1 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 1 and self.player.id_in_group == 1 and self.round_number == 6 class decide_P2_1(Page): form_model = 'group' form_fields = ['Decision'] def vars_for_template(self): return {'R': self.round_number,'Rec2':600-self.group.cut_1} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 1 and self.player.id_in_group == 2 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 1 and self.player.id_in_group == 2 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 1 and self.player.id_in_group == 2 and self.round_number == 5 class decide_P1_2(Page): form_model = 'group' form_fields = ['Decision'] def vars_for_template(self): return {'R': self.round_number,'Rec2':self.group.cut_2 - self.group.cut_1,'Rec3':600 - self.group.cut_2} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 2 and self.player.id_in_group == 1 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 2 and self.player.id_in_group == 1 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 2 and self.player.id_in_group == 1 and self.round_number == 6 class decide_P2_2(Page): form_model = 'group' form_fields = ['Decision'] def vars_for_template(self): return {'R': self.round_number,'Rec2':self.group.cut_2 - self.group.cut_1,'Rec3':600 - self.group.cut_2} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 2 and self.player.id_in_group == 2 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 2 and self.player.id_in_group == 2 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 2 and self.player.id_in_group == 2 and self.round_number == 5 class decide_P1_3(Page): form_model = 'group' form_fields = ['Decision'] def vars_for_template(self): return {'R': self.round_number,'Rec2':self.group.cut_2 - self.group.cut_1,'Rec3':self.group.cut_3 - self.group.cut_2, 'Rec4':600 - self.group.cut_3} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 3 and self.player.id_in_group == 1 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 3 and self.player.id_in_group == 1 and self.round_number == 4 or \ self.group.stop == 0 and self.group.knife_choice == 3 and self.player.id_in_group == 1 and self.round_number == 6 class decide_P2_3(Page): form_model = 'group' form_fields = ['Decision'] def vars_for_template(self): return {'R': self.round_number,'Rec2':self.group.cut_2 - self.group.cut_1,'Rec3':self.group.cut_3 - self.group.cut_2, 'Rec4':600 - self.group.cut_3} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 3 and self.player.id_in_group == 2 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 3 and self.player.id_in_group == 2 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 3 and self.player.id_in_group == 2 and self.round_number == 5 class decide_P1_4(Page): form_model = 'group' form_fields = ['Decision'] def vars_for_template(self): return {'R': self.round_number,'Rec2':self.group.cut_2 - self.group.cut_1,'Rec3':self.group.cut_3 - self.group.cut_2, 'Rec4':self.group.cut_4 - self.group.cut_3,'Rec5':600 - self.group.cut_4} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 4 and self.player.id_in_group == 1 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 4 and self.player.id_in_group == 1 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 4 and self.player.id_in_group == 1 and self.round_number == 6 class decide_P2_4(Page): form_model = 'group' form_fields = ['Decision'] def vars_for_template(self): return {'R': self.round_number,'Rec2':self.group.cut_2 - self.group.cut_1,'Rec3':self.group.cut_3 - self.group.cut_2, 'Rec4':self.group.cut_4 - self.group.cut_3,'Rec5':600 - self.group.cut_4} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 4 and self.player.id_in_group == 2 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 4 and self.player.id_in_group == 2 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 4 and self.player.id_in_group == 2 and self.round_number == 5 class decide_P1_5(Page): form_model = 'group' form_fields = ['Decision'] def vars_for_template(self): return {'R': self.round_number,'Rec2':self.group.cut_2 - self.group.cut_1,'Rec3':self.group.cut_3 - self.group.cut_2, 'Rec4':self.group.cut_4 - self.group.cut_3,'Rec5':self.group.cut_5 - self.group.cut_4,'Rec6':600 - self.group.cut_5} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 5 and self.player.id_in_group == 1 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 5 and self.player.id_in_group == 1 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 5 and self.player.id_in_group == 1 and self.round_number == 6 class decide_P2_5(Page): form_model = 'group' form_fields = ['Decision'] def vars_for_template(self): return {'R': self.round_number,'Rec2':self.group.cut_2 - self.group.cut_1,'Rec3':self.group.cut_3 - self.group.cut_2, 'Rec4':self.group.cut_4 - self.group.cut_3,'Rec5':self.group.cut_5 - self.group.cut_4,'Rec6':600 - self.group.cut_5} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 5 and self.player.id_in_group == 2 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 5 and self.player.id_in_group == 2 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 5 and self.player.id_in_group == 2 and self.round_number == 5 class decide_P1_6(Page): form_model = 'group' form_fields = ['Decision'] def vars_for_template(self): return {'R': self.round_number,'Rec2':self.group.cut_2 - self.group.cut_1,'Rec3':self.group.cut_3 - self.group.cut_2, 'Rec4':self.group.cut_4 - self.group.cut_3,'Rec5':self.group.cut_5 - self.group.cut_4,'Rec6':self.group.cut_6 - self.group.cut_5, 'Rec7':600 - self.group.cut_6} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 6 and self.player.id_in_group == 1 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 6 and self.player.id_in_group == 1 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 6 and self.player.id_in_group == 1 and self.round_number == 6 class decide_P2_6(Page): form_model = 'group' form_fields = ['Decision'] def vars_for_template(self): return {'R': self.round_number,'Rec2':self.group.cut_2 - self.group.cut_1,'Rec3':self.group.cut_3 - self.group.cut_2, 'Rec4':self.group.cut_4 - self.group.cut_3,'Rec5':self.group.cut_5 - self.group.cut_4,'Rec6':self.group.cut_6 - self.group.cut_5, 'Rec7':600 - self.group.cut_6} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 6 and self.player.id_in_group == 2 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 6 and self.player.id_in_group == 2 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 6 and self.player.id_in_group == 2 and self.round_number == 5 class decide_P1_7(Page): form_model = 'group' form_fields = ['Decision'] def vars_for_template(self): return {'R': self.round_number,'Rec2':self.group.cut_2 - self.group.cut_1,'Rec3':self.group.cut_3 - self.group.cut_2, 'Rec4':self.group.cut_4 - self.group.cut_3,'Rec5':self.group.cut_5 - self.group.cut_4,'Rec6':self.group.cut_6 - self.group.cut_5, 'Rec7':self.group.cut_7 - self.group.cut_6,'Rec8':600 - self.group.cut_7} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 7 and self.player.id_in_group == 1 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 7 and self.player.id_in_group == 1 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 7 and self.player.id_in_group == 1 and self.round_number == 6 class decide_P2_7(Page): form_model = 'group' form_fields = ['Decision'] def vars_for_template(self): return {'R': self.round_number,'Rec2':self.group.cut_2 - self.group.cut_1,'Rec3':self.group.cut_3 - self.group.cut_2, 'Rec4':self.group.cut_4 - self.group.cut_3,'Rec5':self.group.cut_5 - self.group.cut_4,'Rec6':self.group.cut_6 - self.group.cut_5, 'Rec7':self.group.cut_7 - self.group.cut_6,'Rec8':600 - self.group.cut_7} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 7 and self.player.id_in_group == 2 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 7 and self.player.id_in_group == 2 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 7 and self.player.id_in_group == 2 and self.round_number == 5 class decide_P1_8(Page): form_model = 'group' form_fields = ['Decision'] def vars_for_template(self): return {'R': self.round_number,'Rec2':self.group.cut_2 - self.group.cut_1,'Rec3':self.group.cut_3 - self.group.cut_2, 'Rec4':self.group.cut_4 - self.group.cut_3,'Rec5':self.group.cut_5 - self.group.cut_4,'Rec6':self.group.cut_6 - self.group.cut_5, 'Rec7':self.group.cut_7 - self.group.cut_6,'Rec8':self.group.cut_8 - self.group.cut_7,'Rec9':600 - self.group.cut_8} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 8 and self.player.id_in_group == 1 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 8 and self.player.id_in_group == 1 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 8 and self.player.id_in_group == 1 and self.round_number == 6 class decide_P2_8(Page): form_model = 'group' form_fields = ['Decision'] def vars_for_template(self): return {'R': self.round_number,'Rec2':self.group.cut_2 - self.group.cut_1,'Rec3':self.group.cut_3 - self.group.cut_2, 'Rec4':self.group.cut_4 - self.group.cut_3,'Rec5':self.group.cut_5 - self.group.cut_4,'Rec6':self.group.cut_6 - self.group.cut_5, 'Rec7':self.group.cut_7 - self.group.cut_6,'Rec8':self.group.cut_8 - self.group.cut_7,'Rec9':600 - self.group.cut_8} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 8 and self.player.id_in_group == 2 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 8 and self.player.id_in_group == 2 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 8 and self.player.id_in_group == 2 and self.round_number == 5 class decide_P1_9(Page): form_model = 'group' form_fields = ['Decision'] def vars_for_template(self): return {'R': self.round_number,'Rec2':self.group.cut_2 - self.group.cut_1,'Rec3':self.group.cut_3 - self.group.cut_2, 'Rec4':self.group.cut_4 - self.group.cut_3,'Rec5':self.group.cut_5 - self.group.cut_4,'Rec6':self.group.cut_6 - self.group.cut_5, 'Rec7':self.group.cut_7 - self.group.cut_6,'Rec8':self.group.cut_8 - self.group.cut_7,'Rec9':self.group.cut_9 - self.group.cut_8, 'Rec10': 600 - self.group.cut_9} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 9 and self.player.id_in_group == 1 and self.round_number == 2 or\ self.group.stop == 0 and self.group.knife_choice == 9 and self.player.id_in_group == 1 and self.round_number == 4 or\ self.group.stop == 0 and self.group.knife_choice == 9 and self.player.id_in_group == 1 and self.round_number == 6 class decide_P2_9(Page): form_model = 'group' form_fields = ['Decision'] def vars_for_template(self): return {'R': self.round_number,'Rec2':self.group.cut_2 - self.group.cut_1,'Rec3':self.group.cut_3 - self.group.cut_2, 'Rec4':self.group.cut_4 - self.group.cut_3,'Rec5':self.group.cut_5 - self.group.cut_4,'Rec6':self.group.cut_6 - self.group.cut_5, 'Rec7':self.group.cut_7 - self.group.cut_6,'Rec8':self.group.cut_8 - self.group.cut_7,'Rec9':self.group.cut_9 - self.group.cut_8, 'Rec10': 600 - self.group.cut_9} def is_displayed(self): return self.group.stop == 0 and self.group.knife_choice == 9 and self.player.id_in_group == 2 and self.round_number == 1 or\ self.group.stop == 0 and self.group.knife_choice == 9 and self.player.id_in_group == 2 and self.round_number == 3 or\ self.group.stop == 0 and self.group.knife_choice == 9 and self.player.id_in_group == 2 and self.round_number == 5 class After_decide(WaitPage): def is_displayed(self): return self.group.stop == 0 def after_all_players_arrive(self): for p in self.group.get_players(): p.set_payoff() self.group.get_value_overlapping() self.group.get_value_lost() class Result_P1(Page): timeout_seconds = 30 def vars_for_template(self): return {'P': self.player.payoff} def is_displayed(self): return self.group.stop == 0 and self.group.Decision == 1 and self.player.id_in_group == 1 class Result_P2(Page): timeout_seconds = 30 def vars_for_template(self): return {'P': self.player.payoff} def is_displayed(self): return self.group.stop == 0 and self.group.Decision == 1 and self.player.id_in_group == 2 class Result_P1_R7(Page): timeout_seconds = 30 def vars_for_template(self): return {'P': self.player.payoff} def is_displayed(self): return self.group.stop == 0 and self.round_number == 7 and self.group.Decision == 0 and self.player.id_in_group == 1 class Result_P2_R7(Page): timeout_seconds = 30 def vars_for_template(self): return {'P': self.player.payoff} def is_displayed(self): return self.group.stop == 0 and self.round_number == 7 and self.group.Decision == 0 and self.player.id_in_group == 2 class After_result(WaitPage): def is_displayed(self): return self.group.stop == 0 and self.round_number == 1 or self.group.stop == 0 and self.round_number == 2 or\ self.group.stop == 0 and self.round_number == 3 or self.group.stop == 0 and self.round_number == 4 or\ self.group.stop == 0 and self.round_number == 5 or self.group.stop == 0 and self.round_number == 6 def after_all_players_arrive(self): self.group.stophere() class finished(Page): timeout_seconds = 10 def is_displayed(self): return self.round_number == 7 def before_next_page(self): self.participant.payoff = c(0) page_sequence = [ greetings_P1, greetings_P2, inform_P1, inform_P1_R6, inform_P2, choose_knife_P1, choose_knife_P2, choose_knife_P2_R6, cut_P1_1, cut_P1_2, cut_P1_3, cut_P1_4, cut_P1_5, cut_P1_6, cut_P1_7, cut_P1_8, cut_P1_9, cut_P2_1, cut_P2_2, cut_P2_3, cut_P2_4, cut_P2_5, cut_P2_6, cut_P2_7, cut_P2_8, cut_P2_9, After_cut, select_P1_1, select_P1_2, select_P1_3, select_P1_4, select_P1_5, select_P1_6, select_P1_7, select_P1_8, select_P1_9, select_P2_1, select_P2_2, select_P2_3, select_P2_4, select_P2_5, select_P2_6, select_P2_7, select_P2_8, select_P2_9, After_select, decide_P1_1, decide_P1_2, decide_P1_3, decide_P1_4, decide_P1_5, decide_P1_6, decide_P1_7, decide_P1_8, decide_P1_9, decide_P2_1, decide_P2_2, decide_P2_3, decide_P2_4, decide_P2_5, decide_P2_6, decide_P2_7, decide_P2_8, decide_P2_9, After_decide, Result_P1, Result_P2, After_result, Result_P1_R7, Result_P2_R7, finished, ]