from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Quiz(Page): form_model = 'player' form_fields = ['ans1', 'ans2', 'ans3', 'ans4', 'ans5', 'ans6', 'ans7', 'ans8'] def before_next_page(self): answers = [self.player.ans1, self.player.ans2, self.player.ans3, self.player.ans4, self.player.ans5, self.player.ans6, self.player.ans7, self.player.ans8] self.player.num_correct_ans = \ sum([answers[i] == Constants.solutions[i] for i in range(0, Constants.num_quiz)]) self.player.payoff = c(self.player.num_correct_ans * 3) class ResultsWaitPage(WaitPage): pass class Results(Page): def vars_for_template(self): return { 'player_answers': [self.player.ans1, self.player.ans2, self.player.ans3, self.player.ans4,self.player.ans5, self.player.ans6, self.player.ans7, self.player.ans8] } page_sequence = [Quiz, ResultsWaitPage, Results]