from otree.api import * from .models import C class P1_Begin(Page): pass class P1c_ComputerNumber(Page): form_model = 'player' form_fields = ['computer_number'] def error_message(self, values): s = str(values.get('computer_number', '')).strip() if not s: return "Please enter your computer number." class P2_Endowment(Page): def vars_for_template(self): return dict(endowment=C.ENDOWMENT) class P3_Portfolios(Page): pass class P5_Choice(Page): form_model = 'player' form_fields = ['investment_choice'] def before_next_page(self): self.player.set_payoff() class P6_Demographics(Page): pass class P7_Skills(Page): form_model = 'player' form_fields = [ 'skill_1', 'skill_2', 'skill_3', 'skill_4', 'skill_5', 'skill_6' ] class P5a_Responsibility(Page): form_model = 'player' form_fields = ['responsibility'] class P9_Trust(Page): form_model = 'player' form_fields = ['trust_1', 'trust_2', 'trust_3', 'trust_4', 'trust_5', 'trust_6'] class P10_Comfort(Page): form_model = 'player' form_fields = ['comfort_1', 'comfort_2', 'comfort_3'] class P10a_Understanding(Page): form_model = 'player' form_fields = ['understand_1', 'understand_2', 'understand_3'] class P10b_ResponsibilityScale(Page): form_model = 'player' form_fields = ['age', 'sex'] class P10c_EmploymentStatus(Page): form_model = 'player' form_fields = ['employment_status', 'employment_other'] class P10d_InvestmentExperience(Page): form_model = 'player' form_fields = [ 'invested_before', 'investing_experience', 'invested_in', 'invested_in_other' ] def error_message(self, values): if not values['invested_in']: return "Please select at least one option." class P11_Result(Page): def vars_for_template(self): return dict(payoff=self.player.payoff_result) class P12_ThankYou(Page): pass page_sequence = [ P1_Begin, P1c_ComputerNumber, P2_Endowment, P3_Portfolios, P5_Choice, P5a_Responsibility, P6_Demographics, P7_Skills, P9_Trust, P10_Comfort, P10a_Understanding, P10b_ResponsibilityScale, P10c_EmploymentStatus, P10d_InvestmentExperience, P11_Result, P12_ThankYou, ]