from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Info(Page): def is_displayed(self): return self.round_number == 1 class Send(Page): form_model = 'player' form_fields = ['sent_amount'] def is_displayed(self): return self.player.role() == 'Sender' class Receive(WaitPage): template_name = 'seqPGG/WaitPageReceive.html' def is_displayed(self): return self.player.role() == 'Receiver' class WaitForP1(WaitPage): pass class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): self.group.include_0s() if self.round_number == 4 or self.round_number == 8 or self.round_number == 12 or self.round_number == 16 or self.round_number == 20 or self.round_number == 24 or self.round_number == 28 or self.round_number == 32 or self.round_number == 36 or self.round_number == 40 or self.round_number == 44 or self.round_number == 48: self.group.set_payoffs() else: pass class Results(Page): # after_all_players_arrive = 'set_payoffs' pass class waitpage(WaitPage): def after_all_players_arrive(self): if self.round_number == 4 or self.round_number == 8 or self.round_number == 12 or self.round_number == 16 or self.round_number == 20 or self.round_number == 24 or self.round_number == 28 or self.round_number == 32 or self.round_number == 36 or self.round_number == 40 or self.round_number == 44 or self.round_number == 48: self.group.set_ind_invest() else: pass class RoundEnd(Page): def is_displayed(self): if self.round_number == 4 or self.round_number == 8 or self.round_number == 12 or self.round_number == 16 or self.round_number == 20 or self.round_number == 24 or self.round_number == 28 or self.round_number == 32 or self.round_number == 36 or self.round_number == 40 or self.round_number == 44 or self.round_number == 48: return True else: False # def vars_for_template(self): # return {'cumulative_payoff': sum([p.sent_amount for p in self.player.in_all_rounds()])*2, # 'self_payoff': 10-sum([p.sent_amount for p in self.player.in_all_rounds()])} form_model = 'player' form_fields = [ 'item1A', 'item1B', 'item1C', 'item1D', 'item1E', 'item1F', 'item1G', 'item1H' ] def get_form_fields(self): fields = self.form_fields return fields class totalpayoff(WaitPage): def after_all_players_arrive(self): if self.round_number == 48: self.group.total_payoff() else: pass class ExpEnd(Page): def is_displayed(self): return self.round_number == 48 page_sequence = [Info, Send, Receive, ResultsWaitPage, Results, waitpage, RoundEnd, totalpayoff, ExpEnd]