from otree.api import * import random class C(BaseConstants): NAME_IN_URL = 'Description_DCE' PLAYERS_PER_GROUP = None NUM_ROUNDS = 1 TRT = ["noTreatments"] class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): trt = models.StringField() Ctrl_Car = models.IntegerField(label="Wie sind Sie laut Beschreibung in den Urlaub gereist?", blank=True, choices=[ [11, 'Mit dem Zug'], [12, 'Mit dem Flugzeug'], [1, 'Mit dem eigenen PKW'], [13, 'Mit dem Fahrrad'] ]) Ctrl_Partner = models.IntegerField(label="Mit wem sind Sie laut Beschreibung in den Urlaub gereist?", blank=True, choices=[ [11, 'Mit meinem Partner/meiner Partnerin'], [12, 'Mit meinen Eltern'], [13, 'Mit meinen Kindern'], [1, 'Mit einer erwachsenen Begleitperson'] ]) Ctrl_Holiday = models.IntegerField(label="In welcher Jahreszeit sind Sie laut Beschreibung in den Urlaub gereist?", blank=True, choices=[ [1, 'Sommer'], [12, 'Winter'] ]) class Description_DCE_Intro(Page): @staticmethod def is_displayed(player): return player.participant.vars.get('survey_participate') == 1 class Description_DCE_single(Page): @staticmethod def is_displayed(player): return player.participant.vars.get('survey_participate') == 1 class Description_DCE_control(Page): form_model = 'player' form_fields = ['Ctrl_Car', 'Ctrl_Partner', 'Ctrl_Holiday'] @staticmethod def is_displayed(player): return player.participant.vars.get('survey_participate') == 1 @staticmethod def error_message(player, values): correct = 1 # <- the correct code if values['Ctrl_Car'] != correct: return "Leider sind nicht alle Fragen korrekt beantwortet. Bitte lesen die Situationsbeschreibung noch einmal." if values['Ctrl_Holiday'] != correct: return "Leider sind nicht alle Fragen korrekt beantwortet. Bitte lesen die Situationsbeschreibung noch einmal." if values['Ctrl_Partner'] != correct: return "Leider sind nicht alle Fragen korrekt beantwortet. Bitte lesen die Situationsbeschreibung noch einmal." page_sequence = [Description_DCE_Intro, Description_DCE_single, Description_DCE_control]