from ._builtin import Page, WaitPage from otree.api import Currency as c, currency_range from .models import Constants class NormalWaitPage(WaitPage): pass class AllGroupsWaitPage(WaitPage): wait_for_all_groups = True class Show_PD_Instructions(Page): pass class PD_Message(Page): form_model = 'player' form_fields = ['PD_message'] class PD_Decision_S(Page): def vars_for_template(self): me = self.player opponent = me.other_player() return { 'PD_my_message': me.PD_message, 'PD_opponent_message': opponent.PD_message } form_model = 'player' form_fields = ['PD_decision_S'] class PD_Decision_R(Page): def vars_for_template(self): me = self.player opponent = me.other_player() return { 'PD_my_message': me.PD_message, 'PD_opponent_message': opponent.PD_message } form_model = 'player' form_fields = ['PD_decision_R'] class PD_Guess_S1(Page): form_model = 'player' form_fields = ['PD_guess1_S'] class PD_Guess_S2(Page): form_model = 'player' form_fields = ['PD_guess2_S'] class PD_Guess_R1(Page): form_model = 'player' form_fields = ['PD_guess1_R'] class PD_Guess_R2(Page): form_model = 'player' form_fields = ['PD_guess2_R'] class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): for p in self.group.get_players(): p.set_payoff() class ShuffleWaitPage(WaitPage): wait_for_all_groups = True def after_all_players_arrive(self): self.subsession.do_my_shuffle() page_sequence = [ ShuffleWaitPage, Show_PD_Instructions, PD_Message, NormalWaitPage, PD_Decision_S, PD_Guess_S1, PD_Guess_S2, PD_Decision_R, PD_Guess_R1, PD_Guess_R2, ResultsWaitPage ]