from . import models from ._builtin import Page, WaitPage from .models import Constants class Introduction(Page): def is_displayed(self): return self.subsession.round_number == 1 pass # this page is only display for member, this is the first member contribution page class MemberContribute(Page): def is_displayed(self): return self.player.role() != 'leader' form_model = models.Player form_fields = ['member_contribute'] class SimpleWaitPage2(WaitPage): pass class LeaderContribute(Page): def is_displayed(self): return self.player.role() == 'leader' form_model = models.Player form_fields = ['leader_contribute'] class SimpleWaitPage(WaitPage): def after_all_players_arrive(self): self.group.current() body_text = "Waiting for other group members." pass class LeaderDecision(Page): def is_displayed(self): return self.player.role() == 'leader' def vars_for_template(self): return self.group.current() form_model = models.Group form_fields = ['decision_member1', 'decision_member2', 'decision_member3'] def error_message(self, values): if values["decision_member1"] + values["decision_member2"] + values["decision_member3"] > 120: return 'You can only remove up to 120 points for all three Group Members combined!' class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): self.group.set_payoffs() class Results(Page): def vars_for_template(self): return self.group.set_payoffs() page_sequence = [ #Introduction, LeaderContribute, # simpleWaitPage2, MemberContribute, SimpleWaitPage, LeaderDecision, ResultsWaitPage, Results, #end2, ]