from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class P1(Page): form_model = 'player' form_fields = [] class Demo(Page): form_model = 'player' form_fields = ['gender','email','age','politic','job'] class IQ1(Page): form_model = 'player' form_fields = [] class IQ2(Page): form_model = 'player' form_fields = ['iq1'] class IQ3(Page): form_model = 'player' form_fields = ['iq2'] class IQ4(Page): form_model = 'player' form_fields = ['iq3'] class IQ5(Page): form_model = 'player' form_fields = ['iq4'] class GroupSpecificPreTextInfo(Page): form_model = 'player' def vars_for_template(self): return dict( player_role=self.player.role() ) class GroupSpecificPreTextInfo2(Page): form_model = 'player' def vars_for_template(self): return dict( player_role=self.player.role() ) class Text(Page): form_model = 'player' class Q1(Page): form_model = 'player' form_fields = ['q1'] class Q2(Page): form_model = 'player' form_fields = ['q2'] class Q3(Page): form_model = 'player' form_fields = ['q3'] class Q4(Page): form_model = 'player' form_fields = ['q4'] class Q5(Page): form_model = 'player' form_fields = ['q5'] class Q6(Page): form_model = 'player' form_fields = ['q6'] class Q7(Page): form_model = 'player' form_fields = ['q7'] class Q8(Page): form_model = 'player' form_fields = ['q8'] class Q9(Page): form_model = 'player' form_fields = ['q9'] class Q10(Page): form_model = 'player' form_fields = ['q10'] def before_next_page(self): # sets player.payment # Otherwise player is payed per correct answer questions = [self.player.q1, self.player.q2, self.player.q3, self.player.q4, self.player.q5, self.player.q6, self.player.q7, self.player.q8, self.player.q9, self.player.q10] correct = 0 for i in range(len(questions)): if questions[i] == Constants.correct_answers[i]: correct+=1 self.player.correct_answers = correct role = self.player.role() if role == Constants.group_contr_fixed: self.player.payment = Constants.fixed_reward return self.player.payment = correct * Constants.correct_question_reward class Q11(Page): form_model = 'player' form_fields = ['q11'] class Results(Page): form_model = 'player' page_sequence = [P1, IQ1, IQ2, IQ3, IQ4, IQ5, GroupSpecificPreTextInfo, Text, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10, Q11, Demo, Results]