from otree.api import * doc = """ Your app description """ class C(BaseConstants): NAME_IN_URL = 'Start' PLAYERS_PER_GROUP = 4 NUM_ROUNDS = 1 BROKENA = 20 BROKENB = 50 TPLATES = 100 SHOWUPFEE = 8 ROUNDS = 6 DOLLARTOTOKENS = 10 TOKENSTOCENTS = 100/DOLLARTOTOKENS UNBROKENA = TPLATES - BROKENA UNBROKENB = TPLATES - BROKENB class Subsession(BaseSubsession): def creating_session(self): import random paying_round = random.randint(1, C.NUM_ROUNDS) r_1 = random.randint(1, 100) r_2 = random.randint(1, 100) dice = random.randint(1, 10) AORDER = [1, 2] random.shuffle(AORDER) FORDER = [1, 2] random.shuffle(FORDER) session = Subsession.session # must also change Treatment value in Task1 and in SurveyandResults session.vars['Treatment'] = 'P' session.vars['r_1'] = r_1 session.vars['r_2'] = r_2 session.vars['dice'] = dice session.vars['paying_round'] = paying_round session.vars['AORDER'] = AORDER session.vars['FORDER'] = FORDER session.vars['PLATES'] = [1, 0, 1, 1, 0, 1, 1, 1] random.shuffle(session.vars['PLATES']) class Group(BaseGroup): pass class Player(BasePlayer): STUDYID = models.IntegerField(label="Study ID") # PAGES class ID(Page): form_model = 'player' form_fields = ['STUDYID'] class Welcome(Page): pass class Task1a(Page): pass class Task1b(Page): pass class Task1c(Page): def vars_for_template(player: Player): participant = player.participant participant.studyid = player.STUDYID #main sequence page_sequence = [ID, Welcome, Task1a, Task1b, Task1c] #Just for testing shuffling: #page_sequence = [Welcome]