from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants from . import models class FirstPage(Page): form_model = models.Player form_fields = ['number', 'time'] def before_next_page(self): self.player.choose_numbers() class MyPage(Page): form_model = models.Player form_fields = ['answer'] def vars_for_template(self): self.player.word = self.participant.vars["random_lst"][self.round_number - 1] return {"word": self.player.word, "answer": self.player.answer, "round_number": self.round_number} def before_next_page(self): idx = Constants.df.index[Constants.df["number"] == self.player.word][0] if self.player.answer == Constants.df.iloc[idx, 0]: self.player.correct = True self.participant.vars["correct_%s" % self.round_number] = 1 else: self.player.correct = False self.participant.vars["correct_%s" % self.round_number] = 0 class Results(Page): def vars_for_template(self): idx = Constants.df.index[Constants.df["number"] == self.player.word][0] return { "correct": Constants.df.iloc[idx, 0] } def is_displayed(self): return self.participant.vars["correct_%s" % self.round_number] == 0 page_sequence = [FirstPage, MyPage, Results]