from ._builtin import Page, WaitPage from .models import Constants import json import random ######################## ## INTRO ## ######################## class Introduction(Page): def is_displayed(self): return self.round_number == 1 ######################## ## STAGE LABEL ## ######################## class StageLabel(Page): def is_displayed(self): return self.round_number <= 4 def vars_for_template(self): return dict( round=self.player.round_number ) def before_next_page(self): self.player.set_up_label() ######################## ## DECISION STAGE LABEL ## ######################## class Label(Page): def is_displayed(self): return self.round_number <= 4 form_model = 'player' form_fields = ['guess_proc'] def vars_for_template(self): return dict( ball=self.player.ball_proc, p1_dem=self.player.p1_democrat_proc, p1_guess=self.player.p1_guess_proc, p2_dem=self.player.p2_democrat_proc, p2_guess=self.player.p2_guess_proc ) def before_next_page(self): self.player.payoff_proc() ######################## ## INTRO ## ######################## class IntroductionNoLabel(Page): def is_displayed(self): return self.round_number == 5 form_model = 'player' form_fields = ['reason_label_dec'] ######################## ## STAGE NO LABEL ## ######################## class StageNoLabel(Page): def is_displayed(self): return self.round_number > 4 def vars_for_template(self): return dict( round=(self.player.round_number-4) ) def before_next_page(self): self.player.set_up_no_label() ######################## ## DECISION STAGE NO LABEL ## ######################## class NoLabel(Page): def is_displayed(self): return self.round_number > 4 form_model = 'player' form_fields = ['guess_proc'] def vars_for_template(self): return dict( ball=self.player.ball_proc, p1_guess=self.player.p1_guess_proc, p2_guess=self.player.p2_guess_proc, ) def before_next_page(self): self.player.payoff_proc() ########################################## ##### APP SEQUENCE ##### ########################################## page_sequence = [Introduction, StageLabel, Label, IntroductionNoLabel, StageNoLabel, NoLabel]