from otree.api import * doc = """ Your app description """ class C(BaseConstants): NAME_IN_URL = 'instructions' PLAYERS_PER_GROUP = None NUM_ROUNDS = 1 class Subsession(BaseSubsession): pass def creating_session(subsession: Subsession): for p in subsession.get_players(): p.participant.tot_wait_time = 0 p.participant.game_stage = 1 class Group(BaseGroup): pass class Player(BasePlayer): participant_label = models.StringField(initial="0") device = models.StringField(initial="-") # PAGES class Instructions(Page): @staticmethod def vars_for_template(player: Player): points_per_dollar = int(1/player.session.config['real_world_currency_per_point']) return dict( points_per_dollar=points_per_dollar ) class Consent(Page): form_model = 'player' form_fields = ['device'] @staticmethod def vars_for_template(player: Player): player.participant_label = player.participant.label avg_bonus=player.session.config['endowment']*player.session.config['real_world_currency_per_point'] if round(avg_bonus, 2) == avg_bonus: avg_bonus = int(avg_bonus) return dict( avg_bonus=avg_bonus, ) page_sequence = [Consent, Instructions]