from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Consent(Page): pass class Comprehension(Page): form_model = 'player' form_fields = ['ques1', 'ques2'] def error_message(self, values): print('values', values) if values['ques1'] != '$14' or values['ques2'] != '$15': return 'Responses Incorrect' class ResultsWaitPage1(WaitPage): def after_all_players_arrive(self): pass class DecisionPage_r1(Page): form_model = 'player' form_fields = ['decision_r1'] class ResultsWaitPage2(WaitPage): def after_all_players_arrive(self): for p in self.group.get_players(): i = p.partner_r1 p.partner_decision_r1 = p.group.get_players()[i-1].decision_r1 if p.decision_r1 == 'Option A': if p.partner_decision_r1 == 'Option A': p.payoff_r1 = p.aa_payoff_r1 elif p.partner_decision_r1 == 'Option B': p.payoff_r1 = p.ab_payoff_r1 elif p.decision_r1 == 'Option B': if p.partner_decision_r1 == 'Option A': p.payoff_r1 = p.ba_payoff_r1 elif p.partner_decision_r1 == 'Option B': p.payoff_r1 = p.bb_payoff_r1 class DecisionPage_r2(Page): form_model = 'player' form_fields = ['decision_r2'] class ResultsWaitPage3(WaitPage): def after_all_players_arrive(self): for p in self.group.get_players(): i = p.partner_r2 p.partner_decision_r2 = p.group.get_players()[i-1].decision_r2 if p.decision_r2 == 'Option A': if p.partner_decision_r2 == 'Option A': p.payoff_r2 = p.aa_payoff_r2 elif p.partner_decision_r2 == 'Option B': p.payoff_r2 = p.ab_payoff_r2 elif p.decision_r2 == 'Option B': if p.partner_decision_r2 == 'Option A': p.payoff_r2 = p.ba_payoff_r2 elif p.partner_decision_r2 == 'Option B': p.payoff_r2 = p.bb_payoff_r2 class DecisionPage_r3(Page): form_model = 'player' form_fields = ['decision_r3'] class ResultsWaitPage4(WaitPage): def after_all_players_arrive(self): for p in self.group.get_players(): i = p.partner_r3 p.partner_decision_r3 = p.group.get_players()[i-1].decision_r3 if p.decision_r3 == 'Option A': if p.partner_decision_r3 == 'Option A': p.payoff_r3 = p.aa_payoff_r3 elif p.partner_decision_r3 == 'Option B': p.payoff_r3 = p.ab_payoff_r3 elif p.decision_r3 == 'Option B': if p.partner_decision_r3 == 'Option A': p.payoff_r3 = p.ba_payoff_r3 elif p.partner_decision_r3 == 'Option B': p.payoff_r3 = p.bb_payoff_r3 class DecisionPage_r4(Page): form_model = 'player' form_fields = ['decision_r4'] class ResultsWaitPage5(WaitPage): def after_all_players_arrive(self): for p in self.group.get_players(): i = p.partner_r4 p.partner_decision_r4 = p.group.get_players()[i-1].decision_r4 if p.decision_r4 == 'Option A': if p.partner_decision_r4 == 'Option A': p.payoff_r4 = p.aa_payoff_r4 elif p.partner_decision_r4 == 'Option B': p.payoff_r4 = p.ab_payoff_r4 elif p.decision_r4 == 'Option B': if p.partner_decision_r4 == 'Option A': p.payoff_r4 = p.ba_payoff_r4 elif p.partner_decision_r4 == 'Option B': p.payoff_r4 = p.bb_payoff_r4 class Decision_Desc(Page): form_model = 'player' form_fields = ['description'] class DemoSurvey(Page): form_model = 'player' form_fields = ['age', 'gender', 'college_year', 'current_major'] class ResultsWaitPage6(WaitPage): def after_all_players_arrive(self): for p in self.group.get_players(): if p.selection_r1 == 1: p.payment_r1 = p.payoff_r1 elif p.selection_r1 == 0: p.payment_r1 = 0 if p.selection_r2 == 1: p.payment_r2 = p.payoff_r2 elif p.selection_r2 == 0: p.payment_r2 = 0 if p.selection_r3 == 1: p.payment_r3 = p.payoff_r3 elif p.selection_r3 == 0: p.payment_r3 = 0 if p.selection_r4 == 1: p.payment_r4 = p.payoff_r4 elif p.selection_r4 == 0: p.payment_r4 = 0 p.total_payment = p.participation_fee + p.payment_r1 + p.payment_r2 + p.payment_r3 + p.payment_r4 class Participation_Code(Page): pass class Payment_Info(Page): pass class ThankYou(Page): pass page_sequence = [ Consent, Comprehension, ResultsWaitPage1, DecisionPage_r1, ResultsWaitPage2, DecisionPage_r2, ResultsWaitPage3, DecisionPage_r3, ResultsWaitPage4, DecisionPage_r4, ResultsWaitPage5, Decision_Desc, DemoSurvey, ResultsWaitPage6, Participation_Code, Payment_Info, ThankYou ]