from otree.api import * from checkFunctions import addCheckVars from Task import attributeList from Instructions import C as CG from Instructions import creating_session doc = """ Your app description """ class C(BaseConstants): NAME_IN_URL = 'Results' PLAYERS_PER_GROUP = None NUM_ROUNDS = 1 # From General Constants imgCandidate = CG.imgCandidate SubmitLink = CG.SubmitLink class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): bWin = models.BooleanField() # PAGES class Results(Page): form_model = 'player' form_fields = [] @staticmethod def vars_for_template(player: Player): p = player.participant RV = p.ResultValues lPos = p.lPos lValuesA = [x for x in RV['candA']] lValuesB = [x for x in RV['opponent']] # Check decisions if p.bChoseA: decChosen = int(RV['decA']) sChosen = 'A' else: decChosen = int(RV['decB']) sChosen = 'B' decOpponent = int(RV['decOpponent']) # Create outcome player.participant.bWin = decChosen>=decOpponent return dict( RV = player.participant.ResultValues, lAttr = attributeList(lValuesA,lValuesB,lPos), decChosen = decChosen, decOpponent = decOpponent, bWin = player.participant.bWin, sChosen = sChosen, dBonusQ = round(p.iCorrect/10,1), ) @staticmethod def js_vars(player: Player): return dict( SubmitLink = C.SubmitLink, ) page_sequence = [Results] addCheckVars(Player, page_sequence)