from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import random class MyPage(Page): pass class Instructions(Page): pass class Results(Page): pass class Example(Page): pass class ExampleTask(Page): form_model = 'player' form_fields = ['example_task'] def vars_for_template(self): return { 'answer_range': list(range(-400, 450, 50)), #'answer_range': self.session.config['answer_range'] # 'first_order_only': self.session.config['panama_lab_experiment'], 'prize': 15, } def before_next_page(self): self.participant.vars['example_task'] = self.player.example_task class Instructions2(Page): pass class FirstOrderAbility(Page): form_model = 'player' form_fields = ['first_order_ability'] timeout_seconds = 300 def vars_for_template(self): return { 'answer_range': list(range(-50, 60, 10)), #'answer_range': self.session.config['answer_range'] # 'first_order_only': self.session.config['panama_lab_experiment'], 'prize': 15, } def before_next_page(self): self.participant.vars['first_order_ability'] = self.player.first_order_ability class FirstOrderPreferences(Page): form_model = 'player' form_fields = ['first_order_preferences'] timeout_seconds = 300 def vars_for_template(self): return { 'answer_range': list(range(-5, 6, 1)), #'answer_range': self.session.config['answer_range'] # 'first_order_only': self.session.config['panama_lab_experiment'], 'prize': 15, } def before_next_page(self): self.participant.vars['first_order_ability'] = self.player.first_order_ability class SecondOrderAbilityW(Page): form_model = 'player' form_fields = ['second_order_ability_w'] timeout_seconds = 300 def vars_for_template(self): return { 'answer_range': list(range(-50, 60, 10)), #'answer_range': self.session.config['answer_range'] # 'first_order_only': self.session.config['panama_lab_experiment'], 'prize': 15, } def before_next_page(self): self.participant.vars['second_order_ability_w'] = self.player.second_order_ability_w class SecondOrderAbilityM(Page): form_model = 'player' form_fields = ['second_order_ability_m'] timeout_seconds = 300 def vars_for_template(self): return { 'answer_range': list(range(-50, 60, 10)), #'answer_range': self.session.config['answer_range'] # 'first_order_only': self.session.config['panama_lab_experiment'], 'prize': 15, } def before_next_page(self): self.participant.vars['second_order_ability_m'] = self.player.second_order_ability_m class SecondOrderPreferencesW(Page): form_model = 'player' form_fields = ['second_order_preferences_w'] timeout_seconds = 300 def vars_for_template(self): return { 'answer_range': list(range(-5, 6, 1)), #'answer_range': self.session.config['answer_range'] # 'first_order_only': self.session.config['panama_lab_experiment'], 'prize': 15, } def before_next_page(self): self.participant.vars['second_order_preferences_w'] = self.player.second_order_preferences_w class SecondOrderPreferencesM(Page): form_model = 'player' form_fields = ['second_order_preferences_m'] timeout_seconds = 300 def vars_for_template(self): return { 'answer_range': list(range(-5, 6, 1)), #'answer_range': self.session.config['answer_range'] # 'first_order_only': self.session.config['panama_lab_experiment'], 'prize': 15, } def before_next_page(self): self.participant.vars['second_order_preferences_m'] = self.player.second_order_preferences_w class Payout(Page): form_model = 'player' form_fields = ['rand_task', 'rand_num','payout_prob','payout'] class NextActivity(Page): pass #randomize second-order tasks list2o =[SecondOrderAbilityW,SecondOrderAbilityM,SecondOrderPreferencesW,SecondOrderPreferencesM] #random.shuffle(list2o) page_sequence = [Instructions,Example,ExampleTask,Instructions2,FirstOrderAbility,NextActivity,FirstOrderPreferences,NextActivity,list2o[0],NextActivity,list2o[1],NextActivity,list2o[2],NextActivity,list2o[3],Payout]