from ._builtin import Page, WaitPage from otree.api import Currency as c, currency_range from .models import Constants from . import models from django.views.decorators.csrf import csrf_exempt from django.utils.decorators import method_decorator from otree.api import safe_json import random class NormalWaitPage1(WaitPage): pass class Task0_WaitingPage(Page): form_model = 'player' form_fields = ['continue1'] def error_message(self, values): print('value is', values) if not values["continue1"] == 65: return 'This is not the number given to you. Please raise your hand for assistance.' class Task0_Welcome(Page): def before_next_page(self): #Function that cleans the string that has stored the three randomly chosen IQ questions# self.player.set_payoff_cleaning_IQ() class Task1_Instructions(Page): form_model = 'player' form_fields = ['continue2'] def error_message(self, values): print('value is', values) if not values["continue2"] == 100: return 'This is not the number given to you. Please raise your hand for assistance.' class Task1_CQ(Page): form_model = 'player' form_fields = ['Task1CQ1','Task1CQ2','Task1CQ3','Task1CQ4'] def error_message(self, values): print('values is', values) if values["Task1CQ1"] !=5 or values["Task1CQ2"] !=2 or values["Task1CQ3"] !=5 or values["Task1CQ4"]!=2: return 'There is at least one incorrect answer. Please, reconsider.' class Task1_Quiz(Page): form_model = 'player' form_fields = ['Puzzles1','Puzzles2','Puzzles3','Puzzles4','Puzzles5','Puzzles6','Puzzles7','Puzzles8','Puzzles9','Puzzles10', 'Puzzles11','Puzzles12','Puzzles13','Puzzles14','Puzzles15','Puzzles16','Puzzles17','Puzzles18','Puzzles19','Puzzles20', 'Puzzles21', 'Puzzles22', 'Puzzles23', 'Puzzles24', 'Puzzles25'] timeout_seconds = 600 def before_next_page(self): #Functions that determine whether the IQ questions are correct# self.player.set_payoff1() self.player.set_payoff2() self.player.set_payoff3() self.player.set_payoff4() self.player.set_payoff5() self.player.set_payoff6() self.player.set_payoff7() self.player.set_payoff8() self.player.set_payoff9() self.player.set_payoff10() self.player.set_payoff11() self.player.set_payoff12() self.player.set_payoff13() self.player.set_payoff14() self.player.set_payoff15() self.player.set_payoff16() self.player.set_payoff17() self.player.set_payoff18() self.player.set_payoff19() self.player.set_payoff20() self.player.set_payoff21() self.player.set_payoff22() self.player.set_payoff23() self.player.set_payoff24() self.player.set_payoff25() #Function that determine how many quiz questions are correct# self.player.set_correct_Quiz_total() #Functions that set the IQ variable with random variable so the later determine the median split# self.player.set_median() class NormalWaitPage2(WaitPage): def after_all_players_arrive(self): #Function that determines the median value# self.group.set_IQ_median() class Task1_End(Page): def before_next_page(self): #Function that determines the individual is above/below the median# self.player.set_AboveMedian() self.player.set_feedback_signal1_private() self.player.set_feedback_signal1_public() self.player.set_IQ_payoff_1 () self.player.set_IQ_payoff_2 () self.player.set_IQ_payoff_3 () self.player.set_IQ_totalpayoff_random3() self.player.set_participant_variables() page_sequence = [ NormalWaitPage1, Task0_WaitingPage, Task0_Welcome, Task1_Instructions, Task1_CQ, Task1_Quiz, NormalWaitPage2, Task1_End, ]