from otree.api import Currency as c, currency_range from . import models from ._builtin import Page, WaitPage from .models import Constants from otreeutils.pages import AllGroupsWaitPage, ExtendedPage, UnderstandingQuestionsPage, APPS_DEBUG from otree.api import Currency as c, currency_range from . import models from ._builtin import Page, WaitPage class Start_round(Page): def before_next_page(self): self.player.get_partner() self.player.genderapp() self.player.pronoun () self.player.Pronoun () self.player.ageapp() class NormalWaitPage1 (WaitPage): pass class Start_round1(Page): def before_next_page(self): self.player.age_other () timeout_seconds = 0 class performer_lotteryinfo(Page): def is_displayed(self): return self.player.role () == 'Performer' class NormalWaitPage2 (WaitPage): pass class performer_grid(Page): def is_displayed(self): return self.player.role () == 'Performer' form_model = 'player' form_fields = ['Grid1','Grid2','Grid3','Grid4','Grid5','Grid6','Grid7','Grid8','Grid9','Grid10'] timeout_seconds = 45 def before_next_page(self): self.player.set_payoff1 () self.player.set_payoff2 () self.player.set_payoff3 () self.player.set_payoff4 () self.player.set_payoff5 () self.player.set_payoff6 () self.player.set_payoff7 () self.player.set_payoff8 () self.player.set_payoff9 () self.player.set_payoff10 () self.player.set_payoff_total () self.player.set_lottery() self.player.set_profitp1() self.group.set_payoff() class decider_waitpage (Page): def is_displayed(self): return self.player.role () == 'Decider' timeout_seconds = 47 timer_text = 'Waiting for your Partner while performs the task.:' class decider_pay (Page): def is_displayed(self): return self.player.role () == 'Decider' form_model = 'player' form_fields = ['Decider_pay1','Decider_pay2'] def error_message(self, values): print('value is', values) if values["Decider_pay1"] + values["Decider_pay2"] >350: return 'The sum of these numbers has to be lower or equal to ₹350 (separate amount of money)' def before_next_page(self): self.group.set_payoff() self.group.ran_pay() self.group.ran_pay_final() class AllGroupsWaitPage1(WaitPage): wait_for_all_groups = True def after_all_players_arrive(self): self.subsession.rand_payoff_agent1() class decider_beliefs(Page): def is_displayed(self): return self.player.role () == 'Decider' form_model = 'player' form_fields = ['Belief1', 'Belief2', 'Belief3'] def before_next_page(self): self.group.set_beliefs () self.player.set_profitbeliefs() class performer_beliefs (Page): def is_displayed(self): return self.player.role () == 'Performer' form_model = 'player' form_fields = ['SelfBelief1', 'SelfBelief2', 'SelfBelief3'] class End_round (Page): def before_next_page(self): self.player.final_pay_round() class AllGroupsWaitPage2(WaitPage): wait_for_all_groups = True #wait for all groups page_sequence = [ Start_round, NormalWaitPage1, Start_round1, performer_lotteryinfo, NormalWaitPage2, performer_grid, decider_waitpage, decider_pay, AllGroupsWaitPage1, decider_beliefs, performer_beliefs, End_round, AllGroupsWaitPage2 ] #Welcome, #ComputerTerminal, #Demographics, #instructions_overall, #instructions_task1, #instructions_beliefs, #instructions_task1_performer, #SomeUnderstandingQuestions, #NormalWaitPage1,