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): def is_displayed(self): return self.player.role() == 'Sender' class Receive(WaitPage): template_name = 'downstream_Hap/WaitPageReceive.html' def is_displayed(self): return self.player.role() == 'Receiver' class Haptics(WaitPage): template_name = 'downstream_Hap/WaitPageHaptics.html' def is_displayed(self): return self.player.role() == 'Informer' class WaitForP1(WaitPage): pass class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): self.group.set_payoffs() class Results(Page): # after_all_players_arrive = 'set_payoffs' pass class waitpage(WaitPage): pass class Controller(Page): form_model = 'group' form_fields = ['sent_amount'] def is_displayed(self): return self.player.role() == 'Controller' class RoundEnd(Page): def is_displayed(self): if self.round_number == 16 or self.round_number == 32 or self.round_number == 2: return True else: False def vars_for_template(self): return {'fin_payoff': sum([p.payoff for p in self.player.in_all_rounds()]),} class ExpEnd(Page): def is_displayed(self): return self.round_number == 48 page_sequence = [Info, Send, Receive, Haptics, Controller, WaitForP1, ResultsWaitPage, Results, waitpage, RoundEnd, ExpEnd]