from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import random from captcha.fields import ReCaptchaField class captcha(Page): def is_displayed(self): return self.player.round_number == 1 form_model = 'player' form_fields = ['captcha'] def get_form(self, data=None, files=None, **kwargs): frm = super().get_form(data, files, **kwargs) frm.fields['captcha'] = ReCaptchaField(label='') return frm class ball_hist_01(Page): pass class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): pass class Results(Page): pass class instructions_page(Page): def is_displayed(self): #return self.player.round_number == 1 return self.player.round_number == 1 #def is_displayed(self): # return round > 2 #def before_next_page(self): # self.player.payoff = 10 class first_next_page(Page): def vars_for_template(self): me = self.player #me.round = me.round + 1 if me.col_red_01 == 1: me.col_label_01 = "red" else: me.col_label_01 = "black" if me.col_red_02 == 1: me.col_label_02 = "red" else: me.col_label_02 = "black" if me.col_red_03 == 1: me.col_label_03 = "red" else: me.col_label_03 = "black" if me.col_red_04 == 1: me.col_label_04 = "red" else: me.col_label_04 = "black" if me.col_red_05 == 1: me.col_label_05 = "red" else: me.col_label_05 = "black" if me.col_red_06 == 1: me.col_label_06 = "red" else: me.col_label_06 = "black" if me.col_red_07 == 1: me.col_label_07 = "red" else: me.col_label_07 = "black" if me.col_red_08 == 1: me.col_label_08 = "red" else: me.col_label_08 = "black" if me.col_red_09 == 1: me.col_label_09 = "red" else: me.col_label_09 = "black" if me.col_red_10 == 1: me.col_label_10 = "red" else: me.col_label_10 = "black" if me.col_red_11 == 1: me.col_label_11 = "red" else: me.col_label_11 = "black" if me.col_red_12 == 1: me.col_label_12 = "red" else: me.col_label_12 = "black" if me.col_red_13 == 1: me.col_label_13 = "red" else: me.col_label_13 = "black" if me.col_red_14 == 1: me.col_label_14 = "red" else: me.col_label_14 = "black" if me.col_red_15 == 1: me.col_label_15 = "red" else: me.col_label_15 = "black" if me.col_red_16 == 1: me.col_label_16 = "red" else: me.col_label_16 = "black" if me.col_red_17 == 1: me.col_label_17 = "red" else: me.col_label_17 = "black" if me.col_red_18 == 1: me.col_label_18 = "red" else: me.col_label_18 = "black" if me.col_red_19 == 1: me.col_label_19 = "red" else: me.col_label_19 = "black" if me.col_red_20 == 1: me.col_label_20 = "red" else: me.col_label_20 = "black" if me.col_red_21 == 1: me.col_label_21 = "red" else: me.col_label_21 = "black" if me.col_red_22 == 1: me.col_label_22 = "red" else: me.col_label_22 = "black" if me.col_red_23 == 1: me.col_label_23 = "red" else: me.col_label_23 = "black" if me.col_red_24 == 1: me.col_label_24 = "red" else: me.col_label_24 = "black" if me.col_red_25 == 1: me.col_label_25 = "red" else: me.col_label_25 = "black" if me.col_red_26 == 1: me.col_label_26 = "red" else: me.col_label_26 = "black" if me.col_red_27 == 1: me.col_label_27 = "red" else: me.col_label_27 = "black" if me.col_red_28 == 1: me.col_label_28 = "red" else: me.col_label_28 = "black" if me.col_red_29 == 1: me.col_label_29 = "red" else: me.col_label_29 = "black" if me.col_red_30 == 1: me.col_label_30 = "red" else: me.col_label_30 = "black" me.num_red_drawn_so_far = me.num_red_drawn_so_far_01 me.col_label = me.col_label_01 class dec_description(Page): form_model = 'player' form_fields = ['why_not_fewer','why_not_more'] #class b(Page): ## beliefs elicitation page # def is_displayed(self): # return self.player.judgment_call_yes != 0 class b_01_01(Page): def is_displayed(self): return self.player.judgment_call_yes != 1 form_model = 'player' form_fields = ['b_01_01'] class b_02_01(Page): def is_displayed(self): return self.player.judgment_call_yes != 1 form_model = 'player' form_fields = ['b_02_01'] class b_03_01(Page): def is_displayed(self): return self.player.judgment_call_yes != 1 form_model = 'player' form_fields = ['b_03_01'] class b_03_01(Page): def is_displayed(self): return self.player.judgment_call_yes != 1 form_model = 'player' form_fields = ['b_03_01'] class uic(Page): def is_displayed(self): return self.player.round_number == self.player.round_number <= Constants.num_rounds def vars_for_template(self): me = self.player #me.round = me.round + 1 if me.judgment_call_threshold == 1: me.more_or_less = "more" else: me.more_or_less = "less" form_model = 'player' form_fields = ['uic'] class student_questions(Page): form_model = 'player' form_fields = ['stud_instructions_comment','stud_decision_description','stud_other_comments','stud_name'] class thankyou(Page): def is_displayed(self): return self.player.round_number == Constants.num_rounds class dec(Page): # def is_displayed(self): # return self.player.round_number == (self.player.round_number <= Constants.num_rounds) & \ # (self.player.judgment_call_yes != 1) #return self.player.judgment_call_yes != 1 def is_displayed(self): return self.player.judgment_call_yes != 1 return self.player.round_number == self.player.round_number <= Constants.num_rounds def vars_for_template(self): me = self.player # me.decision_number = me.decision_number + 1 # me.num_balls_drawn = me.num_balls_drawn + 1 # me.hide = "hidden" if me.decision_number == 1: me.divclass = "div1" me.divclass2 = "div2" else: me.divclass = "div2" me.divclass2 = "div1" if me.decision_number == 1: me.num_red_drawn_so_far = me.num_red_drawn_so_far_01 elif me.decision_number == 2: me.num_red_drawn_so_far = me.num_red_drawn_so_far_02 me.col_label = me.col_label_02 elif me.decision_number == 3: me.num_red_drawn_so_far = me.num_red_drawn_so_far_03 me.col_label = me.col_label_03 elif me.decision_number == 4: me.num_red_drawn_so_far = me.num_red_drawn_so_far_04 me.col_label = me.col_label_04 elif me.decision_number == 5: me.num_red_drawn_so_far = me.num_red_drawn_so_far_05 me.col_label = me.col_label_05 elif me.decision_number == 6: me.num_red_drawn_so_far = me.num_red_drawn_so_far_06 me.col_label = me.col_label_06 elif me.decision_number == 7: me.num_red_drawn_so_far = me.num_red_drawn_so_far_07 me.col_label = me.col_label_07 elif me.decision_number == 8: me.num_red_drawn_so_far = me.num_red_drawn_so_far_08 me.col_label = me.col_label_08 elif me.decision_number == 9: me.num_red_drawn_so_far = me.num_red_drawn_so_far_09 me.col_label = me.col_label_09 elif me.decision_number == 10: me.num_red_drawn_so_far = me.num_red_drawn_so_far_10 me.col_label = me.col_label_10 elif me.decision_number == 11: me.num_red_drawn_so_far = me.num_red_drawn_so_far_11 me.col_label = me.col_label_11 elif me.decision_number == 12: me.num_red_drawn_so_far = me.num_red_drawn_so_far_12 me.col_label = me.col_label_12 elif me.decision_number == 13: me.num_red_drawn_so_far = me.num_red_drawn_so_far_13 me.col_label = me.col_label_13 elif me.decision_number == 14: me.num_red_drawn_so_far = me.num_red_drawn_so_far_14 me.col_label = me.col_label_14 elif me.decision_number == 15: me.num_red_drawn_so_far = me.num_red_drawn_so_far_15 me.col_label = me.col_label_15 elif me.decision_number == 16: me.num_red_drawn_so_far = me.num_red_drawn_so_far_16 me.col_label = me.col_label_16 elif me.decision_number == 17: me.num_red_drawn_so_far = me.num_red_drawn_so_far_17 me.col_label = me.col_label_17 elif me.decision_number == 18: me.num_red_drawn_so_far = me.num_red_drawn_so_far_18 me.col_label = me.col_label_18 elif me.decision_number == 19: me.num_red_drawn_so_far = me.num_red_drawn_so_far_19 me.col_label = me.col_label_19 elif me.decision_number == 20: me.num_red_drawn_so_far = me.num_red_drawn_so_far_20 me.col_label = me.col_label_20 elif me.decision_number == 21: me.num_red_drawn_so_far = me.num_red_drawn_so_far_21 me.col_label = me.col_label_21 elif me.decision_number == 22: me.num_red_drawn_so_far = me.num_red_drawn_so_far_22 me.col_label = me.col_label_22 elif me.decision_number == 23: me.num_red_drawn_so_far = me.num_red_drawn_so_far_23 me.col_label = me.col_label_23 elif me.decision_number == 24: me.num_red_drawn_so_far = me.num_red_drawn_so_far_24 me.col_label = me.col_label_24 elif me.decision_number == 25: me.num_red_drawn_so_far = me.num_red_drawn_so_far_25 me.col_label = me.col_label_25 elif me.decision_number == 26: me.num_red_drawn_so_far = me.num_red_drawn_so_far_26 me.col_label = me.col_label_26 elif me.decision_number == 27: me.num_red_drawn_so_far = me.num_red_drawn_so_far_27 me.col_label = me.col_label_27 elif me.decision_number == 28: me.num_red_drawn_so_far = me.num_red_drawn_so_far_28 me.col_label = me.col_label_28 elif me.decision_number == 29: me.num_red_drawn_so_far = me.num_red_drawn_so_far_29 me.col_label = me.col_label_29 elif me.decision_number == 30: me.num_red_drawn_so_far = me.num_red_drawn_so_far_30 me.col_label = me.col_label_30 return dict(ball_colors=[me.col_label]) form_model = 'player' form_fields = ['judgment_call_yes'] class jc(Page): def is_displayed(self): return self.player.judgment_call_yes == 1 #& self.player.judgment_call_threshold == 99 return self.player.round_number == self.player.round_number <= Constants.num_rounds def vars_for_template(self): me = self.player # me.decision_number = me.decision_number + 1 # me.num_balls_drawn = me.num_balls_drawn + 1 # me.hide = "hidden" if me.decision_number == 1: me.divclass = "div1" else: me.divclass = "div2" if me.decision_number == 1: me.num_red_drawn_so_far = me.num_red_drawn_so_far_01 elif me.decision_number == 2: me.num_red_drawn_so_far = me.num_red_drawn_so_far_02 me.col_label = me.col_label_02 elif me.decision_number == 3: me.num_red_drawn_so_far = me.num_red_drawn_so_far_03 me.col_label = me.col_label_03 elif me.decision_number == 4: me.num_red_drawn_so_far = me.num_red_drawn_so_far_04 me.col_label = me.col_label_04 elif me.decision_number == 5: me.num_red_drawn_so_far = me.num_red_drawn_so_far_05 me.col_label = me.col_label_05 elif me.decision_number == 6: me.num_red_drawn_so_far = me.num_red_drawn_so_far_06 me.col_label = me.col_label_06 elif me.decision_number == 7: me.num_red_drawn_so_far = me.num_red_drawn_so_far_07 me.col_label = me.col_label_07 elif me.decision_number == 8: me.num_red_drawn_so_far = me.num_red_drawn_so_far_08 me.col_label = me.col_label_08 elif me.decision_number == 9: me.num_red_drawn_so_far = me.num_red_drawn_so_far_09 me.col_label = me.col_label_09 elif me.decision_number == 10: me.num_red_drawn_so_far = me.num_red_drawn_so_far_10 me.col_label = me.col_label_10 elif me.decision_number == 11: me.num_red_drawn_so_far = me.num_red_drawn_so_far_11 me.col_label = me.col_label_11 elif me.decision_number == 12: me.num_red_drawn_so_far = me.num_red_drawn_so_far_12 me.col_label = me.col_label_12 elif me.decision_number == 13: me.num_red_drawn_so_far = me.num_red_drawn_so_far_13 me.col_label = me.col_label_13 elif me.decision_number == 14: me.num_red_drawn_so_far = me.num_red_drawn_so_far_14 me.col_label = me.col_label_14 elif me.decision_number == 15: me.num_red_drawn_so_far = me.num_red_drawn_so_far_15 me.col_label = me.col_label_15 elif me.decision_number == 16: me.num_red_drawn_so_far = me.num_red_drawn_so_far_16 me.col_label = me.col_label_16 elif me.decision_number == 17: me.num_red_drawn_so_far = me.num_red_drawn_so_far_17 me.col_label = me.col_label_17 elif me.decision_number == 18: me.num_red_drawn_so_far = me.num_red_drawn_so_far_18 me.col_label = me.col_label_18 elif me.decision_number == 19: me.num_red_drawn_so_far = me.num_red_drawn_so_far_19 me.col_label = me.col_label_19 elif me.decision_number == 20: me.num_red_drawn_so_far = me.num_red_drawn_so_far_20 me.col_label = me.col_label_20 elif me.decision_number == 21: me.num_red_drawn_so_far = me.num_red_drawn_so_far_21 me.col_label = me.col_label_21 elif me.decision_number == 22: me.num_red_drawn_so_far = me.num_red_drawn_so_far_22 me.col_label = me.col_label_22 elif me.decision_number == 23: me.num_red_drawn_so_far = me.num_red_drawn_so_far_23 me.col_label = me.col_label_23 elif me.decision_number == 24: me.num_red_drawn_so_far = me.num_red_drawn_so_far_24 me.col_label = me.col_label_24 elif me.decision_number == 25: me.num_red_drawn_so_far = me.num_red_drawn_so_far_25 me.col_label = me.col_label_25 elif me.decision_number == 26: me.num_red_drawn_so_far = me.num_red_drawn_so_far_26 me.col_label = me.col_label_26 elif me.decision_number == 27: me.num_red_drawn_so_far = me.num_red_drawn_so_far_27 me.col_label = me.col_label_27 elif me.decision_number == 28: me.num_red_drawn_so_far = me.num_red_drawn_so_far_28 me.col_label = me.col_label_28 elif me.decision_number == 29: me.num_red_drawn_so_far = me.num_red_drawn_so_far_29 me.col_label = me.col_label_29 elif me.decision_number == 30: me.num_red_drawn_so_far = me.num_red_drawn_so_far_30 me.col_label = me.col_label_30 return dict(ball_colors=[me.col_label]) form_model = 'player' form_fields = ['judgment_call_threshold'] class b1(Page): def is_displayed(self): return self.player.judgment_call_yes != 1 return self.player.round_number == self.player.round_number <= Constants.num_rounds def vars_for_template(self): me = self.player # me.decision_number = me.decision_number + 1 # me.num_balls_drawn = me.num_balls_drawn + 1 # me.hide = "hidden" if me.decision_number == 1: me.divclass = "div1" me.divclass2 = "div2" else: me.divclass = "div2" me.divclass2 = "div1" if me.decision_number == 1: me.num_red_drawn_so_far = me.num_red_drawn_so_far_01 elif me.decision_number == 2: me.num_red_drawn_so_far = me.num_red_drawn_so_far_02 me.col_label = me.col_label_02 elif me.decision_number == 3: me.num_red_drawn_so_far = me.num_red_drawn_so_far_03 me.col_label = me.col_label_03 elif me.decision_number == 4: me.num_red_drawn_so_far = me.num_red_drawn_so_far_04 me.col_label = me.col_label_04 elif me.decision_number == 5: me.num_red_drawn_so_far = me.num_red_drawn_so_far_05 me.col_label = me.col_label_05 elif me.decision_number == 6: me.num_red_drawn_so_far = me.num_red_drawn_so_far_06 me.col_label = me.col_label_06 elif me.decision_number == 7: me.num_red_drawn_so_far = me.num_red_drawn_so_far_07 me.col_label = me.col_label_07 elif me.decision_number == 8: me.num_red_drawn_so_far = me.num_red_drawn_so_far_08 me.col_label = me.col_label_08 elif me.decision_number == 9: me.num_red_drawn_so_far = me.num_red_drawn_so_far_09 me.col_label = me.col_label_09 elif me.decision_number == 10: me.num_red_drawn_so_far = me.num_red_drawn_so_far_10 me.col_label = me.col_label_10 elif me.decision_number == 11: me.num_red_drawn_so_far = me.num_red_drawn_so_far_11 me.col_label = me.col_label_11 elif me.decision_number == 12: me.num_red_drawn_so_far = me.num_red_drawn_so_far_12 me.col_label = me.col_label_12 elif me.decision_number == 13: me.num_red_drawn_so_far = me.num_red_drawn_so_far_13 me.col_label = me.col_label_13 elif me.decision_number == 14: me.num_red_drawn_so_far = me.num_red_drawn_so_far_14 me.col_label = me.col_label_14 elif me.decision_number == 15: me.num_red_drawn_so_far = me.num_red_drawn_so_far_15 me.col_label = me.col_label_15 elif me.decision_number == 16: me.num_red_drawn_so_far = me.num_red_drawn_so_far_16 me.col_label = me.col_label_16 elif me.decision_number == 17: me.num_red_drawn_so_far = me.num_red_drawn_so_far_17 me.col_label = me.col_label_17 elif me.decision_number == 18: me.num_red_drawn_so_far = me.num_red_drawn_so_far_18 me.col_label = me.col_label_18 elif me.decision_number == 19: me.num_red_drawn_so_far = me.num_red_drawn_so_far_19 me.col_label = me.col_label_19 elif me.decision_number == 20: me.num_red_drawn_so_far = me.num_red_drawn_so_far_20 me.col_label = me.col_label_20 elif me.decision_number == 21: me.num_red_drawn_so_far = me.num_red_drawn_so_far_21 me.col_label = me.col_label_21 elif me.decision_number == 22: me.num_red_drawn_so_far = me.num_red_drawn_so_far_22 me.col_label = me.col_label_22 elif me.decision_number == 23: me.num_red_drawn_so_far = me.num_red_drawn_so_far_23 me.col_label = me.col_label_23 elif me.decision_number == 24: me.num_red_drawn_so_far = me.num_red_drawn_so_far_24 me.col_label = me.col_label_24 elif me.decision_number == 25: me.num_red_drawn_so_far = me.num_red_drawn_so_far_25 me.col_label = me.col_label_25 elif me.decision_number == 26: me.num_red_drawn_so_far = me.num_red_drawn_so_far_26 me.col_label = me.col_label_26 elif me.decision_number == 27: me.num_red_drawn_so_far = me.num_red_drawn_so_far_27 me.col_label = me.col_label_27 elif me.decision_number == 28: me.num_red_drawn_so_far = me.num_red_drawn_so_far_28 me.col_label = me.col_label_28 elif me.decision_number == 29: me.num_red_drawn_so_far = me.num_red_drawn_so_far_29 me.col_label = me.col_label_29 elif me.decision_number == 30: me.num_red_drawn_so_far = me.num_red_drawn_so_far_30 me.col_label = me.col_label_30 return dict(ball_colors=[me.col_label]) form_model = 'player' def get_form_fields(self): me = self.player if me.decision_number == 1: return ['b_01_01','b_02_01','b_03_01'] #else: # return ['b_01_02'] elif me.decision_number == 2: return ['b_01_02','b_02_02','b_03_02'] elif me.decision_number == 3: return ['b_01_03','b_02_03','b_03_03'] elif me.decision_number == 4: return ['b_01_04','b_02_04','b_03_04'] elif me.decision_number == 5: return ['b_01_05','b_02_05','b_03_05'] elif me.decision_number == 6: return ['b_01_06','b_02_06','b_03_06'] elif me.decision_number == 7: return ['b_01_07','b_02_07','b_03_07'] elif me.decision_number == 8: return ['b_01_08','b_02_08','b_03_08'] elif me.decision_number == 9: return ['b_01_09','b_02_09','b_03_09'] elif me.decision_number == 10: return ['b_01_10','b_02_10','b_03_10'] elif me.decision_number == 11: return ['b_01_11','b_02_11','b_03_11'] elif me.decision_number == 12: return ['b_01_12','b_02_12','b_03_12'] elif me.decision_number == 13: return ['b_01_13','b_02_13','b_03_13'] elif me.decision_number == 14: return ['b_01_14','b_02_14','b_03_14'] elif me.decision_number == 15: return ['b_01_15','b_02_15','b_03_15'] elif me.decision_number == 16: return ['b_01_16','b_02_16','b_03_16'] elif me.decision_number == 17: return ['b_01_17','b_02_17','b_03_17'] elif me.decision_number == 18: return ['b_01_18','b_02_18','b_03_18'] elif me.decision_number == 19: return ['b_01_19','b_02_19','b_03_19'] elif me.decision_number == 20: return ['b_01_20', 'b_02_20', 'b_03_20'] elif me.decision_number == 21: return ['b_01_21', 'b_02_21', 'b_03_21'] elif me.decision_number == 22: return ['b_01_22', 'b_02_22', 'b_03_22'] elif me.decision_number == 23: return ['b_01_23', 'b_02_23', 'b_03_23'] elif me.decision_number == 24: return ['b_01_24', 'b_02_24', 'b_03_24'] elif me.decision_number == 25: return ['b_01_25', 'b_02_25', 'b_03_25'] elif me.decision_number == 26: return ['b_01_26', 'b_02_26', 'b_03_26'] elif me.decision_number == 27: return ['b_01_27', 'b_02_27', 'b_03_27'] elif me.decision_number == 28: return ['b_01_28', 'b_02_28', 'b_03_28'] elif me.decision_number == 29: return ['b_01_29', 'b_02_29', 'b_03_29'] elif me.decision_number == 30: return ['b_01_30', 'b_02_30', 'b_03_30'] class b2(Page): def is_displayed(self): return self.player.judgment_call_yes != 1 def vars_for_template(self): me = self.player # me.decision_number = me.decision_number + 1 # me.num_balls_drawn = me.num_balls_drawn + 1 # me.hide = "hidden" if me.decision_number == 1: me.divclass = "div1" else: me.divclass = "div2" if me.decision_number == 1: me.num_red_drawn_so_far = me.num_red_drawn_so_far_01 elif me.decision_number == 2: me.num_red_drawn_so_far = me.num_red_drawn_so_far_02 me.col_label = me.col_label_02 elif me.decision_number == 3: me.num_red_drawn_so_far = me.num_red_drawn_so_far_03 me.col_label = me.col_label_03 elif me.decision_number == 4: me.num_red_drawn_so_far = me.num_red_drawn_so_far_04 me.col_label = me.col_label_04 elif me.decision_number == 5: me.num_red_drawn_so_far = me.num_red_drawn_so_far_05 me.col_label = me.col_label_05 elif me.decision_number == 6: me.num_red_drawn_so_far = me.num_red_drawn_so_far_06 me.col_label = me.col_label_06 elif me.decision_number == 7: me.num_red_drawn_so_far = me.num_red_drawn_so_far_07 me.col_label = me.col_label_07 elif me.decision_number == 8: me.num_red_drawn_so_far = me.num_red_drawn_so_far_08 me.col_label = me.col_label_08 elif me.decision_number == 9: me.num_red_drawn_so_far = me.num_red_drawn_so_far_09 me.col_label = me.col_label_09 elif me.decision_number == 10: me.num_red_drawn_so_far = me.num_red_drawn_so_far_10 me.col_label = me.col_label_10 elif me.decision_number == 11: me.num_red_drawn_so_far = me.num_red_drawn_so_far_11 me.col_label = me.col_label_11 elif me.decision_number == 12: me.num_red_drawn_so_far = me.num_red_drawn_so_far_12 me.col_label = me.col_label_12 elif me.decision_number == 13: me.num_red_drawn_so_far = me.num_red_drawn_so_far_13 me.col_label = me.col_label_13 elif me.decision_number == 14: me.num_red_drawn_so_far = me.num_red_drawn_so_far_14 me.col_label = me.col_label_14 elif me.decision_number == 15: me.num_red_drawn_so_far = me.num_red_drawn_so_far_15 me.col_label = me.col_label_15 elif me.decision_number == 16: me.num_red_drawn_so_far = me.num_red_drawn_so_far_16 me.col_label = me.col_label_16 elif me.decision_number == 17: me.num_red_drawn_so_far = me.num_red_drawn_so_far_17 me.col_label = me.col_label_17 elif me.decision_number == 18: me.num_red_drawn_so_far = me.num_red_drawn_so_far_18 me.col_label = me.col_label_18 elif me.decision_number == 19: me.num_red_drawn_so_far = me.num_red_drawn_so_far_19 me.col_label = me.col_label_19 elif me.decision_number == 20: me.num_red_drawn_so_far = me.num_red_drawn_so_far_20 me.col_label = me.col_label_20 elif me.decision_number == 21: me.num_red_drawn_so_far = me.num_red_drawn_so_far_21 me.col_label = me.col_label_21 elif me.decision_number == 22: me.num_red_drawn_so_far = me.num_red_drawn_so_far_22 me.col_label = me.col_label_22 elif me.decision_number == 23: me.num_red_drawn_so_far = me.num_red_drawn_so_far_23 me.col_label = me.col_label_23 elif me.decision_number == 24: me.num_red_drawn_so_far = me.num_red_drawn_so_far_24 me.col_label = me.col_label_24 elif me.decision_number == 25: me.num_red_drawn_so_far = me.num_red_drawn_so_far_25 me.col_label = me.col_label_25 elif me.decision_number == 26: me.num_red_drawn_so_far = me.num_red_drawn_so_far_26 me.col_label = me.col_label_26 elif me.decision_number == 27: me.num_red_drawn_so_far = me.num_red_drawn_so_far_27 me.col_label = me.col_label_27 elif me.decision_number == 28: me.num_red_drawn_so_far = me.num_red_drawn_so_far_28 me.col_label = me.col_label_28 elif me.decision_number == 29: me.num_red_drawn_so_far = me.num_red_drawn_so_far_29 me.col_label = me.col_label_29 elif me.decision_number == 30: me.num_red_drawn_so_far = me.num_red_drawn_so_far_30 me.col_label = me.col_label_30 return dict(ball_colors=[me.col_label]) form_model = 'player' def get_form_fields(self): me = self.player if me.decision_number == 1: return ['b_02_01'] elif me.decision_number == 2: return ['b_02_02'] elif me.decision_number == 3: return ['b_02_03'] elif me.decision_number == 4: return ['b_02_04'] elif me.decision_number == 5: return ['b_02_05'] elif me.decision_number == 6: return ['b_02_06'] elif me.decision_number == 7: return ['b_02_07'] elif me.decision_number == 8: return ['b_02_08'] elif me.decision_number == 9: return ['b_02_09'] elif me.decision_number == 10: return ['b_02_10'] elif me.decision_number == 11: return ['b_02_11'] elif me.decision_number == 12: return ['b_02_12'] elif me.decision_number == 13: return ['b_02_13'] elif me.decision_number == 14: return ['b_02_14'] elif me.decision_number == 15: return ['b_02_15'] elif me.decision_number == 16: return ['b_02_16'] elif me.decision_number == 17: return ['b_02_17'] elif me.decision_number == 18: return ['b_02_18'] elif me.decision_number == 19: return ['b_02_19'] elif me.decision_number == 20: return ['b_02_20'] class b3(Page): def is_displayed(self): return self.player.judgment_call_yes != 1 def vars_for_template(self): me = self.player # me.decision_number = me.decision_number + 1 # me.num_balls_drawn = me.num_balls_drawn + 1 # me.hide = "hidden" if me.decision_number == 1: me.divclass = "div1" else: me.divclass = "div2" if me.decision_number == 1: me.num_red_drawn_so_far = me.num_red_drawn_so_far_01 elif me.decision_number == 2: me.num_red_drawn_so_far = me.num_red_drawn_so_far_02 me.col_label = me.col_label_02 elif me.decision_number == 3: me.num_red_drawn_so_far = me.num_red_drawn_so_far_03 me.col_label = me.col_label_03 elif me.decision_number == 4: me.num_red_drawn_so_far = me.num_red_drawn_so_far_04 me.col_label = me.col_label_04 elif me.decision_number == 5: me.num_red_drawn_so_far = me.num_red_drawn_so_far_05 me.col_label = me.col_label_05 elif me.decision_number == 6: me.num_red_drawn_so_far = me.num_red_drawn_so_far_06 me.col_label = me.col_label_06 elif me.decision_number == 7: me.num_red_drawn_so_far = me.num_red_drawn_so_far_07 me.col_label = me.col_label_07 elif me.decision_number == 8: me.num_red_drawn_so_far = me.num_red_drawn_so_far_08 me.col_label = me.col_label_08 elif me.decision_number == 9: me.num_red_drawn_so_far = me.num_red_drawn_so_far_09 me.col_label = me.col_label_09 elif me.decision_number == 10: me.num_red_drawn_so_far = me.num_red_drawn_so_far_10 me.col_label = me.col_label_10 elif me.decision_number == 11: me.num_red_drawn_so_far = me.num_red_drawn_so_far_11 me.col_label = me.col_label_11 elif me.decision_number == 12: me.num_red_drawn_so_far = me.num_red_drawn_so_far_12 me.col_label = me.col_label_12 elif me.decision_number == 13: me.num_red_drawn_so_far = me.num_red_drawn_so_far_13 me.col_label = me.col_label_13 elif me.decision_number == 14: me.num_red_drawn_so_far = me.num_red_drawn_so_far_14 me.col_label = me.col_label_14 elif me.decision_number == 15: me.num_red_drawn_so_far = me.num_red_drawn_so_far_15 me.col_label = me.col_label_15 elif me.decision_number == 16: me.num_red_drawn_so_far = me.num_red_drawn_so_far_16 me.col_label = me.col_label_16 elif me.decision_number == 17: me.num_red_drawn_so_far = me.num_red_drawn_so_far_17 me.col_label = me.col_label_17 elif me.decision_number == 18: me.num_red_drawn_so_far = me.num_red_drawn_so_far_18 me.col_label = me.col_label_18 elif me.decision_number == 19: me.num_red_drawn_so_far = me.num_red_drawn_so_far_19 me.col_label = me.col_label_19 elif me.decision_number == 20: me.num_red_drawn_so_far = me.num_red_drawn_so_far_20 me.col_label = me.col_label_20 elif me.decision_number == 21: me.num_red_drawn_so_far = me.num_red_drawn_so_far_21 me.col_label = me.col_label_21 elif me.decision_number == 22: me.num_red_drawn_so_far = me.num_red_drawn_so_far_22 me.col_label = me.col_label_22 elif me.decision_number == 23: me.num_red_drawn_so_far = me.num_red_drawn_so_far_23 me.col_label = me.col_label_23 elif me.decision_number == 24: me.num_red_drawn_so_far = me.num_red_drawn_so_far_24 me.col_label = me.col_label_24 elif me.decision_number == 25: me.num_red_drawn_so_far = me.num_red_drawn_so_far_25 me.col_label = me.col_label_25 elif me.decision_number == 26: me.num_red_drawn_so_far = me.num_red_drawn_so_far_26 me.col_label = me.col_label_26 elif me.decision_number == 27: me.num_red_drawn_so_far = me.num_red_drawn_so_far_27 me.col_label = me.col_label_27 elif me.decision_number == 28: me.num_red_drawn_so_far = me.num_red_drawn_so_far_28 me.col_label = me.col_label_28 elif me.decision_number == 29: me.num_red_drawn_so_far = me.num_red_drawn_so_far_29 me.col_label = me.col_label_29 elif me.decision_number == 30: me.num_red_drawn_so_far = me.num_red_drawn_so_far_30 me.col_label = me.col_label_30 return dict(ball_colors=[me.col_label]) form_model = 'player' def get_form_fields(self): me = self.player if me.decision_number == 1: return ['b_03_01'] elif me.decision_number == 2: return ['b_03_02'] elif me.decision_number == 3: return ['b_03_03'] elif me.decision_number == 4: return ['b_03_04'] elif me.decision_number == 5: return ['b_03_05'] elif me.decision_number == 6: return ['b_03_06'] elif me.decision_number == 7: return ['b_03_07'] elif me.decision_number == 8: return ['b_03_08'] elif me.decision_number == 9: return ['b_03_09'] elif me.decision_number == 10: return ['b_03_10'] elif me.decision_number == 11: return ['b_03_11'] elif me.decision_number == 12: return ['b_03_12'] elif me.decision_number == 13: return ['b_03_13'] elif me.decision_number == 14: return ['b_03_14'] elif me.decision_number == 15: return ['b_03_15'] elif me.decision_number == 16: return ['b_03_16'] elif me.decision_number == 17: return ['b_03_17'] elif me.decision_number == 18: return ['b_03_18'] elif me.decision_number == 19: return ['b_03_19'] elif me.decision_number == 20: return ['b_03_20'] class btest(Page): form_model = 'player' def get_form_fields(self): if self.player.decision_number == 0: return ['b_01_01_test'] else: return ['b_01_02_test', 'b_01_03'] class dec_01(Page): def is_displayed(self): return self.round_number == Constants.NUM_ROUNDS def vars_for_template(self): me = self.player me.decision_number = me.decision_number + 1 #if me.stop_01 == 1: # me.judgment_call_yes = 1 #col = 'red' #return dict(ball_colors=[me.col_label_01])# + ['blue'] * 3+ ['red'] * 2) # etc form_model = 'player' form_fields = ['judgment_call_yes'] class next(Page): def is_displayed(self): return self.player.judgment_call_yes != 1 return self.player.round_number == self.player.round_number <= Constants.num_rounds def vars_for_template(self): me = self.player me.decision_number = me.decision_number + 1 me.num_balls_drawn = me.num_balls_drawn + 1 me.potential_earnings = me.potential_earnings - Constants.cost if me.judgment_call_yes != 1: me.judgment_call_yes = 99 #elif me.judgment_call_yes==1: class results_next(Page): def is_displayed(self): return self.player.round_number == self.player.round_number <= Constants.num_rounds def vars_for_template(self): me = self.player me.payment_rand = random.randint(0, me.decision_number) #me.decision_type_rand = random.randint(1, 4) me.decision_type_rand = 1 if me.decision_type_rand == 1: if me.judgment_call_threshold == 0 & me.urn < Constants.threshold: me.game_earnings = me.potential_earnings elif me.judgment_call_threshold == 1 & me.urn >= Constants.threshold: me.game_earnings = me.potential_earnings else: me.game_earnings = 0 class results_dec(Page): #def is_displayed(self): #return self.player.judgment_call_yes != 1 #return self.player.round_number == self.player.round_number <= Constants.num_rounds def vars_for_template(self): me = self.player # me.round_number = me.round_number+1 class dec_02(Page): def is_displayed(self): return self.player.judgment_call_yes == 0 def vars_for_template(self): me = self.player #col =col = 'red' return dict(ball_colors=[me.col_label_01]+[me.col_label_02])# + ['blue'] * 3+ ['red'] * 2) # etc form_model = 'player' form_fields = ['stop_02'] class b01(Page): form_model = 'player' form_fields = ['b_01_00'] page_sequence = [ #captcha, #info_sheet, instructions_page, first_next_page, b1, dec, next, # I did this sequence a total of 30 times. Not sure if that's correct b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, b1, dec, next, jc, uic, dec_description, results_next, results_dec, #student_questions, #thankyou, ]