from ._builtin import Page, WaitPage from otree.api import Currency as c, currency_range from .models import Constants import random class Trust(Page): def is_displayed(self): return self.round_number == 1 form_model = 'player' form_fields = ['trust1', 'trust2', 'trust3', 'trust4', 'trust5', 'trust6'] class JS(Page): def is_displayed(self): return self.round_number == 1 form_model = 'player' form_fields = ['jsv6', 'jsv7', 'jso6', 'jso7', 'jsb6', 'jsb7', 'jsp6', 'jsp7'] class Introduction(Page): def is_displayed(self): return self.round_number == 1 class instruction1(Page): def is_displayed(self): return self.round_number == 1 class instruction2(Page): def is_displayed(self): return self.round_number == 1 class instruction3(Page): def is_displayed(self): return self.round_number == 1 class instruction4(Page): def is_displayed(self): return self.round_number == 1 class instruction5(Page): def is_displayed(self): return self.round_number == 1 class Matching(Page): def is_displayed(self): return self.round_number == 1 timeout_seconds = 7 class Decision(Page): form_model = 'player' form_fields = ['decision'] def vars_for_template(self): me = self.player return dict( round_number=self.round_number ) class Results(Page): def vars_for_template(self): if 'treatment' == 'fif': does_bot_cooperate = random.randint(0, 1) % 2 == 0, elif 'treatment' == 'for': does_bot_cooperate = random.randint(0, 4) % 5 == 0 or random.randint(0, 4) % 5 == 1, elif 'treatment' == 'thi': does_bot_cooperate = random.randint(0, 9) % 10 == 0 or random.randint(0, 9) % 10 == 1 or random.randint(0, 9) % 10 == 2, elif 'treatment' == 'twe': does_bot_cooperate = random.randint(0, 4) % 5 == 0, else: does_bot_cooperate = random.randint(0, 9) % 10 == 0 me = self.player me.set_payoff(does_bot_cooperate) return dict( my_decision=me.decision, round_number=self.round_number, does_bot_cooperate=does_bot_cooperate, self_total_payoff=sum([me.payoff for me in me.in_all_rounds()]) + 100, bot_total_payoff=sum([me.other_payoff for me in me.in_all_rounds()]) + 100 ) class End(Page): def is_displayed(self): return self.round_number == 30 def vars_for_template(self): me = self.player return dict( self_final_payoff=sum([me.payoff for me in me.in_all_rounds()]) + 5100, self_tpoint=self.participant.payoff_plus_participation_fee() ) class Survey(Page): def is_displayed(self): return self.round_number == 30 form_model = 'player' form_fields = ['quiz1', 'quiz2', 'satisfaction2', 'concentration1', 'problem', 'concentration2', 'comment'] page_sequence = [Trust, JS, Introduction, instruction1, instruction2, instruction3, instruction4, instruction5, Matching, Decision, Results, End, Survey]