from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Introduction(Page): form_model = 'player' class Color_B(Page): form_model = 'group' form_fields = ['Color_second'] def is_displayed(self): return self.player.id_in_group == 2 class Color_AWaitPage(WaitPage): pass class Color_A(Page): form_model = 'group' form_fields = ['Color_first'] def is_displayed(self): return self.player.id_in_group == 1 class SendT(Page): form_model = 'group' form_fields = ['sent_amount'] def is_displayed(self): if self.group.Type == 'treatment' and self.player.id_in_group == 1: return True class SendC(Page): form_model = 'group' form_fields = ['sent_amount'] def is_displayed(self): if self.group.Type == 'control' and self.player.id_in_group == 1: return True class SendBackWaitPage(WaitPage): pass class SendBack(Page): form_model = 'group' form_fields = ['sent_back_amount'] def is_displayed(self): if self.group.Type == 'treatment' and self.player.id_in_group == 2: return True def vars_for_template(self): tripled_amount = self.group.sent_amount * Constants.multiplier return dict( tripled_amount=tripled_amount, prompt='Please an amount from 0 to {}'.format(tripled_amount), ) class SendBackC(Page): form_model = 'group' form_fields = ['sent_back_amount'] def is_displayed(self): if self.group.Type == 'control' and self.player.id_in_group == 2: return True def vars_for_template(self): tripled_amount = self.group.sent_amount * Constants.multiplier return dict( tripled_amount=tripled_amount, prompt='Please an amount from 0 to {}'.format(tripled_amount), ) class ResultsWaitPage(WaitPage): after_all_players_arrive = 'set_payoffs' class Results(Page): form_model = 'player' def vars_for_template(self): return dict(tripled_amount=self.group.sent_amount * Constants.multiplier) page_sequence = [Introduction, Color_B, Color_AWaitPage, Color_A, SendT, SendC, SendBackWaitPage, SendBack, SendBackC, ResultsWaitPage, Results]