from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import random class DecInstructionPage(Page): pass class DecisionPage1(Page): form_model = 'player' form_fields = ['dec1'] def vars_for_template(self): axiom = self.player.axiomord1 axiom_text = Constants.all_axioms[axiom][0] data=[] if self.round_number == 1: axiom = self.player.axiomord1 if self.round_number == 2: axiom = self.player.axiomord2 data.append(Constants.all_pairs[axiom][self.player.decord1][self.player.ord1_1]) data.append(Constants.all_pairs[axiom][self.player.decord1][self.player.ord2_1]) data.append(Constants.all_pairs[axiom][self.player.decord1][self.player.ord3_1]) data.append(Constants.all_pairs[axiom][self.player.decord1][self.player.ord4_1]) data.append(Constants.all_pairs[axiom][self.player.decord1][self.player.ord5_1]) data.append(Constants.all_pairs[axiom][self.player.decord1][self.player.ord6_1]) data.append(Constants.all_pairs[axiom][self.player.decord1][self.player.ord7_1]) data.append(Constants.all_pairs[axiom][self.player.decord1][self.player.ord8_1]) data.append(Constants.all_pairs[axiom][self.player.decord1][self.player.ord9_1]) data.append(Constants.all_pairs[axiom][self.player.decord1][self.player.ord0_1]) data_a = [] data_b = [] if self.player.abord1 == 0: for x in range(10): data_a.append(data[x][0]) data_b.append(data[x][1]) if self.player.abord1 == 1: for x in range(10): data_a.append(data[x][1]) data_b.append(data[x][0]) return dict( data_a=data_a, data_b=data_b, axiom_text=axiom_text, ) class DecisionPage2(Page): form_model = 'player' form_fields = ['dec2'] def vars_for_template(self): axiom = self.player.axiomord1 axiom_text = Constants.all_axioms[axiom][0] data=[] if self.round_number == 1: axiom = self.player.axiomord1 if self.round_number == 2: axiom = self.player.axiomord2 data.append(Constants.all_pairs[axiom][self.player.decord2][self.player.ord1_2]) data.append(Constants.all_pairs[axiom][self.player.decord2][self.player.ord2_2]) data.append(Constants.all_pairs[axiom][self.player.decord2][self.player.ord3_2]) data.append(Constants.all_pairs[axiom][self.player.decord2][self.player.ord4_2]) data.append(Constants.all_pairs[axiom][self.player.decord2][self.player.ord5_2]) data.append(Constants.all_pairs[axiom][self.player.decord2][self.player.ord6_2]) data.append(Constants.all_pairs[axiom][self.player.decord2][self.player.ord7_2]) data.append(Constants.all_pairs[axiom][self.player.decord2][self.player.ord8_2]) data.append(Constants.all_pairs[axiom][self.player.decord2][self.player.ord9_2]) data.append(Constants.all_pairs[axiom][self.player.decord2][self.player.ord0_2]) data_a = [] data_b = [] if self.player.abord2 == 0: for x in range(10): data_a.append(data[x][0]) data_b.append(data[x][1]) if self.player.abord2 == 1: for x in range(10): data_a.append(data[x][1]) data_b.append(data[x][0]) return dict( data_a=data_a, data_b=data_b, axiom_text=axiom_text, ) class DecisionPage3(Page): form_model = 'player' form_fields = ['dec3'] def vars_for_template(self): axiom = self.player.axiomord1 axiom_text = Constants.all_axioms[axiom][0] data=[] if self.round_number == 1: axiom = self.player.axiomord1 if self.round_number == 2: axiom = self.player.axiomord2 data.append(Constants.all_pairs[axiom][self.player.decord3][self.player.ord1_3]) data.append(Constants.all_pairs[axiom][self.player.decord3][self.player.ord2_3]) data.append(Constants.all_pairs[axiom][self.player.decord3][self.player.ord3_3]) data.append(Constants.all_pairs[axiom][self.player.decord3][self.player.ord4_3]) data.append(Constants.all_pairs[axiom][self.player.decord3][self.player.ord5_3]) data.append(Constants.all_pairs[axiom][self.player.decord3][self.player.ord6_3]) data.append(Constants.all_pairs[axiom][self.player.decord3][self.player.ord7_3]) data.append(Constants.all_pairs[axiom][self.player.decord3][self.player.ord8_3]) data.append(Constants.all_pairs[axiom][self.player.decord3][self.player.ord9_3]) data.append(Constants.all_pairs[axiom][self.player.decord3][self.player.ord0_3]) data_a = [] data_b = [] if self.player.abord3 == 0: for x in range(10): data_a.append(data[x][0]) data_b.append(data[x][1]) if self.player.abord3 == 1: for x in range(10): data_a.append(data[x][1]) data_b.append(data[x][0]) return dict( data_a=data_a, data_b=data_b, axiom_text=axiom_text, ) class DecisionPage4(Page): form_model = 'player' form_fields = ['dec4'] def vars_for_template(self): axiom = self.player.axiomord1 axiom_text = Constants.all_axioms[axiom][0] data=[] if self.round_number == 1: axiom = self.player.axiomord1 if self.round_number == 2: axiom = self.player.axiomord2 data.append(Constants.all_pairs[axiom][self.player.decord4][self.player.ord1_4]) data.append(Constants.all_pairs[axiom][self.player.decord4][self.player.ord2_4]) data.append(Constants.all_pairs[axiom][self.player.decord4][self.player.ord3_4]) data.append(Constants.all_pairs[axiom][self.player.decord4][self.player.ord4_4]) data.append(Constants.all_pairs[axiom][self.player.decord4][self.player.ord5_4]) data.append(Constants.all_pairs[axiom][self.player.decord4][self.player.ord6_4]) data.append(Constants.all_pairs[axiom][self.player.decord4][self.player.ord7_4]) data.append(Constants.all_pairs[axiom][self.player.decord4][self.player.ord8_4]) data.append(Constants.all_pairs[axiom][self.player.decord4][self.player.ord9_4]) data.append(Constants.all_pairs[axiom][self.player.decord4][self.player.ord0_4]) data_a = [] data_b = [] if self.player.abord4 == 0: for x in range(10): data_a.append(data[x][0]) data_b.append(data[x][1]) if self.player.abord4 == 1: for x in range(10): data_a.append(data[x][1]) data_b.append(data[x][0]) return dict( data_a=data_a, data_b=data_b, axiom_text=axiom_text, ) class DecisionPage5(Page): form_model = 'player' form_fields = ['dec5'] def vars_for_template(self): axiom = self.player.axiomord1 axiom_text = Constants.all_axioms[axiom][0] data=[] if self.round_number == 1: axiom = self.player.axiomord1 if self.round_number == 2: axiom = self.player.axiomord2 data.append(Constants.all_pairs[axiom][self.player.decord5][self.player.ord1_5]) data.append(Constants.all_pairs[axiom][self.player.decord5][self.player.ord2_5]) data.append(Constants.all_pairs[axiom][self.player.decord5][self.player.ord3_5]) data.append(Constants.all_pairs[axiom][self.player.decord5][self.player.ord4_5]) data.append(Constants.all_pairs[axiom][self.player.decord5][self.player.ord5_5]) data.append(Constants.all_pairs[axiom][self.player.decord5][self.player.ord6_5]) data.append(Constants.all_pairs[axiom][self.player.decord5][self.player.ord7_5]) data.append(Constants.all_pairs[axiom][self.player.decord5][self.player.ord8_5]) data.append(Constants.all_pairs[axiom][self.player.decord5][self.player.ord9_5]) data.append(Constants.all_pairs[axiom][self.player.decord5][self.player.ord0_5]) data_a = [] data_b = [] if self.player.abord5 == 0: for x in range(10): data_a.append(data[x][0]) data_b.append(data[x][1]) if self.player.abord5 == 1: for x in range(10): data_a.append(data[x][1]) data_b.append(data[x][0]) return dict( data_a=data_a, data_b=data_b, axiom_text=axiom_text, ) class DecisionPage6(Page): form_model = 'player' form_fields = ['dec6'] def vars_for_template(self): axiom = self.player.axiomord1 axiom_text = Constants.all_axioms[axiom][0] data=[] if self.round_number == 1: axiom = self.player.axiomord1 if self.round_number == 2: axiom = self.player.axiomord2 data.append(Constants.all_pairs[axiom][self.player.decord6][self.player.ord1_6]) data.append(Constants.all_pairs[axiom][self.player.decord6][self.player.ord2_6]) data.append(Constants.all_pairs[axiom][self.player.decord6][self.player.ord3_6]) data.append(Constants.all_pairs[axiom][self.player.decord6][self.player.ord4_6]) data.append(Constants.all_pairs[axiom][self.player.decord6][self.player.ord5_6]) data.append(Constants.all_pairs[axiom][self.player.decord6][self.player.ord6_6]) data.append(Constants.all_pairs[axiom][self.player.decord6][self.player.ord7_6]) data.append(Constants.all_pairs[axiom][self.player.decord6][self.player.ord8_6]) data.append(Constants.all_pairs[axiom][self.player.decord6][self.player.ord9_6]) data.append(Constants.all_pairs[axiom][self.player.decord6][self.player.ord0_6]) data_a = [] data_b = [] if self.player.abord6 == 0: for x in range(10): data_a.append(data[x][0]) data_b.append(data[x][1]) if self.player.abord6 == 1: for x in range(10): data_a.append(data[x][1]) data_b.append(data[x][0]) return dict( data_a=data_a, data_b=data_b, axiom_text=axiom_text, ) class DecisionPage7(Page): form_model = 'player' form_fields = ['dec7'] def vars_for_template(self): axiom = self.player.axiomord1 axiom_text = Constants.all_axioms[axiom][0] data=[] if self.round_number == 1: axiom = self.player.axiomord1 if self.round_number == 2: axiom = self.player.axiomord2 data.append(Constants.all_pairs[axiom][self.player.decord7][self.player.ord1_7]) data.append(Constants.all_pairs[axiom][self.player.decord7][self.player.ord2_7]) data.append(Constants.all_pairs[axiom][self.player.decord7][self.player.ord3_7]) data.append(Constants.all_pairs[axiom][self.player.decord7][self.player.ord4_7]) data.append(Constants.all_pairs[axiom][self.player.decord7][self.player.ord5_7]) data.append(Constants.all_pairs[axiom][self.player.decord7][self.player.ord6_7]) data.append(Constants.all_pairs[axiom][self.player.decord7][self.player.ord7_7]) data.append(Constants.all_pairs[axiom][self.player.decord7][self.player.ord8_7]) data.append(Constants.all_pairs[axiom][self.player.decord7][self.player.ord9_7]) data.append(Constants.all_pairs[axiom][self.player.decord7][self.player.ord0_7]) data_a = [] data_b = [] if self.player.abord7 == 0: for x in range(10): data_a.append(data[x][0]) data_b.append(data[x][1]) if self.player.abord7 == 1: for x in range(10): data_a.append(data[x][1]) data_b.append(data[x][0]) return dict( data_a=data_a, data_b=data_b, axiom_text=axiom_text, ) class DecisionPage8(Page): form_model = 'player' form_fields = ['dec8'] def vars_for_template(self): axiom = self.player.axiomord1 axiom_text = Constants.all_axioms[axiom][0] data=[] if self.round_number == 1: axiom = self.player.axiomord1 if self.round_number == 2: axiom = self.player.axiomord2 data.append(Constants.all_pairs[axiom][self.player.decord8][self.player.ord1_8]) data.append(Constants.all_pairs[axiom][self.player.decord8][self.player.ord2_8]) data.append(Constants.all_pairs[axiom][self.player.decord8][self.player.ord3_8]) data.append(Constants.all_pairs[axiom][self.player.decord8][self.player.ord4_8]) data.append(Constants.all_pairs[axiom][self.player.decord8][self.player.ord5_8]) data.append(Constants.all_pairs[axiom][self.player.decord8][self.player.ord6_8]) data.append(Constants.all_pairs[axiom][self.player.decord8][self.player.ord7_8]) data.append(Constants.all_pairs[axiom][self.player.decord8][self.player.ord8_8]) data.append(Constants.all_pairs[axiom][self.player.decord8][self.player.ord9_8]) data.append(Constants.all_pairs[axiom][self.player.decord8][self.player.ord0_8]) data_a = [] data_b = [] if self.player.abord8 == 0: for x in range(10): data_a.append(data[x][0]) data_b.append(data[x][1]) if self.player.abord8 == 1: for x in range(10): data_a.append(data[x][1]) data_b.append(data[x][0]) return dict( data_a=data_a, data_b=data_b, axiom_text=axiom_text, ) def before_next_page(self): self.player.set_payoffs() class EndPage(Page): pass page_sequence = [DecInstructionPage, DecisionPage1, DecisionPage2, DecisionPage3, DecisionPage4, DecisionPage5, DecisionPage6, DecisionPage7, DecisionPage8, EndPage]