from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Firstpage(Page): pass class Secondpage(Page): timeout_seconds = 240 class Choose1(Page): form_model = 'group' form_fields = ['choice_of_urn_first'] def is_displayed(self): return self.player.id_in_group == 1 class WaitforP1(WaitPage): pass class Choose2(Page): form_model = 'group' form_fields = ['choice_of_urn_second'] def is_displayed(self): return self.player.id_in_group == 2 class WaitforP2(WaitPage): pass class Choose3(Page): form_model = 'group' form_fields = ['choice_of_urn_third'] def is_displayed(self): return self.player.id_in_group == 3 class WaitforP3(WaitPage): pass class Choose4(Page): form_model = 'group' form_fields = ['choice_of_urn_fourth'] def is_displayed(self): return self.player.id_in_group == 4 class WaitforP4(WaitPage): pass class Choose5(Page): form_model = 'group' form_fields = ['choice_of_urn_fifth'] def is_displayed(self): return self.player.id_in_group == 5 class WaitforP5(WaitPage): pass class Choose6(Page): form_model = 'group' form_fields = ['choice_of_urn_sixth'] def is_displayed(self): return self.player.id_in_group == 6 class WaitforP6(WaitPage): pass class Survey(Page): form_model = 'player' form_fields = ['origin', 'gender', 'age'] class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): group=self.group p1 = group.get_player_by_id(1) p2 = group.get_player_by_id(2) p3 = group.get_player_by_id(3) p4 = group.get_player_by_id(4) p5 = group.get_player_by_id(5) p6 = group.get_player_by_id(6) if self.group.choice_of_urn_first == self.group.storyline and \ group.choice_of_urn_second == self.group.storyline: p1.payoff = Constants.bonus + Constants.endowment elif self.group.choice_of_urn_first == self.group.storyline and \ group.choice_of_urn_second != self.group.storyline: p1.payoff = Constants.bonus - Constants.bonus_extra + Constants.endowment elif self.group.choice_of_urn_first != self.group.storyline and \ group.choice_of_urn_second == self.group.storyline: p1.payoff = Constants.endowment else: p1.payoff = Constants.endowment - Constants.bonus_extra if self.group.choice_of_urn_second == self.group.storyline and \ group.choice_of_urn_third == self.group.storyline: p2.payoff = Constants.bonus + Constants.endowment elif self.group.choice_of_urn_second == self.group.storyline and \ group.choice_of_urn_third != self.group.storyline: p2.payoff = Constants.bonus - Constants.bonus_extra + Constants.endowment elif self.group.choice_of_urn_second != self.group.storyline and \ group.choice_of_urn_third == self.group.storyline: p2.payoff = Constants.endowment else: p2.payoff = Constants.endowment- Constants.bonus_extra if self.group.choice_of_urn_third == self.group.storyline and \ group.choice_of_urn_fourth == self.group.storyline: p3.payoff = Constants.bonus + Constants.endowment elif self.group.choice_of_urn_third == self.group.storyline and \ group.choice_of_urn_fourth != self.group.storyline: p3.payoff = Constants.bonus - Constants.bonus_extra + Constants.endowment elif self.group.choice_of_urn_third != self.group.storyline and \ group.choice_of_urn_fourth == self.group.storyline: p3.payoff = Constants.endowment else: p3.payoff = Constants.endowment- Constants.bonus_extra if self.group.choice_of_urn_fourth == self.group.storyline and \ group.choice_of_urn_fifth == self.group.storyline: p4.payoff = Constants.bonus + Constants.endowment elif self.group.choice_of_urn_fourth == self.group.storyline and \ group.choice_of_urn_fifth != self.group.storyline: p4.payoff = Constants.bonus - Constants.bonus_extra + Constants.endowment elif self.group.choice_of_urn_fourth != self.group.storyline and \ group.choice_of_urn_fifth == self.group.storyline: p4.payoff = Constants.endowment else: p4.payoff = Constants.endowment- Constants.bonus_extra if self.group.choice_of_urn_fifth == self.group.storyline and \ group.choice_of_urn_sixth == self.group.storyline: p5.payoff = Constants.bonus + Constants.endowment elif self.group.choice_of_urn_fifth == self.group.storyline and \ group.choice_of_urn_sixth != self.group.storyline: p5.payoff = Constants.bonus - Constants.bonus_extra + Constants.endowment elif self.group.choice_of_urn_fifth != self.group.storyline and \ group.choice_of_urn_sixth == self.group.storyline: p5.payoff = Constants.endowment else: p5.payoff = Constants.endowment- Constants.bonus_extra if self.group.choice_of_urn_sixth == self.group.storyline: p6.payoff = Constants.bonus + Constants.endowment else: p6.payoff = Constants.endowment class Results(Page): pass page_sequence = [ Firstpage, Secondpage, Choose1, WaitforP1, Choose2, WaitforP2, Choose3, WaitforP3, Choose4, WaitforP4, Choose5, WaitforP5, Choose6, WaitforP6, Survey, ResultsWaitPage, Results, ]