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_puzzles(Page): def is_displayed(self): return self.player.role () == 'Performer' form_model = 'player' form_fields = ['Puzzles1', 'Puzzles2','Puzzles3'] timeout_seconds = 45 def before_next_page(self): self.player.set_payoff1() self.player.set_payoff2() self.player.set_payoff3() 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_puzzles, 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,