from otree.api import * doc = """ Your app description """ class C(BaseConstants): NAME_IN_URL = 'testFunction' PLAYERS_PER_GROUP = None NUM_ROUNDS = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): pass def addCheckVars(player, lPages, bNoCheck=False): # Go through all page objects in list for page in lPages: sName = (page.__name__) # get name # If form_model is player on page, add these variables lForm = getattr(page,'form_fields',[]) # form fields sFormModel = getattr(page,'form_model') # form model # If default, set it to player if sFormModel == None: sFormModel = 'player' setattr(page, "form_model", 'player') if sFormModel == 'player': print(f"setting up player in page {sName}") for var in ['iFS','iFocus','dFocusTime']: # For each page, add the three variables that setattr(player, f"{var}_{sName}", models.StringField(blank=bNoCheck)) # Append variables to specific page lForm.append(f"{var}_{sName}") setattr(page,'form_fields',lForm) # PAGES class MyPage(Page): pass class MyPage2(Page): pass page_sequence = []