from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class welcome(Page): def is_displayed(self): return self.player.round_number == 1 def before_next_page(self): self.player.device_type = user_agent = self.request.META['HTTP_USER_AGENT'] self.player.is_mobile = False for substring in ['Mobi', 'Android', 'iPad']: if substring in user_agent: self.player.is_mobile = True class RealTask(Page): def is_displayed(self): return self.player.round_number == 1 class quiz(Page): def is_displayed(self): return self.subsession.round_number == 1 form_model = 'player' form_fields = ['quiz_1', 'quiz_2', 'quiz_3', 'quiz_4', 'quiz_5'] def error_message(self, values): print('values is', values) if values["quiz_1"] != "10 rondes" or values["quiz_2"] != "5 eurocent" or values["quiz_3"] != \ "32 punten" or values["quiz_4"] != \ "6 punten" or values["quiz_5"] != \ "60 seconden": return 'Je hebt minstens 1 fout antwoord gegeven. Lees de onderstaande instructies nog een keer goed door, en corrigeer de vragen die je fout hebt. Mocht je er niet uitkomen, vraag het dan aan de proefleider.' class Treatment(Page): def is_displayed(self): return self.player.treatment > 1 & self.player.round_number == 1 class Choice(Page): form_model = 'player' form_fields = ['choose_to_work'] class SliderTask(Page): def is_displayed(self): return self.player.choose_to_work == True timeout_seconds = 60 form_model = 'player' form_fields = ['s1', 's2', 's3', 's4', 's5', 's6', 's7', 's8', 's9', 's10', 's11', 's12', 's13', 's14', 's15', 's16', 's17', 's18', 's19', 's20', 's21', 's22', 's23', 's24', 's25', 's26', 's27', 's28', 's29', 's30', 's31', 's32'] class RealTask2(Page): pass timeout_seconds = 60 def before_next_page(self): self.player.set_payoffs() self.player.saldo = self.participant.payoff class Slider_Result(Page): pass timeout_seconds = 60 def vars_for_template(self): absolute_payoff = abs(self.participant.payoff) absolute_payoff_round = abs(self.player.payoff) if self.participant.payoff < 0: verdiendofverloren = "verloren" if self.participant.payoff >= 0: verdiendofverloren = "verdiend" if self.player.payoff < 0: verdiendofverloren_round = "verloren" if self.player.payoff >= 0: verdiendofverloren_round = "verdiend" return {'absolute_payoff': absolute_payoff, 'verdiendofverloren': verdiendofverloren, 'absolute_payoff_round': absolute_payoff_round, 'verdiendofverloren_round': verdiendofverloren_round} class motives(Page): form_model = 'player' form_fields = ['motive_1', 'motive_2', 'motive_3', 'motive_4', 'motive_5', 'motive_6', 'motive_7', 'motive_8','motive_9','motive_10'] def is_displayed(self): return self.player.round_number == Constants.num_rounds class MTS7(Page): form_model = 'player' form_fields = ['MTS7_1', 'MTS7_2','MTS7_3', 'MTS7_4', 'MTS7_5', 'MTS7_6', 'MTS7_7'] def is_displayed(self): return self.player.round_number == Constants.num_rounds page_sequence = [welcome, RealTask, quiz, Treatment, Choice, SliderTask, RealTask2, Slider_Result, motives, MTS7]