from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class MyPage(Page): pass class ResultsWaitPage(WaitPage): pass class Results(Page): pass class Introduction(Page): def is_displayed(self): return self.round_number == self.participant.vars['task_rounds']['Introduction'] def before_next_page(self): self.participant.vars['page_num'] = 1 + self.participant.vars['page_num'] def vars_for_template(self): return { 'current_task': self.participant.vars['page_num'] } # class task1(Page): # form_model = 'player' # form_fields = ['task1'] # class task_3_5_instr(Page): # pass # class task3(Page): # form_model = 'player' # form_fields = ['task3_roll56','task3_roll1234'] # class task4(Page): # form_model = 'player' # form_fields = ['task4_roll56','task4_roll1234'] # class task5(Page): # form_model = 'player' # form_fields = ['task5_roll246','task5_roll135'] # class determine_payoff(Page): # form_model = 'player' # form_fields = ['payout'] class ID(Page): form_model = 'player' form_fields = ['prolific_id'] def is_displayed(self): return self.round_number == self.participant.vars['task_rounds']['ID'] def vars_for_template(self): return { 'current_task': self.participant.vars['page_num'] } class SliderInstructions(Page): def is_displayed(self): return self.round_number == self.participant.vars['task_rounds']['SliderInstructions'] def before_next_page(self): self.participant.vars['page_num'] = 1 + self.participant.vars['page_num'] def vars_for_template(self): return { 'current_task': self.participant.vars['page_num'] } class Slider1(Page): form_model = 'player' form_fields = ['slider1_56'] def is_displayed(self): return self.round_number == self.participant.vars['task_rounds']['Slider1'] def before_next_page(self): self.participant.vars['page_num'] = 1 + self.participant.vars['page_num'] def vars_for_template(self): return { 'current_task': self.participant.vars['page_num'], 'round': self.round_number } class Slider2(Page): form_model = 'player' form_fields = ['slider2_12345'] def is_displayed(self): return self.round_number == self.participant.vars['task_rounds']['Slider2'] def before_next_page(self): self.participant.vars['page_num'] = 1 + self.participant.vars['page_num'] def vars_for_template(self): return { 'current_task': self.participant.vars['page_num'], 'round': self.round_number } class Slider3(Page): form_model = 'player' form_fields = ['slider3_246'] def is_displayed(self): return self.round_number == self.participant.vars['task_rounds']['Slider3'] def before_next_page(self): self.participant.vars['page_num'] = 1 + self.participant.vars['page_num'] def vars_for_template(self): return { 'current_task': self.participant.vars['page_num'], 'round': self.round_number } class Slider4(Page): form_model = 'player' form_fields = ['slider4_135'] def is_displayed(self): return self.round_number == self.participant.vars['task_rounds']['Slider4'] def before_next_page(self): self.participant.vars['page_num'] = 1 + self.participant.vars['page_num'] def vars_for_template(self): return { 'current_task': self.participant.vars['page_num'], 'round': self.round_number } class LotteryInstructions(Page): def is_displayed(self): return self.round_number == self.participant.vars['task_rounds']['LotteryInstructions'] def before_next_page(self): self.participant.vars['page_num'] = 1 + self.participant.vars['page_num'] def vars_for_template(self): return { 'current_task': self.participant.vars['page_num'] } class Lottery1(Page): form_model = 'player' form_fields = ['lottery1'] def is_displayed(self): return self.round_number == self.participant.vars['task_rounds']['Lottery1'] def before_next_page(self): self.participant.vars['page_num'] = 1 + self.participant.vars['page_num'] def vars_for_template(self): return { 'current_task': self.participant.vars['page_num'], 'order': self.participant.vars['lottery1order'] } class Lottery2(Page): form_model = 'player' form_fields = ['lottery2'] def is_displayed(self): return self.round_number == self.participant.vars['task_rounds']['Lottery2'] def before_next_page(self): self.participant.vars['page_num'] = 1 + self.participant.vars['page_num'] def vars_for_template(self): return { 'current_task': self.participant.vars['page_num'], 'order': self.participant.vars['lottery2order'] } class FoldedInstructions(Page): def is_displayed(self): return self.round_number == self.participant.vars['task_rounds']['FoldedInstructions'] def before_next_page(self): self.participant.vars['page_num'] = 1 + self.participant.vars['page_num'] def vars_for_template(self): return { 'current_task': self.participant.vars['page_num'] } class Folded1(Page): form_model = 'player' form_fields = ['folded1_1234','folded1_56'] def is_displayed(self): return self.round_number == self.participant.vars['task_rounds']['Folded1'] def before_next_page(self): self.participant.vars['page_num'] = 1 + self.participant.vars['page_num'] def vars_for_template(self): return { 'current_task': self.participant.vars['page_num'] } class Folded2(Page): form_model = 'player' form_fields = ['folded2_1','folded2_23456'] def is_displayed(self): return self.round_number == self.participant.vars['task_rounds']['Folded2'] def before_next_page(self): self.participant.vars['page_num'] = 1 + self.participant.vars['page_num'] def vars_for_template(self): return { 'current_task': self.participant.vars['page_num'] } class Folded3(Page): form_model = 'player' form_fields = ['folded3_246','folded3_135'] def is_displayed(self): return self.round_number == self.participant.vars['task_rounds']['Folded3'] def before_next_page(self): self.participant.vars['page_num'] = 1 + self.participant.vars['page_num'] def vars_for_template(self): return { 'current_task': self.participant.vars['page_num'] } class FullListInstructions(Page): def is_displayed(self): return self.round_number == self.participant.vars['task_rounds']['FullListInstructions'] def before_next_page(self): self.participant.vars['page_num'] = 1 + self.participant.vars['page_num'] def vars_for_template(self): return { 'current_task': self.participant.vars['page_num'] } class Full1(Page): form_model = 'player' form_fields = ['full1_56'] def is_displayed(self): return self.round_number == self.participant.vars['task_rounds']['Full1'] def before_next_page(self): self.participant.vars['page_num'] = 1 + self.participant.vars['page_num'] def vars_for_template(self): return { 'current_task': self.participant.vars['page_num'], 'round': self.round_number } class Full2(Page): form_model = 'player' form_fields = ['full2_12345'] def is_displayed(self): return self.round_number == self.participant.vars['task_rounds']['Full2'] def before_next_page(self): self.participant.vars['page_num'] = 1 + self.participant.vars['page_num'] def vars_for_template(self): return { 'current_task': self.participant.vars['page_num'], 'round': self.round_number } class Full3(Page): form_model = 'player' form_fields = ['full3_246'] def is_displayed(self): return self.round_number == self.participant.vars['task_rounds']['Full3'] def before_next_page(self): self.participant.vars['page_num'] = 1 + self.participant.vars['page_num'] def vars_for_template(self): return { 'current_task': self.participant.vars['page_num'], 'round': self.round_number } class Full4(Page): form_model = 'player' form_fields = ['full4_135'] def is_displayed(self): return self.round_number == self.participant.vars['task_rounds']['Full4'] def before_next_page(self): self.participant.vars['page_num'] = 1 + self.participant.vars['page_num'] def vars_for_template(self): return { 'current_task': self.participant.vars['page_num'], 'round': self.round_number } class Payment(Page): form_model = 'player' form_fields = ['payment','randnumA','randnumB','payment_task'] def is_displayed(self): return self.round_number == self.participant.vars['task_rounds']['Payment'] def before_next_page(self): self.participant.vars['page_num'] = 1 + self.participant.vars['page_num'] def vars_for_template(self): if "T1" in self.participant.vars['treatment']: return { 'current_task': self.participant.vars['page_num'], 'lottery1': self.player.in_round(self.participant.vars['task_rounds']['Lottery1']).lottery1, 'lottery2': self.player.in_round(self.participant.vars['task_rounds']['Lottery2']).lottery2, 'full1_56': self.player.in_round(self.participant.vars['task_rounds']['Full1']).full1_56, 'full2_12345': 0, 'full3_246': 0, 'full4_135': self.player.in_round(self.participant.vars['task_rounds']['Full4']).full4_135, 'slider1': 0, 'slider2': self.player.in_round(self.participant.vars['task_rounds']['Slider2']).slider2_12345, 'slider3': self.player.in_round(self.participant.vars['task_rounds']['Slider3']).slider3_246, 'slider4': 0, 'treatment': self.participant.vars['treatment'], 'lottery1round':self.participant.vars['task_rounds']['Lottery1'], 'lottery2round':self.participant.vars['task_rounds']['Lottery2'], 'Full1round': self.participant.vars['task_rounds']['Full1'], 'Full2round': self.participant.vars['task_rounds']['Full2'], 'Full3round': self.participant.vars['task_rounds']['Full3'], 'Full4round': self.participant.vars['task_rounds']['Full4'], 'slider1round': self.participant.vars['task_rounds']['Slider1'], 'slider2round': self.participant.vars['task_rounds']['Slider2'], 'slider3round': self.participant.vars['task_rounds']['Slider3'], 'slider4round': self.participant.vars['task_rounds']['Slider4'], } if "T2" in self.participant.vars['treatment']: return { 'current_task': self.participant.vars['page_num'], 'lottery1': self.player.in_round(self.participant.vars['task_rounds']['Lottery1']).lottery1, 'lottery2': self.player.in_round(self.participant.vars['task_rounds']['Lottery2']).lottery2, 'full1_56': 0, 'full2_12345': self.player.in_round(self.participant.vars['task_rounds']['Full2']).full2_12345, 'full3_246': 0, 'full4_135': self.player.in_round(self.participant.vars['task_rounds']['Full4']).full4_135, 'slider1': self.player.in_round(self.participant.vars['task_rounds']['Slider1']).slider1_56, 'slider2': 0, 'slider3': self.player.in_round(self.participant.vars['task_rounds']['Slider3']).slider3_246, 'slider4': 0, 'treatment': self.participant.vars['treatment'], 'lottery1round':self.participant.vars['task_rounds']['Lottery1'], 'lottery2round':self.participant.vars['task_rounds']['Lottery2'], 'Full1round': self.participant.vars['task_rounds']['Full1'], 'Full2round': self.participant.vars['task_rounds']['Full2'], 'Full3round': self.participant.vars['task_rounds']['Full3'], 'Full4round': self.participant.vars['task_rounds']['Full4'], 'slider1round': self.participant.vars['task_rounds']['Slider1'], 'slider2round': self.participant.vars['task_rounds']['Slider2'], 'slider3round': self.participant.vars['task_rounds']['Slider3'], 'slider4round': self.participant.vars['task_rounds']['Slider4'], } if "T3" in self.participant.vars['treatment']: return { 'current_task': self.participant.vars['page_num'], 'lottery1': self.player.in_round(self.participant.vars['task_rounds']['Lottery1']).lottery1, 'lottery2': self.player.in_round(self.participant.vars['task_rounds']['Lottery2']).lottery2, 'full1_56': self.player.in_round(self.participant.vars['task_rounds']['Full1']).full1_56, 'full2_12345': 0, 'full3_246': self.player.in_round(self.participant.vars['task_rounds']['Full3']).full3_246, 'full4_135': 0, 'slider1': 0, 'slider2': self.player.in_round(self.participant.vars['task_rounds']['Slider2']).slider2_12345, 'slider3': 0, 'slider4': self.player.in_round(self.participant.vars['task_rounds']['Slider4']).slider4_135, 'treatment': self.participant.vars['treatment'], 'lottery1round':self.participant.vars['task_rounds']['Lottery1'], 'lottery2round':self.participant.vars['task_rounds']['Lottery2'], 'Full1round': self.participant.vars['task_rounds']['Full1'], 'Full2round': self.participant.vars['task_rounds']['Full2'], 'Full3round': self.participant.vars['task_rounds']['Full3'], 'Full4round': self.participant.vars['task_rounds']['Full4'], 'slider1round': self.participant.vars['task_rounds']['Slider1'], 'slider2round': self.participant.vars['task_rounds']['Slider2'], 'slider3round': self.participant.vars['task_rounds']['Slider3'], 'slider4round': self.participant.vars['task_rounds']['Slider4'], } if "T4" in self.participant.vars['treatment']: return { 'current_task': self.participant.vars['page_num'], 'lottery1': self.player.in_round(self.participant.vars['task_rounds']['Lottery1']).lottery1, 'lottery2': self.player.in_round(self.participant.vars['task_rounds']['Lottery2']).lottery2, 'full1_56': 0, 'full2_12345': self.player.in_round(self.participant.vars['task_rounds']['Full2']).full2_12345, 'full3_246': self.player.in_round(self.participant.vars['task_rounds']['Full3']).full3_246, 'full4_135': 0, 'slider1': self.player.in_round(self.participant.vars['task_rounds']['Slider1']).slider1_56, 'slider2': 0, 'slider3': 0, 'slider4': self.player.in_round(self.participant.vars['task_rounds']['Slider4']).slider4_135, 'treatment': self.participant.vars['treatment'], 'lottery1round':self.participant.vars['task_rounds']['Lottery1'], 'lottery2round':self.participant.vars['task_rounds']['Lottery2'], 'Full1round': self.participant.vars['task_rounds']['Full1'], 'Full2round': self.participant.vars['task_rounds']['Full2'], 'Full3round': self.participant.vars['task_rounds']['Full3'], 'Full4round': self.participant.vars['task_rounds']['Full4'], 'slider1round': self.participant.vars['task_rounds']['Slider1'], 'slider2round': self.participant.vars['task_rounds']['Slider2'], 'slider3round': self.participant.vars['task_rounds']['Slider3'], 'slider4round': self.participant.vars['task_rounds']['Slider4'], } # return { # 'current_task': self.participant.vars['page_num'], # 'lottery1': self.player.in_round(self.participant.vars['task_rounds']['Lottery1']).lottery1, # 'lottery2': self.player.in_round(self.participant.vars['task_rounds']['Lottery2']).lottery2, # 'slider1': self.player.in_round(self.participant.vars['task_rounds']['Slider1']).slider1_56, # 'slider2': self.player.in_round(self.participant.vars['task_rounds']['Slider2']).slider2_12345, # 'slider3': self.player.in_round(self.participant.vars['task_rounds']['Slider3']).slider3_246, # 'full1_1234': self.player.in_round(self.participant.vars['task_rounds']['Full1']).full1_1234, # 'full1_56': self.player.in_round(self.participant.vars['task_rounds']['Full1']).full1_56, # 'full2_23456': self.player.in_round(self.participant.vars['task_rounds']['Full2']).full2_23456, # 'full2_1': self.player.in_round(self.participant.vars['task_rounds']['Full2']).full2_1, # 'full3_246': self.player.in_round(self.participant.vars['task_rounds']['Full3']).full3_246, # 'full3_135': self.player.in_round(self.participant.vars['task_rounds']['Full3']).full3_135, # 'folded1_1234': self.player.in_round(self.participant.vars['task_rounds']['Folded1']).folded1_1234, # 'folded1_56': self.player.in_round(self.participant.vars['task_rounds']['Folded1']).folded1_56, # 'folded2_23456': self.player.in_round(self.participant.vars['task_rounds']['Folded2']).folded2_23456, # 'folded2_1': self.player.in_round(self.participant.vars['task_rounds']['Folded2']).folded2_1, # 'folded3_246': self.player.in_round(self.participant.vars['task_rounds']['Folded3']).folded3_246, # 'folded3_135': self.player.in_round(self.participant.vars['task_rounds']['Folded3']).folded3_135, # 'treatment': self.participant.vars['treatment'] # } class Final(Page): def is_displayed(self): return self.round_number == self.participant.vars['task_rounds']['Final'] def before_next_page(self): self.participant.vars['page_num'] = 1 + self.participant.vars['page_num'] def vars_for_template(self): return { 'current_task': self.participant.vars['page_num'] } page_sequence = [ID,Introduction, LotteryInstructions,Lottery1,Lottery2, #FoldedInstructions,Folded1,Folded2,Folded3, FullListInstructions,Full1,Full2,Full3,Full4, SliderInstructions,Slider1,Slider2,Slider3,Slider4, Payment, Final] #[welcome,task1,task_3_5_instr,task3,task4,task5,determine_payoff]