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): possible_orders = [12, 21] self.player.randomized_order = random.choice(possible_orders) self.player.participant.vars['randomized_order'] = self.player.randomized_order self.player.colors_reversed = random.randint(0, 1) self.player.participant.vars['colors_reversed'] = self.player.colors_reversed self.player.roles_reversed = random.randint(0, 1) self.player.participant.vars['roles_reversed'] = self.player.roles_reversed class End(Page): def is_displayed(self): return self.player.consent == 2 class Caution(Page): pass class GeneralInstructions1(Page): pass class GeneralInstructions2(Page): def app_after_this_page(self, upcoming_apps): print('upcoming_apps is', upcoming_apps) if self.player.randomized_order == 12: return "MTSP_Part1A" if self.player.randomized_order == 21: return "MTSP_Part2" page_sequence = [ Error, Consent, End, Caution, GeneralInstructions1, GeneralInstructions2 ]