from ._builtin import Page import random class Error(Page): def is_displayed(self): user_agent = self.request.META['HTTP_USER_AGENT'] is_mobile = False for substring in ['Mobi', 'Android']: if substring in user_agent: is_mobile = True return is_mobile class Consent(Page): form_model = 'player' form_fields = ['consent'] def before_next_page(self): self.player.colors_reversed = random.randint(0, 1) class End1(Page): def is_displayed(self): return self.player.consent == 2 class GeneralInstructions1(Page): pass class GeneralInstructions2(Page): pass class Instructions(Page): pass class ComprehensionQuestions(Page): form_model = 'player' form_fields = ['q1', 'q2', 'q3'] def before_next_page(self): self.player.q1_error = False if self.player.q1 != 2: self.player.q1_error = True self.player.q2_error = False if self.player.q2 != 420: self.player.q2_error = True self.player.q3_error = False if self.player.q3 != 780: self.player.q3_error = True self.player.cq_error = False if self.player.q1_error or self.player.q2_error or self.player.q3_error: self.player.cq_error = True if self.player.cq_error: self._is_frozen = False self._index_in_pages -= 2 self.participant._index_in_pages -= 2 class End2(Page): pass page_sequence = [ Error, Consent, End1, GeneralInstructions1, GeneralInstructions2, Instructions, ComprehensionQuestions, End2 ]