from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Welcome(Page): pass class Part1_Instructions(Page): pass class Wait(WaitPage): def after_all_players_arrive(self): self.group.random_numbers() title_text = "Please wait for other players" body_text = "" class Practice1(Page): form_model = 'player' form_fields = ['practice1_entered'] class Practice1_Feedback(Page): pass class Practice2(Page): form_model = 'player' form_fields = ['practice2_entered'] class Practice2_Feedback(Page): def is_displayed(self): return self.round_number == 1 def before_next_page(self): import time # user has 10 minutes to complete as many pages as possible 10*60 self.participant.vars['expiry'] = time.time() + 10 * 60 class Table1(Page): form_model = 'player' form_fields = ['table1_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table2(Page): form_model = 'player' form_fields = ['table2_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table3(Page): form_model = 'player' form_fields = ['table3_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table4(Page): form_model = 'player' form_fields = ['table4_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table5(Page): form_model = 'player' form_fields = ['table5_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table6(Page): form_model = 'player' form_fields = ['table6_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table7(Page): form_model = 'player' form_fields = ['table7_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table8(Page): form_model = 'player' form_fields = ['table8_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table9(Page): form_model = 'player' form_fields = ['table9_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table10(Page): form_model = 'player' form_fields = ['table10_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table11(Page): form_model = 'player' form_fields = ['table11_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table12(Page): form_model = 'player' form_fields = ['table12_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table13(Page): form_model = 'player' form_fields = ['table13_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table14(Page): form_model = 'player' form_fields = ['table14_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table15(Page): form_model = 'player' form_fields = ['table15_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table16(Page): form_model = 'player' form_fields = ['table16_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table17(Page): form_model = 'player' form_fields = ['table17_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table18(Page): form_model = 'player' form_fields = ['table18_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table19(Page): form_model = 'player' form_fields = ['table19_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table20(Page): form_model = 'player' form_fields = ['table20_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table21(Page): form_model = 'player' form_fields = ['table21_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table22(Page): form_model = 'player' form_fields = ['table22_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table23(Page): form_model = 'player' form_fields = ['table23_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table24(Page): form_model = 'player' form_fields = ['table24_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table25(Page): form_model = 'player' form_fields = ['table25_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table26(Page): form_model = 'player' form_fields = ['table26_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table27(Page): form_model = 'player' form_fields = ['table27_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table28(Page): form_model = 'player' form_fields = ['table28_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table29(Page): form_model = 'player' form_fields = ['table29_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table30(Page): form_model = 'player' form_fields = ['table30_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table31(Page): form_model = 'player' form_fields = ['table31_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table32(Page): form_model = 'player' form_fields = ['table32_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table33(Page): form_model = 'player' form_fields = ['table33_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table34(Page): form_model = 'player' form_fields = ['table34_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table35(Page): form_model = 'player' form_fields = ['table35_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table36(Page): form_model = 'player' form_fields = ['table36_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table37(Page): form_model = 'player' form_fields = ['table37_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table38(Page): form_model = 'player' form_fields = ['table38_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table39(Page): form_model = 'player' form_fields = ['table39_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table40(Page): form_model = 'player' form_fields = ['table40_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table41(Page): form_model = 'player' form_fields = ['table41_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table42(Page): form_model = 'player' form_fields = ['table42_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table43(Page): form_model = 'player' form_fields = ['table43_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table44(Page): form_model = 'player' form_fields = ['table44_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class Table45(Page): form_model = 'player' form_fields = ['table45_entered'] timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class table_done(Page): pass timer_text = 'Remaining Time:' def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def is_displayed(self): import time return self.participant.vars['expiry'] - time.time() > 3 class AllGroupsWaitPage(WaitPage): wait_for_all_groups = True title_text = "Please wait for other players" body_text = "" class ResultsWaitPage1(WaitPage): def after_all_players_arrive(self): for p in self.group.get_players(): p.set_table_result() title_text = "Please wait for other players" body_text = "" class ResultsWaitPage2(WaitPage): def after_all_players_arrive(self): self.group.set_ranks() title_text = "Please wait for other players" body_text = "" class ResultsWaitPage3(WaitPage): def after_all_players_arrive(self): for p in self.group.get_players(): p.set_rank_payoff() title_text = "Please wait for other players" body_text = "" class ResultsWaitPage4(WaitPage): def after_all_players_arrive(self): self.group.set_votes() class ResultsWaitPage5(WaitPage): def after_all_players_arrive(self): self.group.set_final_payoffs() title_text = "Please wait for other players" body_text = "" class Part2(Page): pass class Part2_choice(Page): form_model = 'player' form_fields = ['rank_guess'] class Part3(Page): form_model = 'player' form_fields = ['plan_a', 'plan_b'] class Part3_rate_before(Page): form_model = 'player' form_fields = ['plan_a', 'plan_b'] def is_displayed(self): return self.group.treatment == True class Part3_vote(Page): form_model = 'player' form_fields = ['vote'] class Part3_chat3(Page): pass class Part3_chat2(Page): pass class Part3_outcome(Page): pass class Part3_rate_after(Page): form_model = 'player' form_fields = ['plan_a', 'plan_b'] def is_displayed(self): return self.group.treatment == False page_sequence = [ Welcome, Part1_Instructions, Wait, Practice1, Practice1_Feedback, Practice2, Practice2_Feedback, Table1, Table2, Table3, Table4, Table5, Table6, Table7, Table8, Table9, Table10, Table11, Table12, Table13, Table14, Table15, Table16, Table17, Table18, Table19, Table20, Table21, Table22, Table23, Table24, Table25, Table26, Table27, Table28, Table29, Table30, Table31, Table32, Table33, Table34, Table35, Table36, Table37, Table38, Table39, Table40, Table41, Table42, Table43, Table44, Table45, table_done, ResultsWaitPage1, ResultsWaitPage2, AllGroupsWaitPage, Part2, Part2_choice, ResultsWaitPage3, AllGroupsWaitPage, Part3_vote, ResultsWaitPage4, Part3_rate_before, Part3_outcome, Part3_rate_after, Part3_chat2, ResultsWaitPage5 ]