#1 by janohirmas
I created a set of checks for my pages (checking that participants are on fullscreen and that they don't go out of focus).
For this I need to create a few variables for each page and also add them to each page's form_fields. I created the following function:
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)
Then I use this after page sequence as follows:
addCheckVars(Player, page_sequence)
This code creates the variables and adds them to the respective forms. The problem is that if I have pages/apps that do not use this subroutine. I get errors, that they get some form_fields that don't exist.
Exception: Page has form_fields but not form_model
Is there a problem with this function? Am I messing something internal that is creating this issue?