from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants from math import floor class Question(Page): form_model = 'player' form_fields = ['submitted_answer1', 'submitted_answer2', 'submitted_answer3', 'submitted_answer4', 'submitted_answer5','submitted_answer6', 'submitted_answer7', 'submitted_answer8', 'submitted_answer9', 'submitted_answer10', ] def get_timeout_seconds(self): if 'quiztime' in self.session.config: tt = self.session.config['quiztime'] else: tt= Constants.TotalTime return tt def submitted_answer1_choices(self): # return [k for k in range(1, self.player.num_choices+1)] qd = self.player.current_question(1) return [ qd['choice1'], qd['choice2'], qd['choice3'], qd['choice4'], ] def submitted_answer2_choices(self): # return [k for k in range(1, self.player.num_choices+1)] qd = self.player.current_question(2) return [ qd['choice1'], qd['choice2'], qd['choice3'], qd['choice4'], ] def submitted_answer3_choices(self): # return [k for k in range(1, self.player.num_choices+1)] qd = self.player.current_question(3) return [ qd['choice1'], qd['choice2'], qd['choice3'], qd['choice4'], ] def submitted_answer4_choices(self): # return [k for k in range(1, self.player.num_choices+1)] qd = self.player.current_question(4) return [ qd['choice1'], qd['choice2'], qd['choice3'], qd['choice4'], ] def submitted_answer5_choices(self): # return [k for k in range(1, self.player.num_choices+1)] qd = self.player.current_question(5) return [ qd['choice1'], qd['choice2'], qd['choice3'], qd['choice4'], ] def submitted_answer6_choices(self): # return [k for k in range(1, self.player.num_choices+1)] qd = self.player.current_question(6) return [ qd['choice1'], qd['choice2'], qd['choice3'], qd['choice4'], ] def submitted_answer7_choices(self): # return [k for k in range(1, self.player.num_choices+1)] qd = self.player.current_question(7) return [ qd['choice1'], qd['choice2'], qd['choice3'], qd['choice4'], ] def submitted_answer8_choices(self): # return [k for k in range(1, self.player.num_choices+1)] qd = self.player.current_question(8) return [ qd['choice1'], qd['choice2'], qd['choice3'], qd['choice4'], ] def submitted_answer9_choices(self): # return [k for k in range(1, self.player.num_choices+1)] qd = self.player.current_question(9) return [ qd['choice1'], qd['choice2'], qd['choice3'], qd['choice4'], ] def submitted_answer10_choices(self): # return [k for k in range(1, self.player.num_choices+1)] qd = self.player.current_question(10) return [ qd['choice1'], qd['choice2'], qd['choice3'], qd['choice4'], ] def vars_for_template(self): return {'Topic': Constants.TopicList[self.round_number-1]} def before_next_page(self): self.player.check_correct() self.player.participant.vars['CurrentBlock'] = 'quizScience' class PreScreen(Page): def is_displayed(self): return self.round_number == 1 def vars_for_template(self): if 'quiztime' in self.session.config: tt = self.session.config['quiztime'] else: tt= Constants.TotalTime block = self.player.participant.vars.get('BlockNumber') if not block: block = 1 self.player.participant.vars['BlockNumber'] = 1 return {'TotalTime': tt, 'BlockNumber': block} def before_next_page(self): self.player.participant.vars['BlockNumber'] += 1 class Instructions(Page): def vars_for_template(self): return {'Topic': Constants.TopicList[self.round_number-1]} class Results(Page): def vars_for_template(self): ################################## ELICITATION STUFF ######################################### self.player.participant.vars['CurrentBlock'] = 'quizScience' ############################################################################################### score_total = self.player.score self.player.participant.vars['Score_Science_' + str(int(self.round_number))] = score_total self.player.participant.vars['Payoff_Quizz_Science_' + str(int(self.round_number))] = score_total*Constants.PerQuestion return {'questions_correct': int(score_total), 'larger1': score_total > 1} page_sequence = [ PreScreen, Instructions, Question, Results ]