from otree.api import * author = 'Patricia Zauchner (zauchner@uni-bremen.de)' doc = """ Questionnaire at the end and final page. """ class C(BaseConstants): NAME_IN_URL = 'questionnaire' PLAYERS_PER_GROUP = 5 NUM_ROUNDS = 1 ARG_MAX_LENGHT = 250 class Subsession(BaseSubsession): pass def creating_session(subsession: Subsession): # # Copy the group and player id structure of the first app if "id_matrix" in subsession.session.vars: unusedvariable = subsession.get_group_matrix() # this command is just used to avoid the flush errors in the terminal subsession.set_group_matrix(subsession.session.vars['id_matrix']) else: subsession.group_randomly() # oTree function subsession.session.vars['id_matrix'] = subsession.get_group_matrix() print("ID Matrix created in app questionnaire", subsession.session.vars['id_matrix']) # class Group(BaseGroup): pass class Player(BasePlayer): female = models.IntegerField( # Old variable name: gender doc="Gender of participant", label="Ihr Geschlecht:", initial=None, choices=[ [1, "weiblich"], [0, "männlich"], [2, "divers"], [-1, "keine Angabe"], ], ) yearOfBirth = models.IntegerField( doc="Year of birth of the participant", label="Ihr Geburtsjahr (jjjj):", min=1900, max=2008, blank=False ) # household_size = models.IntegerField( # doc="Wie viele Personen leben in Ihrem Haushalt/ Ihrer Wohnung? (Sie mit einbezogen)", # label="Wie viele Personen leben in Ihrem Haushalt/ Ihrer Wohnung? (Sie mit einbezogen) *", # min=1 # ) # # household_under18 = models.IntegerField( # doc="Wie viele davon sind unter 18 Jahre alt?", # label="Wie viele davon sind unter 18 Jahre alt? *", # min=0 # ) leistungenYesNo = models.IntegerField( doc="Whether participant receives any welfare benefits", label="Erhalten Sie ergänzende Leistungen (z. B. Wohngeld, ALG-II)?", choices=[ [1, "Ja"], [0, "Nein"], [-1, "Keine Angabe"] ], blank=True ) leistungen = models.LongStringField( doc="Welfare benefits that the participant receives", label="Wenn ja: Welche ergänzenden Leistungen erhalten Sie? (bitte auch angerechnete Leistungen)", blank=True ) # School graduation schulabschluss = models.IntegerField( doc="Highest school degree of the participant", label="Was ist Ihr höchster Schulabschluss?", choices=[ [1, "Schüler/Schülerin "], [2, "Schule ohne Abschluss beendet "], [3, "Hauptschulabschluss"], [4, "Realschulabschluss (Mittlere Reife)"], [5, "Fachhochschulreife"], [6, "Abitur, Allgemeine Hochschulreife"], [7, "Einen anderen Schulabschluss"], [-1, "Keine Angabe"] ] ) schulabschluss_andere = models.StringField( label="Bitte geben Sie Ihren Schulabschluss an:", blank=True) # Professional degree berufsabschluss = models.IntegerField(label="Welchen höchsten Berufsabschluss haben Sie?", choices=[ [1, "Keinen"], [2, "Noch in Ausbildung"], [3, "Lehre, Facharbeiterabschluss"], [4, "Berufsfachschule, Handelsschule, Schule des Gesundheitswesens"], [5, "Fachschule (z. B. Meister-, oder Technikerschule)"], [6, "Beamtenausbildung"], [7, "Fachhochschule, Berufsakademie"], [8, "Hochschulabschluss (z. B. Bachelor, Master, Magister, Diplom)"], [9, "Promotion"], [10, "Einen anderen Berufsabschluss"], [-1, "Keine Angabe"] ], ) berufsabschluss_andere = models.StringField( label="Bitte geben Sie Ihren Berufsabschluss an:", blank=True) # origin_father = models.StringField(label="In welchem Land wurde Ihr Vater geboren?", blank=True) # origin_mother = models.StringField(label="In welchem Land wurde Ihre Mutter geboren?", blank=True) # Pages class Survey(Page): """ Socio-demographics-Questionnaire """ form_model = "player" form_fields = ["female", "yearOfBirth", # "household_size", "household_under18", # "beruf1", "beruf1_hours", "beruf2", "beruf2_hours", # "beruf3", "beruf3_hours", "beruf4", "beruf4_hours", # "beruf5", "beruf5_hours", "leistungenYesNo", "leistungen", "schulabschluss", "schulabschluss_andere", "berufsabschluss", "berufsabschluss_andere", # "origin_father", "origin_mother", # "berufvater", "berufmutter", # "degree_father", "degree_mother" ] class End(Page): """ End page """ pass page_sequence = [ Survey, End]