from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import random class Qualtrics(Page): def is_displayed(self): return self.round_number == 1 form_model = 'player' form_fields = ['qualtrics'] class ParticipantsWaitPage(WaitPage): wait_for_all_groups = False body_text = "他の参加者の準備ができるまで、この画面を開いたまましばらくお待ちください(他の参加者の準備ができ次第、すぐに次の画面に切り替わりますのでご注意ください)。" class Matched(Page): def is_displayed(self): return self.round_number == 1 timeout_seconds = 60 def before_next_page(self): if self.timeout_happened: self.player.skip = True class Decision_p1(Page): def is_displayed(self): return self.player.id_in_group == 1 def vars_for_template(self): return dict( round_number=self.round_number ) form_model = 'group' form_fields = ['p1_volunteer'] timeout_seconds = 90 def before_next_page(self): if self.timeout_happened: self.player.skip = True self.group.p1_volunteer = 'False' class Decision_p2(Page): def is_displayed(self): return self.player.id_in_group == 2 def vars_for_template(self): return dict( round_number=self.round_number ) form_model = 'group' form_fields = ['p2_volunteer'] timeout_seconds = 90 def before_next_page(self): if self.timeout_happened: self.player.skip = True self.group.p2_volunteer = 'False' class Decision_p3(Page): def is_displayed(self): return self.player.id_in_group == 3 def vars_for_template(self): return dict( round_number=self.round_number ) form_model = 'group' form_fields = ['p3_volunteer'] timeout_seconds = 90 def before_next_page(self): if self.timeout_happened: self.player.skip = True self.group.p3_volunteer = 'False' class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): self.group.set_payoffs() body_text = "他の参加者が選択中です。この画面を開いたまましばらくお待ちください(他の参加者の選択が終わり次第、すぐに次の画面に切り替わりますのでご注意ください)。" class Results(Page): def vars_for_template(self): me = self.player me.totalpayoff = sum([me.payoff for me in me.in_all_rounds()]) return dict( round_number=self.round_number, payoff=me.payoff, totalpayoff=me.totalpayoff ) timeout_seconds = 45 def before_next_page(self): if self.timeout_happened: self.player.skip = True class Survey(Page): def is_displayed(self): return self.round_number == 15 form_model = 'player' form_fields = ['intuitive', 'satisfaction1', 'satisfaction2', 'ideal_a', 'ideal_b', 'ideal_c', 'concentration', 'error', 'quality', 'sex', 'age', 'academic', 'income', 'comment'] class End(Page): def is_displayed(self): return self.round_number == 15 def vars_for_template(self): me = self.player me.totalpayoff = sum([me.payoff for me in me.in_all_rounds()]) me.code = random.randint(1000000, 1999999) return dict( totalpayoff=me.totalpayoff, code=me.code ) page_sequence = [Qualtrics, ParticipantsWaitPage, Matched, Decision_p1, Decision_p2, Decision_p3, ResultsWaitPage, Results, Survey]