from otree.api import (BaseConstants, BaseGroup, BasePlayer, BaseSubsession, models, widgets) author = 'Your name here' doc = """ """ class Constants(BaseConstants): name_in_url = 'end' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass QUESTIONS = { 'age': { 'label': 'In welche Alterskategorie fallen Sie?', 'choices': ['17 oder jünger', '18-24', '25-30', '31 oder älter', ], 'widget': widgets.RadioSelect }, 'education': { 'label': 'In welchem Studienabschnitt befinden Sie sich?', 'choices': ['Bachelor', 'Master', 'Sonstiges', ], 'widget': widgets.RadioSelect }, 'employment': { 'label': 'Befinden Sie sich in einem Arbeitsverhältnis?', 'choices': [ 'Ja, in Teilzeit', 'Ja, in Vollzeit', 'Nein', ], 'widget': widgets.RadioSelect }, 'income': { 'label': 'In welche Kategorie fällt ihr durchschnittliches Monatseinkommen?', 'choices': [ 'Weniger als 500€', '500 - 750 €', '750 - 1000 €', '1000 - 1250 €', 'Mehr als 1250 €', ], 'widget': widgets.RadioSelect }, 'bored': { 'label': 'Wie haben Sie sich während der Wartezeit gefühlt?', 'choices': [ [5, 'Sehr gelangweilt'], [4, 'Ziemlich gelangweilt'], [3, 'Weder gelangweilt noch beschäftigt'], [2, 'Ziemlich beschäftigt'], [1, 'Sehr beschäftigt'], ], 'widget': widgets.RadioSelect }, 'attracted': { 'label': 'Wie sehr haben Sie sich vom Video unterhalten gefühlt?', 'choices': [ [5, 'Sehr unterhalten'], [4, 'Ziemlich unterhalten'], [3, 'Unentschieden'], [2, 'Eher nicht unterhalten'], [1, 'Gar nicht unterhalten'], ], 'widget': widgets.RadioSelect }, 'annoyed': { 'label': 'Wie sehr hat Sie die Wartezeit gestört?', 'choices': [ [5, 'Sehr gestört'], [4, 'Ziemlich gestört'], [3, 'Unentschieden'], [2, 'Eher nicht gestört'], [1, 'Gar nicht gestört'], ], 'widget': widgets.RadioSelect }, 'satisfied': { 'label': 'Wie sehr sind Sie mit dem Experiment zufrieden?', 'choices': [ [5, 'Sehr zufrieden'], [4, 'Ziemlich zufrieden'], [3, 'Weder zufrieden noch unzufrieden'], [2, 'Ziemlich unzufrieden'], [1, 'Sehr unzufrieden'], ], 'widget': widgets.RadioSelect }, 'environment': { 'label': 'Wie wichtig waren Umweltaspekte für Ihre Entscheidung?', 'choices': [ [5, 'Sehr wichtig'], [4, 'Ziemlich wichtig'], [3, 'Weder wichtig noch unwichtig'], [2, 'Ziemlich unwichtig'], [1, 'Sehr unwichtig'], ], 'widget': widgets.RadioSelect }, 'traffic': { 'label': 'Wie wichtig waren potentielle Staus für Ihre Entscheidung?', 'choices': [ [5, 'Sehr wichtig'], [4, 'Ziemlich wichtig'], [3, 'Weder wichtig noch unwichtig'], [2, 'Ziemlich unwichtig'], [1, 'Sehr unwichtig'], ], 'widget': widgets.RadioSelect }, } class Player(BasePlayer): deduction = models.CurrencyField() clicks = models.StringField() strategy = models.LongStringField(label='Welcher Strategie sind Sie während des Experiments gefolgt?') age = models.StringField(**QUESTIONS['age']) education = models.StringField(**QUESTIONS['education']) employment = models.StringField(**QUESTIONS['employment']) income = models.StringField(**QUESTIONS['income']) environment = models.IntegerField(**QUESTIONS['environment']) traffic = models.IntegerField(**QUESTIONS['traffic']) bored = models.IntegerField(**QUESTIONS['bored']) annoyed = models.IntegerField(**QUESTIONS['annoyed']) satisfied = models.IntegerField(**QUESTIONS['satisfied']) attracted = models.IntegerField(**QUESTIONS['attracted']) comment = models.LongStringField(label='Haben Sie sonstige Anmerkungen zum Verlauf des Experiments?', blank=True)