from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import json class Introduction_Page(Page): # timeout_seconds = 60 * 10 def vars_for_template(self): return {'group_size': Constants.bc_group_size - 1, 'points_per_win': int(Constants.POINTS_PER_WIN), 'worth_1000_points': int(self.session.config['real_world_currency_per_point'] * 1000)} class computer_question_page(Page): # timeout_seconds = 60 form_model = 'player' form_fields = ['computer_submission', 'computer_human_submitted'] def before_next_page(self): if self.timeout_happened: self.player.computer_submission = 50 self.player.computer_human_submitted = False class dyad_question_page(Page): # timeout_seconds = 60 form_model = 'player' form_fields = ['dyad_submission', 'dyad_human_submitted'] def before_next_page(self): if self.timeout_happened: self.player.dyad_submission = 50 self.player.dyad_human_submitted = False class group_question_page(Page): # timeout_seconds = 60 form_model = 'player' form_fields = ['group_submission', 'group_human_submitted'] def vars_for_template(self): return {'group_size': Constants.bc_group_size - 1} def before_next_page(self): if self.timeout_happened: self.player.group_submission = 50 self.player.group_human_submitted = False class controller_page(Page): def before_next_page(self): self.player.register_submissions() # start_pages = [Introduction_Page] # # initial_page_sequence = [ # computer_question_page, # dyad_question_page, # group_question_page # ] # # end_page = [controller_page] # # # page_sequence = [] # # # class MyPage(Page): # def inner_dispatch(self): # page_seq = int(self.__class__.__name__.split('_')[1]) # page_to_show = json.loads(self.player.page_sequence)[page_seq] # self._is_frozen = False # self.__class__ = globals()[page_to_show] # return super(globals()[page_to_show], self).inner_dispatch() # # # for i, _ in enumerate(initial_page_sequence): # NewClassName = "Page_{}".format(i) # A = type(NewClassName, (MyPage,), {}) # Creates a new class inheriting from MyPage # locals()[NewClassName] = A # Registers this class in the local symbols # page_sequence.append(locals()[NewClassName]) # Adds this class to the page sequence # # page_sequence = start_pages + page_sequence + end_page page_sequence = [Introduction_Page, group_question_page, dyad_question_page, computer_question_page, controller_page]