from ._builtin import Page from .models import Constants import random class Loading(Page): timeout_seconds = 0.5 def before_next_page(self): if self.round_number == 1: randomized_problems = random.sample(Constants.problems, 12) self.player.participant.vars['randomized_problems3'] = randomized_problems # Temporary: # possible_orders = [13, 31] # self.player.randomized_order = random.choice(possible_orders) # self.player.participant.vars['randomized_order'] = self.player.randomized_order problem_data = self.player.current_problem() self.player.problem_id = int(problem_data['id']) self.player.problem = problem_data['problem'] self.player.word1 = problem_data['word1'] self.player.word2 = problem_data['word2'] self.player.word3 = problem_data['word3'] self.player.word4 = problem_data['word4'] self.player.randomized_order = self.participant.vars.get('randomized_order') class Instructions(Page): def is_displayed(self): return self.round_number == 1 class Questions1(Page): form_model = 'player' form_fields = ['practice_submitted_choice'] def is_displayed(self): return self.round_number == 1 class Questions2(Page): def is_displayed(self): return self.round_number == 1 class Start(Page): def is_displayed(self): return self.round_number == 1 class Problems1(Page): form_model = 'player' form_fields = ['submitted_choice', 'submitted_time'] class Problems2(Page): form_model = 'player' form_fields = ['submitted_confidence'] class End(Page): def is_displayed(self): return self.round_number == Constants.num_rounds def app_after_this_page(self, upcoming_apps): print('upcoming_apps is', upcoming_apps) if self.player.randomized_order == 31: return "CTBS2_Part1B" if self.player.randomized_order == 13: return "CTBS2_Part4" page_sequence = [ Loading, Instructions, Questions1, Questions2, Start, Problems1, Problems2, End ]