import os from otree.api import * import random import pycountry doc = """ Instructions and information""" def get_cities(): with open(os.path.join(os.path.dirname(__file__), 'staedte.txt'), 'r', encoding='utf-8') as file: cities = [line.strip() for line in file] return [(city, city) for city in cities] def get_countries(): with open(os.path.join(os.path.dirname(__file__), 'laender.txt'), 'r', encoding='utf-8') as file: countries = [line.strip() for line in file] return [(country, country) for country in countries] class C(BaseConstants): NAME_IN_URL = 'First_Game' PLAYERS_PER_GROUP = None NUM_ROUNDS = 1 Hobbies = [ dict(name='Politik', label="Politik und Wirtschaft"), dict(name='Kultur', label="Kultur und Kunst (Musik, Literatur, Sprachen, Film, Fotografie)"), dict(name='Technik', label="Technik"), dict(name='Sport', label="Sport"), dict(name='Familie', label="Familie und Heim (Heimwerken, Handarbeit, Kochen, Gartenarbeit) "), dict(name='Wellness', label="Wellness und Gesundheit"), dict(name='Philosophie', label="Philosophie, Religion und Spiritualität"), dict(name='Tiere', label="Tiere und Natur"), ] Sports = [ dict(name='Ballsport', label="Ballsport (Fuß-, Hand-, Basketball, Tennis, Hockey, ...)"), dict(name='Wintersport', label="Wintersport (Skifahren, Snowboarden, ...)"), dict(name='Wassersport', label="Wassersport (Schwimmen, Tauchen, Bootsport, ...)"), dict(name='Kraftsport', label="Kraftsport (Gewichtheben, CrossFit, Zirkeltraining, ...)"), dict(name='Yoga', label="Yoga/ Pilates/ Qi Gong/ Gymnastik"), dict(name='Reiten', label="Reiten "), dict(name='Klettern', label="Klettern"), dict(name='Leichtathletik', label="Leichtathletik"), dict(name='Kampfsport', label="Kampfsport"), dict(name='Motorsport', label="Rad-/ Motorsport (Rennrad, Mountain Biking)"), dict(name='Tanzsport', label="Tanzsport"), dict(name='NoSport', label="Kein Sport"), ] Music = [ dict(name='Klassik', label="Klassik, Sinfonien"), dict(name='Deutsche', label="Deutsche Schlager, Volksmusik"), dict(name='Pop', label="Pop"), dict(name='Rap', label="HipHop, Rap, RnB "), dict(name='Rock', label="Rock, Hard, Heavy "), dict(name='Reggae', label="Reggae"), dict(name='Jazz', label="Jazz, Blues, Spirituals, Gospel"), dict(name='Electronic', label="Dance & Electronic"), ] Film = [ dict(name='Krimi', label="Krimi"), dict(name='THorror', label="Thriller/Horror"), dict(name='Liebesfilme', label="Liebesfilme "), dict(name='Action', label="Action"), dict(name='Komödie', label="Komödie"), dict(name='Fiction', label="Science-Fiction"), dict(name='Dokus', label="Dokus"), dict(name='Animation', label="Animation "), ] Urlaub = [ dict(name='Meer', label="Am Meer "), dict(name='Bergen', label="In den Bergen "), dict(name='Stadte', label="Städte, Kultur und Kunst"), dict(name='Party', label="Party-Hotspots ziehen mich an "), dict(name='Hauptsache', label="Hauptsache abenteuerlich"), dict(name='abschalten', label="All-inclusive und einfach mal abschalten "), dict(name='Umso', label="Umso weiter weg, umso besser"), dict(name='Hause', label="Zu Hause "), ] Eigenschaften = [ dict(name='karrierebewusst', label="karrierebewusst und zielorientiert "), dict(name='kinderlieb', label="kinderlieb und familienbezogen "), dict(name='sportlich', label="sportlich und aktiv"), dict(name='zuruckhaltend', label="zurückhaltend und ruhig "), dict(name='sparsam', label="sparsam und genügsam"), dict(name='warmherzig', label="warmherzig und hilfsbereit"), dict(name='zuverlassig', label="zuverlässig"), dict(name='humorvoll', label="humorvoll und heiter "), ] Denken = [ dict(name='aufgelegt', label="Ist zu jedem Spaß aufgelegt."), dict(name='gute', label="Hat immer gute Laune und ist fröhlich."), dict(name='ernsthaft', label="Denkt viel und ernsthaft über das Leben nach. "), dict(name='vertraumt', label="Ist etwas verträumt."), dict(name='sachlich', label="Geht sachlich und überlegt an Schwierigkeiten heran."), dict(name='Losung', label="Findet auch in unangenehmen Situationen eine für sich gute Lösung."), dict(name='bringen', label="Lässt sich durch nichts aus der Ruhe bringen."), dict(name='lebhaft', label="Nimmt an allem lebhaft teil. "), ] Wichtigsten = [ dict(name='Freundschaft', label="Freundschaft"), dict(name='Liebe', label="Glück in der Liebe"), dict(name='Ruhe', label="Ruhe und Zufriedenheit"), dict(name='Erfolg', label="Beruflicher Erfolg"), dict(name='Menschen', label="Von den Menschen in meiner Umgebung geachtet und respektiert zu sein"), dict(name='Soziale', label="Soziale Sicherheit"), dict(name='Selbstverwirklichung', label="Selbstverwirklichung"), dict(name='Partner', label="Ein familiäres Zuhause mit einem Partner "), ] class Subsession(BaseSubsession): pass def creating_session(subsession: Subsession): import random used_ids = set() for p in subsession.get_players(): # Generate a random ID #min_range = self.session.config.get('min_range', 100) #min_range = self.session.config.get('max_range', 200) random_id = random.randrange(100, 200) # Check for duplicates and generate a new ID if needed while random_id in used_ids: random_id = random.randrange(100, 200) # Add the ID to the used_ids set used_ids.add(random_id) # Assign the unique ID to the player p.Participants_ID = random_id print("-----------:") print("random ID:", p.Participants_ID) class Group(BaseGroup): pass class Player(BasePlayer): Participants_ID = models.IntegerField() ID_check=models.IntegerField(blank=True) Politik = models.BooleanField(blank=True, initial=False) Kultur = models.BooleanField(blank=True, initial=False) Technik = models.BooleanField(blank=True, initial=False) Sport = models.BooleanField(blank=True, initial=False) Familie = models.BooleanField(blank=True, initial=False) Wellness = models.BooleanField(blank=True, initial=False) Philosophie = models.BooleanField(blank=True, initial=False) Tiere = models.BooleanField(blank=True, initial=False) # question2 Ballsport = models.BooleanField(blank=True, initial=False) Wintersport = models.BooleanField(blank=True, initial=False) Wassersport = models.BooleanField(blank=True, initial=False) Kraftsport = models.BooleanField(blank=True, initial=False) Yoga = models.BooleanField(blank=True, initial=False) Reiten = models.BooleanField(blank=True, initial=False) Klettern = models.BooleanField(blank=True, initial=False) Leichtathletik = models.BooleanField(blank=True, initial=False) Kampfsport = models.BooleanField(blank=True, initial=False) Motorsport = models.BooleanField(blank=True, initial=False) Tanzsport = models.BooleanField(blank=True, initial=False) NoSport = models.BooleanField(blank=True, initial=False) # Question 3 Klassik = models.BooleanField(blank=True, initial=False) Deutsche = models.BooleanField(blank=True, initial=False) Pop = models.BooleanField(blank=True, initial=False) Rap = models.BooleanField(blank=True, initial=False) Rock = models.BooleanField(blank=True, initial=False) Reggae = models.BooleanField(blank=True, initial=False) Jazz = models.BooleanField(blank=True, initial=False) Electronic = models.BooleanField(blank=True, initial=False) # Question 4 Krimi = models.BooleanField(blank=True, initial=False) THorror = models.BooleanField(blank=True, initial=False) Liebesfilme = models.BooleanField(blank=True, initial=False) Action = models.BooleanField(blank=True, initial=False) Komödie = models.BooleanField(blank=True, initial=False) Fiction = models.BooleanField(blank=True, initial=False) Dokus = models.BooleanField(blank=True, initial=False) Animation = models.BooleanField(blank=True, initial=False) # Question 5 Meer = models.BooleanField(blank=True, initial=False) Bergen = models.BooleanField(blank=True, initial=False) Stadte = models.BooleanField(blank=True, initial=False) Party = models.BooleanField(blank=True, initial=False) Hauptsache = models.BooleanField(blank=True, initial=False) abschalten = models.BooleanField(blank=True, initial=False) Umso = models.BooleanField(blank=True, initial=False) Hause = models.BooleanField(blank=True, initial=False) # Question 6 karrierebewusst = models.BooleanField(blank=True, initial=False) kinderlieb = models.BooleanField(blank=True, initial=False) sportlich = models.BooleanField(blank=True, initial=False) zuruckhaltend = models.BooleanField(blank=True, initial=False) sparsam = models.BooleanField(blank=True, initial=False) warmherzig = models.BooleanField(blank=True, initial=False) zuverlassig = models.BooleanField(blank=True, initial=False) humorvoll = models.BooleanField(blank=True, initial=False) # Question 7 aufgelegt = models.BooleanField(blank=True, initial=False) gute = models.BooleanField(blank=True, initial=False) ernsthaft = models.BooleanField(blank=True, initial=False) vertraumt = models.BooleanField(blank=True, initial=False) sachlich = models.BooleanField(blank=True, initial=False) Losung = models.BooleanField(blank=True, initial=False) bringen = models.BooleanField(blank=True, initial=False) lebhaft = models.BooleanField(blank=True, initial=False) # Question 8 Freundschaft = models.BooleanField(blank=True, initial=False) Liebe = models.BooleanField(blank=True, initial=False) Ruhe = models.BooleanField(blank=True, initial=False) Erfolg = models.BooleanField(blank=True, initial=False) Menschen = models.BooleanField(blank=True, initial=False) Soziale = models.BooleanField(blank=True, initial=False) Selbstverwirklichung = models.BooleanField(blank=True, initial=False) Partner = models.BooleanField(blank=True, initial=False) # Question 9 Religion = models.IntegerField(widget=widgets.RadioSelect, label="9. Welcher Religion fühlen Sie sich zugehörig? (Es kann eine Antwort ausgewählt werden)", choices=[ [1, 'Katholisch'], [2, 'Evangelisch '], [3, 'Muslimisch '], [4, 'Jüdisch '], [5, 'Buddhistisch '], [6, 'Hinduistisch'], [7, 'Andere Religionsgemeinschaft'], [8, 'Konfessionslos'], ] ) # Question 10 diskutiert = models.IntegerField(widget=widgets.RadioSelect, label="10. Es wird viel diskutiert über Klimawandel, Umweltschutz, Energiequellen usw. Welche Aussage steht Ihrer Meinung am nächsten? (Es kann eine Antwort ausgewählt werden)", choices=[ [1, 'Angesichts unserer fortgeschrittenen Technologie sollte uns doch was Vernünftiges einfallen.'], [2, 'Wir sollten einfach akzeptieren, dass wir mit der Natur pfleglicher umgehen müssen. '], [3, 'Am liebsten würde ich gar nicht daran denken, was da noch alles auf uns zukommt. '], [4, 'Ich sehe das Problem nicht. '], ] ) # Question 11 Trust = models.IntegerField(widget=widgets.RadioSelect, label="11. Glauben Sie an das Gute im Menschen? (Es kann eine Antwort ausgewählt werden)", choices=[ [1, 'Ja, immer.'], [2, 'Ich versuche es, aber es fällt mir manchmal schwer. '], [3, 'Kommt darauf an, in welchem Zusammenhang. '], [4, 'Nein. '], ] ) # Question 12 vorgenommen = models.IntegerField(widget=widgets.RadioSelect, label="12. Wie gehen Sie vor, wenn Sie sich privat etwas vorgenommen haben? (Es kann eine Antwort ausgewählt werden)", choices=[ [1, 'Ich gehe ziemlich systematisch vor.'], [2, 'Ich denke, das wird sich schon irgendwie ergeben. '], [3, 'Ich warte, bis ich dafür in der richtigen Stimmung bin. '], ] ) # Question 13 ublicherweise = models.IntegerField(widget=widgets.RadioSelect, label="13. Wenn Ihnen jemand widerspricht, obwohl Sie genau wissen, dass Sie Recht haben, wie reagieren Sie dann üblicherweise? (Es kann eine Antwort ausgewählt werden)", choices=[ [1, 'Ich ärgere mich über die Rechthaberei des anderen, belasse es aber dabei. '], [2, 'Es ist mir gar nicht so wichtig, Recht zu bekommen. '], [3, 'Ich versuche, den anderen zu überzeugen. '], [4, 'Ich werde klarstellen, wer Recht hat. '], ] ) # Question 14 Impuls = models.IntegerField(widget=widgets.RadioSelect, label="14. Was ist Ihr erster Impuls, wenn Sie sich über das Verhalten eines Menschen, der Ihnen nahesteht, sehr ärgern? (Es kann eine Antwort ausgewählt werden)", choices=[ [1, 'Ich sage deutlich, dass ich verärgert bin.'], [2, 'Ich bleibe ruhig und versuche, die Situation zu klären. '], [3, 'Ich denke mir: Das kommt ja nicht so oft vor. '], [4, 'Ich schlucke den Ärger runter und beiße die Zähne zusammen. '], ] ) # Question 15 geschieht = models.IntegerField(widget=widgets.RadioSelect, label="15. Manchmal geschieht es, dass man von einem Menschen gekränkt wird. Wie reagieren Sie dann darauf? (Es kann eine Antwort ausgewählt werden)", choices=[ [1, 'Ich denke, vielleicht war es gar nicht so gemeint.'], [2, 'Ich bin mir sicher, dass ich schon einen Weg finden werde damit umzugehen. '], [3, 'Da habe ich schon eine Weile dran zu nagen. '], [4, 'Am liebsten würde ich so etwas sofort heimzahlen. '], ] ) # Question 16 Stellen = models.IntegerField(widget=widgets.RadioSelect, label="16. Stellen Sie sich vor: Ein Freund/eine Freundin kauft sich ein viel zu teures neues Auto, weit über seine/ihre Verhältnisse. Es ist genau das Auto, von dem Sie selbst immer geträumt haben. Was könnten Sie Ihrem Freund/Ihrer Freundin sagen? (Es kann eine Antwort ausgewählt werden)", choices=[ [1, 'Man sollte nicht über seine Verhältnisse leben. Wann wirst du endlich erwachsen?'], [2, 'Der ist so schön, da hätte ich Angst, den öffentlich zu parken und direkt eine Beule oder einen Kratzer zu bekommen. '], [3, 'Denk doch mal nach, sobald du einen Meter damit gefahren bist, ist der Wagen nur noch die Hälfte wert. '], [4, 'Oh, toll! Lass uns eine Spritztour machen! '], ] ) # Question 17 Stellen17 = models.IntegerField(widget=widgets.RadioSelect, label="17. Stellen Sie sich vor: Sie und ein Freund/eine Freundin haben sich über eine andere Person sehr geärgert. Da macht Ihr Freund/Ihre Freundin den Vorschlag, der anderen Person eins auszuwischen. Was könnte Ihre erste Reaktion sein? (Es kann eine Antwort ausgewählt werden)", choices=[ [1, 'Ich weiß nicht. Das würde ich mir zweimal überlegen. Wer anderen eine Grube gräbt, fällt selbst hinein.'], [2, 'Vergiss es, in einem Jahr lachen wir darüber. '], [3, 'Das ist gemein, da mache ich nicht mit. '], [4, 'Ich denke, das könnte ganz lustig sein. '], ] ) # Question 18 Stellen18 = models.IntegerField(widget=widgets.RadioSelect, label="18. Stellen Sie sich vor: Sie rutschen auf dem Bürgersteig auf einer Bananenschale aus. Sie haben sich nicht verletzt, aber die Leute drehen sich um und bleiben stehen. Man will Ihnen helfen. Was könnte Ihre erste Reaktion sein? (Es kann eine Antwort ausgewählt werden)", choices=[ [1, 'Ich ärgere mich darüber, dass es Menschen gibt, die ohne darüber nachzudenken, eine Bananenschale auf den Bürgersteig werfen.'], [2, 'Ich stehe auf und trage die Bananenschale zum nächsten Abfallkorb, damit anderen nicht dasselbe passiert. '], [3, 'Während ich noch sitze, schaue ich mir von unten die Leute an und sage: „Was für eine Show, damit könnte ich auftreten, oder?" '], [4, 'Ich stehe auf, sage "Nichts passiert!" und gehe weiter. '], ] ) # Question 19 Stellen19 = models.IntegerField(widget=widgets.RadioSelect, label="19. Stellen Sie sich vor: Sie wohnen in einem größeren Wohnhaus. Um halb drei morgens läutet es bei Ihnen. An der Gegensprechanlage meldet sich jemand und fragt, ob im Haus ein Herr Müller wohne. Das trifft tatsächlich zu - und natürlich hat Ihr Nachbar auch eine eigene Klingel. Was könnten Sie sagen? (Es kann eine Antwort ausgewählt werden)", choices=[ [1, '„Dafür haben Sie mich aus dem tiefsten Schlaf gerissen!“ Und ich beende das Gespräch.'], [2, 'Ich denke, es könnte ja was passiert sein. Wenn dann nach Müller gefragt wird, schimpfe ich in den Apparat: „Sind Sie wahnsinnig! Was fällt Ihnen ein, mitten in der Nacht fremde Leute zu stören?“ '], [3, '„Wenn Sie den Müller mögen, dann lassen Sie ihn schlafen.“ '], [4, 'Ich denke, es könnte ja was passiert sein. Wenn dann nach Müller gefragt wird, lasse ich mir erklären, was er/sie nachts von Herrn Müller will. '], ] ) # Question 20 Geschlecht20 = models.IntegerField(widget=widgets.RadioSelect, label="20. Was ist Ihr Geschlecht?", choices=[ [1, 'Weiblich '], [2, 'Männlich '], [3, 'Divers '], ] ) # Question 21 Year = models.IntegerField(label="Geburtsjahr", choices=[ [1970, '1970'], [1971, '1971'], [1972, '1972'], [1973, '1973'], [1974, '1974'], [1975, '1975'], [1976, '1976'], [1977, '1977'], [1978, '1978'], [1979, '1979'], [1980, '1980'], [1981, '1981'], [1982, '1982'], [1983, '1983'], [1984, '1984'], [1985, '1985'], [1986, '1986'], [1987, '1987'], [1988, '1988'], [1989, '1989'], [1990, '1990'], [1991, '1991'], [1992, '1992'], [1993, '1993'], [1994, '1994'], [1995, '1995'], [1996, '1996'], [1997, '1997'], [1998, '1998'], [1999, '1999'], [2000, '2000'], [2001, '2001'], [2002, '2002'], [2003, '2003'], [2004, '2004'], [2005, '2005'], ] ) # Question 22 Studienfeld = models.StringField(blank = False) Studiengang = models.StringField(blank = False) # Question 23 country = models.CharField( choices=get_countries(), verbose_name='Country' ) # Question 24 city = models.CharField( choices=get_cities(), verbose_name='City' ) # PAGES class MyPage(Page): pass class MyWaitPage(WaitPage): def after_all_players_arrive(group: Group): pass #title and body text for the wait page def title_text(self): return "Bitte warten" def body_text(self): return "Bitte warten Sie, bis das Experiment weitergeht." class Instructions(Page): timeout_seconds = 600 #for the timer text timer_text = "Verbleibende Zeit:" class Unique_ID(Page): pass # def vars_for_template(self: Player): # self.subsession.() class ID_check(Page): form_model = 'player' form_fields = ['ID_check'] def vars_for_template(player: Player): player.ID_check = player.Participants_ID return { "ID": player.ID_check, } class Instruction_questionnare(Page): pass class Questionare(Page): form_model = 'player' form_fields = ['Hobbies'] @staticmethod def get_form_fields(player: Player): return [hob['name'] for hob in C.Hobbies] # @staticmethod # def get_form_fields(player: Player): # # return [hob['name'] for lang in C.LANGUAGES] @staticmethod def error_message(player: Player, values): # print('values is', values) num_selected = 0 # for lang in C.Data: # if values[lang['iid']]: # num_selected += 1 # if num_selected < 1: # return "You must select at least 1 language." for hob in C.Hobbies: if values[hob['name']]: num_selected += 1 if num_selected < 1: return "Bitte wählen Sie mindestens eine Antwort aus" if num_selected >3: return "Bitte wählen Sie höchstens drei Antworten aus" class Questionare2(Page): form_model = 'player' form_fields = ['Sports'] @staticmethod def get_form_fields(player: Player): return [sport['name'] for sport in C.Sports] @staticmethod def error_message(player: Player, values): # print('values is', values) num_selected = 0 # for lang in C.Data: # if values[lang['iid']]: # num_selected += 1 # if num_selected < 1: # return "You must select at least 1 language." for sport in C.Sports: if values[sport['name']]: num_selected += 1 if num_selected < 1: return "Bitte wählen Sie mindestens eine Antwort aus" if num_selected > 3: return "Bitte wählen Sie höchstens drei Antworten aus" class Questionare3(Page): form_model = 'player' form_fields = ['Music'] @staticmethod def get_form_fields(player: Player): return [musi['name'] for musi in C.Music] @staticmethod def error_message(player: Player, values): # print('values is', values) num_selected = 0 # for lang in C.Data: # if values[lang['iid']]: # num_selected += 1 # if num_selected < 1: # return "You must select at least 1 language." for musi in C.Music: if values[musi['name']]: num_selected += 1 if num_selected < 1: return "Bitte wählen Sie mindestens eine Antwort aus" if num_selected > 3: return "Bitte wählen Sie höchstens drei Antworten aus" class Questionare4(Page): form_model = 'player' form_fields = ['Film'] @staticmethod def get_form_fields(player: Player): return [fil['name'] for fil in C.Film] @staticmethod def error_message(player: Player, values): # print('values is', values) num_selected = 0 # for lang in C.Data: # if values[lang['iid']]: # num_selected += 1 # if num_selected < 1: # return "You must select at least 1 language." for fil in C.Film: if values[fil['name']]: num_selected += 1 if num_selected < 1: return "Bitte wählen Sie mindestens eine Antwort aus" if num_selected > 3: return "Bitte wählen Sie höchstens drei Antworten aus" class Questionare5(Page): form_model = 'player' form_fields = ['Urlaub'] @staticmethod def get_form_fields(player: Player): return [ur['name'] for ur in C.Urlaub] @staticmethod def error_message(player: Player, values): # print('values is', values) num_selected = 0 # for lang in C.Data: # if values[lang['iid']]: # num_selected += 1 # if num_selected < 1: # return "You must select at least 1 language." for ur in C.Urlaub: if values[ur['name']]: num_selected += 1 if num_selected < 1: return "Bitte wählen Sie mindestens eine Antwort aus" if num_selected > 3: return "Bitte wählen Sie höchstens drei Antworten aus" class Questionare6(Page): form_model = 'player' form_fields = ['Eigenschaften'] @staticmethod def get_form_fields(player: Player): return [ein['name'] for ein in C.Eigenschaften] @staticmethod def error_message(player: Player, values): # print('values is', values) num_selected = 0 # for lang in C.Data: # if values[lang['iid']]: # num_selected += 1 # if num_selected < 1: # return "You must select at least 1 language." for ein in C.Eigenschaften: if values[ein['name']]: num_selected += 1 if num_selected < 1: return "Bitte wählen Sie mindestens eine Antwort aus" if num_selected > 3: return "Bitte wählen Sie höchstens drei Antworten aus" class Questionare7(Page): form_model = 'player' form_fields = ['Denken'] @staticmethod def get_form_fields(player: Player): return [den['name'] for den in C.Denken] @staticmethod def error_message(player: Player, values): # print('values is', values) num_selected = 0 # for lang in C.Data: # if values[lang['iid']]: # num_selected += 1 # if num_selected < 1: # return "You must select at least 1 language." for den in C.Denken: if values[den['name']]: num_selected += 1 if num_selected < 1: return "Bitte wählen Sie mindestens eine Antwort aus" if num_selected > 3: return "Bitte wählen Sie höchstens drei Antworten aus" class Questionare8(Page): form_model = 'player' form_fields = ['Wichtigsten'] @staticmethod def get_form_fields(player: Player): return [win['name'] for win in C.Wichtigsten] @staticmethod def error_message(player: Player, values): # print('values is', values) num_selected = 0 # for lang in C.Data: # if values[lang['iid']]: # num_selected += 1 # if num_selected < 1: # return "You must select at least 1 language." for win in C.Wichtigsten: if values[win['name']]: num_selected += 1 if num_selected < 1: return "Bitte wählen Sie mindestens eine Antwort aus" if num_selected > 3: return "Bitte wählen Sie höchstens drei Antworten aus" class Questionare9(Page): form_model = 'player' form_fields = ['Religion'] class Questionare10(Page): form_model = 'player' form_fields = ['diskutiert'] class Questionare11(Page): form_model = 'player' form_fields = ['Trust'] class Questionare12(Page): form_model = 'player' form_fields = ['vorgenommen'] class Questionare13(Page): form_model = 'player' form_fields = ['ublicherweise'] class Questionare14(Page): form_model = 'player' form_fields = ['Impuls'] class Questionare15(Page): form_model = 'player' form_fields = ['geschieht'] class Questionare16(Page): form_model = 'player' form_fields = ['Stellen'] class Questionare17(Page): form_model = 'player' form_fields = ['Stellen17'] class Questionare18(Page): form_model = 'player' form_fields = ['Stellen18'] class Questionare19(Page): form_model = 'player' form_fields = ['Stellen19'] class Questionare20(Page): form_model = 'player' form_fields = ['Geschlecht20'] class Questionare21(Page): form_model = 'player' form_fields = ['Year'] class Questionare22(Page): form_model = 'player' form_fields = ['Studienfeld','Studiengang'] class Questionare23(Page): form_model = 'player' form_fields = ['country'] def vars_for_template(self): return { 'countries': [c.name for c in pycountry.countries] } class Questionare24(Page): form_model = 'player' form_fields = ['city'] class EndQuestionare(Page): pass class TaskInstruction(Page): pass page_sequence = [MyPage, MyWaitPage, Instructions, Unique_ID, ID_check, MyWaitPage, Instruction_questionnare, Questionare, Questionare2, Questionare3, Questionare4, Questionare5, Questionare6, Questionare7, Questionare8, Questionare9, Questionare10, Questionare11, Questionare12, Questionare13, Questionare14, Questionare15, Questionare16, Questionare17, Questionare18, Questionare19, Questionare20, Questionare21, Questionare22, Questionare23, Questionare24, EndQuestionare, MyWaitPage, TaskInstruction, ]