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 ANNOUNCEMENT ## ######################## class Stage(Page): def vars_for_template(self): return dict( round=self.player.round_number ) def before_next_page(self): self.player.demand_set_up() ######################## ## DEMAND STAGE ## ######################## class Demand(Page): form_model = 'player' form_fields = ['prob_group_1'] def vars_for_template(self): return dict( p1_dem=self.player.p1_democrat, p2_dem=self.player.p2_democrat, p3_dem=self.player.p3_democrat, p4_dem=self.player.p4_democrat ) def before_next_page(self): self.player.bdm_set_up() ######################## ## DECISION STAGE ## ######################## class DecisionStage(Page): form_model = 'player' form_fields = ['guess_demand'] def vars_for_template(self): return dict( ball=self.player.ball_demand, p1_dem=self.participant.vars['obs_p1'], p1_guess=self.participant.vars['obs_guess_p1'], p2_dem=self.participant.vars['obs_p2'], p2_guess=self.participant.vars['obs_guess_p2'], ) def before_next_page(self): self.player.payoff_demand() ########################################## ##### APP SEQUENCE ##### ########################################## page_sequence = [Introduction, Stage, Demand, DecisionStage]