from otree.api import * from .Constants import * from .Functions import * import time class DiscussionPage1(Page): form_model = 'player' def is_displayed(player): player.page_pass_time = int(time.time()) + C.DISCUSSION_PAGE_MIN_TIME return True def get_form_fields(player): if player.is_leader == 1: return ['button_pressed'] # Include button_pressed field for player 1 else: return [] def error_message(player, values): if time.time()< player.page_pass_time: return f" You need to stay on this page for {player.page_pass_time - int(time.time())} more seconds" def vars_for_template(self): return get_question_availability(self.group) def before_next_page(player, timeout_happened): if player.is_leader: button_name = player.button_pressed print(f'BUTTON PRESSED: {button_name}') player.group.leader_button_pressed = button_name # Category if C.US_HISTORY in button_name: player.group.category_choice = "American History" if C.EASY in button_name: player.group.difficulty_choice = "Easy" df_str, category_difficulty = player.session.vars['US_history_easy'], 'US_history_easy' elif C.MEDIUM in button_name: player.group.difficulty_choice = "Medium" df_str, category_difficulty = player.session.vars['US_history_medium'], 'US_history_medium' elif C.HARD in button_name: player.group.difficulty_choice = "Hard" df_str, category_difficulty = player.session.vars['US_history_hard'], 'US_history_hard' elif C.GEOGRAPHY in button_name: player.group.category_choice = "Geography" if C.EASY in button_name: player.group.difficulty_choice = "Easy" df_str, category_difficulty = player.session.vars['geography_easy'], 'geography_easy' elif C.MEDIUM in button_name: player.group.difficulty_choice = "Medium" df_str, category_difficulty = player.session.vars['geography_medium'], 'geography_medium' elif C.HARD in button_name: player.group.difficulty_choice = "Hard" df_str, category_difficulty = player.session.vars['geography_hard'], 'geography_hard' elif C.LITERATURE in button_name: player.group.category_choice = "Literature" if C.EASY in button_name: player.group.difficulty_choice = "Easy" df_str, category_difficulty = player.session.vars['literature_easy'], 'literature_easy' elif C.MEDIUM in button_name: player.group.difficulty_choice = "Medium" df_str, category_difficulty = player.session.vars['literature_medium'], 'literature_medium' elif C.HARD in button_name: player.group.difficulty_choice = "Hard" df_str, category_difficulty = player.session.vars['literature_hard'], 'literature_hard' elif C.POP_CULTURE in button_name: player.group.category_choice = "Pop Culture" if C.EASY in button_name: player.group.difficulty_choice = "Easy" df_str, category_difficulty = player.session.vars['pop_culture_easy'], 'pop_culture_easy' elif C.MEDIUM in button_name: player.group.difficulty_choice = "Medium" df_str, category_difficulty = player.session.vars['pop_culture_medium'], 'pop_culture_medium' elif C.HARD in button_name: player.group.difficulty_choice = "Hard" df_str, category_difficulty = player.session.vars['pop_culture_hard'], 'pop_culture_hard' elif C.SCIENCE in button_name: player.group.category_choice = "Science" if C.EASY in button_name: player.group.difficulty_choice = "Easy" df_str, category_difficulty = player.session.vars['science_easy'], 'science_easy' elif C.MEDIUM in button_name: player.group.difficulty_choice = "Medium" df_str, category_difficulty = player.session.vars['science_medium'], 'science_medium' elif C.HARD in button_name: player.group.difficulty_choice = "Hard" df_str, category_difficulty = player.session.vars['science_hard'], 'science_hard' questions_left = player.select_question(df_str) player.session.vars[category_difficulty] = json.dumps(questions_left)