from otree.api import * c = cu doc = '' class Constants(BaseConstants): players_per_group = None num_rounds = 1 endowment = cu(10) moderate_default = cu(8) name_in_url = 'CO2_Experiment' def creating_session(subsession): session = subsession.session import itertools treatment_group = itertools.cycle([1, 2, 3]) for player in subsession.get_players(): player.treatment_group = next(treatment_group) class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): treatment_group = models.IntegerField() contribution_zero = models.CurrencyField(choices=[[0, '0 € (10 € behalten)'], [1, '1 € (9 € behalten)'], [2, '2 € (8 € behalten)'], [3, '3 € (7 € behalten)'], [4, '4 € (6 € behalten)'], [5, '5 € (5 € behalten)'], [6, '6 € (4 € behalten)'], [7, '7 € (3 € behalten)'], [8, '8 € (2 € behalten)'], [9, '9 € (1 € behalten)'], [10, '10 € (0 € behalten)']], initial=0, label='Bitte wählen Sie aus, wie viel Geld Sie an das Kompensationsprogramm geben möchten, um die CO2 Emissionen Ihrer Flüge zu kompensieren. Den Rest Ihrer 10 € können Sie behalten.', max=Constants.endowment, min=0, widget=widgets.RadioSelect) contribution_moderate = models.CurrencyField(choices=[[0, '0 € (10 € behalten)'], [1, '1 € (9 € behalten)'], [2, '2 € (8 € behalten)'], [3, '3 € (7 € behalten)'], [4, '4 € (6 € behalten)'], [5, '5 € (5 € behalten)'], [6, '6 € (4 € behalten)'], [7, '7 € (3 € behalten)'], [8, '8 € (2€ behalten)'], [9, '9 € (1€ behalten)'], [10, '10 € (0 € behalten)']], initial=Constants.moderate_default, label='Bitte wählen Sie aus, wie viel Geld Sie an das Kompensationsprogramm geben möchten, um die CO2 Emissionen Ihrer Flüge zu kompensieren. Den Rest Ihrer 10 € können Sie behalten.', max=Constants.endowment, min=0, widget=widgets.RadioSelect) contribution_information = models.CurrencyField(choices=[[0, '0 € (10 € behalten)'], [1, '1 € (9 € behalten)'], [2, '2 € (8 € behalten)'], [3, '3 € (7 € behalten)'], [4, '4 € (6 € behalten)'], [5, '5 € (5 € behalten)'], [6, '6 € (4 € behalten)'], [7, '7 € (3 € behalten)'], [8, '8 € (2 € behalten)'], [9, '9 € (1 € behalten)'], [10, '10 € (0 € behalten)']], initial=0, label='Bitte wählen Sie aus, wie viel Geld Sie an das Kompensationsprogramm geben möchten, um die CO2 Emissionen Ihrer Flüge zu kompensieren. Den Rest Ihrer 10 € können Sie behalten.', max=Constants.endowment, min=0, widget=widgets.RadioSelect) Age = models.IntegerField(label='Ihr Alter:', max=120, min=12) Gender = models.StringField(choices=[['male', 'männlich'], ['female', 'weiblich'], ['diverse', 'divers']], label='Bitte wählen Sie Ihr Geschlecht:', widget=widgets.RadioSelect) Nationality = models.StringField(choices=[['Andorra', 'Andorra'], ['Vereinigte Arabische Emirate', 'Vereinigte Arabische Emirate'], ['Afghanistan', 'Afghanistan'], ['Antigua und Barbuda', 'Antigua und Barbuda'], ['Anguilla', 'Anguilla'], ['Albanien', 'Albanien'], ['Armenien', 'Armenien'], ['Niederländische Antillen', 'Niederländische Antillen'], ['Angola', 'Angola'], ['Antarktis', 'Antarktis'], ['Argentinien', 'Argentinien'], ['Amerikanisch-Samoa', 'Amerikanisch-Samoa'], ['Australien', 'Australien'], ['Aruba', 'Aruba'], ['Ã…land', 'Ã…land'], ['Aserbaidschan', 'Aserbaidschan'], ['Bosnien und Herzegowina', 'Bosnien und Herzegowina'], ['Barbados', 'Barbados'], ['Bangladesch', 'Bangladesch'], ['Belgien', 'Belgien'], ['Burkina Faso', 'Burkina Faso'], ['Bulgarien', 'Bulgarien'], ['Bahrain', 'Bahrain'], ['Burundi', 'Burundi'], ['Benin', 'Benin'], ['Bermuda', 'Bermuda'], ['Brunei Darussalam', 'Brunei Darussalam'], ['Bolivien', 'Bolivien'], ['Brasilien', 'Brasilien'], ['Bahamas', 'Bahamas'], ['Bhutan', 'Bhutan'], ['Bouvetinsel', 'Bouvetinsel'], ['Botswana', 'Botswana'], ['Belarus (Weißrussland)', 'Belarus'], ['Belize', 'Belize'], ['Kanada', 'Kanada'], ['Kokosinseln (Keelinginseln)', 'Kokosinseln (Keelinginseln)'], ['Kongo', 'Kongo'], ['Zentralafrikanische Republik', 'Zentralafrikanische Republik'], ['Republik Kongo', 'Republik Kongo'], ['Schweiz', 'Schweiz'], ['Elfenbeinküste', 'Elfenbeinküste'], ['Cookinseln', 'Cookinseln'], ['Chile', 'Chile'], ['Kamerun', 'Kamerun'], ['China, Volksrepublik', 'China'], ['Kolumbien', 'Kolumbien'], ['Costa Rica', 'Costa Rica'], ['Kuba', 'Kuba'], ['Kap Verde', 'Kap Verde'], ['Tschechische Republik', 'Tschechische Republik'], ['Deutschland', 'Deutschland'], ['Dschibuti', 'Dschibuti'], ['Dänemark', 'Daenemark'], ['Dominica', 'Dominica'], ['Dominikanische Republik', 'Dominikanische Republik'], ['Algerien', 'Algerien'], ['Ecuador', 'Ecuador'], ['Estland (Reval)', 'Estland (Reval)'], ['Ägypten', 'Ägypten'], ['Westsahara', 'Westsahara'], ['Eritrea', 'Eritrea'], ['Spanien', 'Spanien'], ['Äthiopien', 'Athiopien'], ['Finnland', 'Finnland'], ['Fidschi', 'Fidschi'], ['Falklandinseln (Malwinen)', 'Falklandinseln (Malwinen)'], ['Mikronesien', 'Mikronesien'], ['Frankreich', 'Frankreich'], ['Gabun', 'Gabun'], ['Großbritannien und Nordirland', 'Großbritannien und Nordirland'], ['Grenada', 'Grenada'], ['Georgien', 'Georgien'], ['Guernsey (Kanalinsel)', 'Guernsey (Kanalinsel)'], ['Ghana', 'Ghana'], ['Gibraltar', 'Gibraltar'], ['Gambia', 'Gambia'], ['Guinea', 'Guinea'], ['Guadeloupe', 'Guadeloupe'], ['Griechenland', 'Griechenland'], ['Guatemala', 'Guatemala'], ['Guam', 'Guam'], ['Guinea-Bissau', 'Guinea-Bissau'], ['Guyana', 'Guyana'], ['Hongkong', 'Hongkong'], ['Heard- und McDonald-Inseln', 'Heard- und McDonald-Inseln'], ['Honduras', 'Honduras'], ['Kroatien', 'Kroatien'], ['Haiti', 'Haiti'], ['Ungarn', 'Ungarn'], ['Indonesien', 'Indonesien'], ['Irland', 'Irland'], ['Israel', 'Israel'], ['Insel Man', 'Insel Man'], ['Indien', 'Indien'], ['Irak', 'Irak'], ['Iran', 'Iran'], ['Island', 'Island'], ['Italien', 'Italien'], ['Jersey (Kanalinsel)', 'Jersey (Kanalinsel)'], ['Jamaika', 'Jamaika'], ['Jordanien', 'Jordanien'], ['Japan', 'Japan'], ['Kenia', 'Kenia'], ['Kirgisistan', 'Kirgisistan'], ['Kambodscha', 'Kambodscha'], ['Kiribati', 'Kiribati'], ['Komoren', 'Komoren'], ['St. Kitts und Nevis', 'St. Kitts und Nevis'], ['Nordkorea', 'Nordkorea'], ['Südkorea', 'Südkorea'], ['Kuwait', 'Kuwait'], ['Kaimaninseln', 'Kaimaninseln'], ['Kasachstan', 'Kasachstan'], ['Laos', 'Laos'], ['Libanon', 'Libanon'], ['St. Lucia', 'St. Lucia'], ['Liechtenstein', 'Liechtenstein'], ['Sri Lanka', 'Sri Lanka'], ['Liberia', 'Liberia'], ['Lesotho', 'Lesotho'], ['Litauen', 'Litauen'], ['Luxemburg', 'Luxemburg'], ['Lettland', 'Lettland'], ['Libyen', 'Libyen'], ['Marokko', 'Marokko'], ['Monaco', 'Monaco'], ['Moldawien', 'Moldawien'], ['Madagaskar', 'Madagaskar'], ['Marshallinseln', 'Marshallinseln'], ['Mazedonien', 'Mazedonien'], ['Mali', 'Mali'], ['Myanmar (Burma)', 'Myanmar (Burma)'], ['Mongolei', 'Mongolei'], ['Macau', 'Macau'], ['Martinique', 'Martinique'], ['Mauretanien', 'Mauretanien'], ['Montserrat', 'Montserrat'], ['Malta', 'Malta'], ['Mauritius', 'Mauritius'], ['Malediven', 'Malediven'], ['Malawi', 'Malawi'], ['Mexiko', 'Mexiko'], ['Malaysia', 'Malaysia'], ['Mosambik', 'Mosambik'], ['Namibia', 'Namibia'], ['Neukaledonien', 'Neukaledonien'], ['Niger', 'Niger'], ['Norfolkinsel', 'Norfolkinsel'], ['Nigeria', 'Nigeria'], ['Nicaragua', 'Nicaragua'], ['Niederlande', 'Niederlande'], ['Norwegen', 'Norwegen'], ['Nepal', 'Nepal'], ['Nauru', 'Nauru'], ['Niue', 'Niue'], ['Neuseeland', 'Neuseeland'], ['Oman', 'Oman'], ['Österreich', 'Österreich'], ['Panama', 'Panama'], ['Peru', 'Peru'], ['Papua-Neuguinea', 'Papua-Neuguinea'], ['Philippinen', 'Philippinen'], ['Pakistan', 'Pakistan'], ['Polen', 'Polen'], ['St. Pierre und Miquelon', 'St. Pierre und Miquelon'], ['Pitcairninseln', 'Pitcairninseln'], ['Puerto Rico', 'Puerto Rico'], ['Palästina', 'Palästina'], ['Portugal', 'Portugal'], ['Palau', 'Palau'], ['Paraguay', 'Paraguay'], ['Katar', 'Katar'], ['Rumänien', 'Rumänien'], ['Ruanda', 'Ruanda'], ['Russland', 'Russland'], ['Saudi-Arabien', 'Saudi-Arabien'], ['Salomonen', 'Salomonen'], ['Seychellen', 'Seychellen'], ['Sudan', 'Sudan'], ['Schweden', 'Schweden'], ['Singapur', 'Singapur'], ['St. Helena', 'St. Helena'], ['Slowenien', 'Slowenien'], ['Svalbard und Jan Mayen', 'Svalbard und Jan Mayen'], ['Slowakei', 'Slowakei'], ['Sierra Leone', 'Sierra Leone'], ['San Marino', 'San Marino'], ['Senegal', 'Senegal'], ['Somalia', 'Somalia'], ['Suriname', 'Suriname'], ['El Salvador', 'El Salvador'], ['Syrien', 'Syrien'], ['Swasiland', 'Swasiland'], ['Turks- und Caicosinseln', 'Turks- und Caicosinseln'], ['Tschad', 'Tschad'], ['Togo', 'Togo'], ['Thailand', 'Thailand'], ['Tadschikistan', 'Tadschikistan'], ['Tokelau', 'Tokelau'], ['Timor-Leste', 'Timor-Leste'], ['Turkmenistan', 'Turkmenistan'], ['Tunesien', 'Tunesien'], ['Tonga', 'Tonga'], ['Türkei', 'Türkei'], ['Trinidad und Tobago', 'Trinidad und Tobago'], ['Tuvalu', 'Tuvalu'], ['Taiwan', 'Taiwan'], ['Tansania', 'Tansania'], ['Ukraine', 'Ukraine'], ['Uganda', 'Uganda'], ['Amerikanisch-Ozeanien', 'Amerikanisch-Ozeanien'], ['Vereinigte Staaten von Amerika', 'Vereinigte Staaten von Amerika'], ['Uruguay', 'Uruguay'], ['Usbekistan', 'Usbekistan'], ['Vatikanstadt', 'Vatikanstadt'], ['St. Vincent und die Grenadinen', 'St. Vincent und die Grenadinen'], ['Venezuela', 'Venezuela'], ['Britische Jungferninseln', 'Britische Jungferninseln'], ['Amerikanische Jungferninseln', 'Amerikanische Jungferninseln'], ['Vietnam', 'Vietnam'], ['Vanuatu', 'Vanuatu'], ['Wallis und Futuna', 'Wallis und Futuna'], ['Samoa', 'Samoa'], ['Jemen', 'Jemen'], ['Mayotte', 'Mayotte'], ['Südafrika', 'Südafrika'], ['Sambia', 'Sambia'], ['Simbabwe', 'Simbabwe'], ['Serbien', 'Serbien'], ['Montenegro', 'Montenegro'], ['Bonaire, Sint Eustatius und Saba', 'Bonaire, Sint Eustatius und Saba'], ['Sudsudan!Südsudan', 'Südsudan'], ['Zypern', 'Zypern']], label='Ihre Nationalität:') Occupation = models.StringField(choices=[['Student (High School)', 'Schüler*in'], ['Student (University)', 'Student*in'], ['Employed (Full Time)', 'In Vollzeit angestellt'], ['Employed (Part Time)', 'In Teilzeit angestellt'], ['Self-Employed', 'Selbstständig'], ['Unemployed', 'Beschäftigungslos'], ['Retired', 'In Rente'], ['Other', 'Andere']], label='Ihre Beschäftigung (bitte wählen Sie die Antwort, die Ihre Beschäftigung am besten beschreibt, selbst wenn sich Ihre genaue Beschäftigung nicht unter den Antwortmöglichkeiten befindet):') Degree = models.StringField(choices=[['High School (9th grade)', 'Hauptschulabschluss'], ['High School (10th grade)', 'Realschulabschluss'], ['High School', 'Abitur'], ['Apprenticeship', 'Berufsausbildung'], ["Bachelor's Degree", 'Bachelor'], ["Master's Degree", 'Master oder Diplom'], ['PhD', 'Promotion'], ['Other', 'Andere'], ['None', 'Keine']], label='Ihren höchsten Bildungsstand (zum Zeitpunkt dieses Experiments erfolgreich abgeschlossen):') Income = models.StringField(choices=[['0 - 500', '0 - 500 €'], ['500 - 900 Euros', '500 - 900 €'], ['900 - 1 500 Euros', '900 - 1 500 €'], ['1 500 - 3 000 Euros', '1 500 - 3 000 €'], ['3 000 - 10 000 Euros', '3 000 - 10 000 €'], ['more than 10 000 Euros', 'mehr als 10 000 €']], label='Bitte wählen Sie die Einkommensspanne, in dem Ihr monatliches Einkommen liegt:', widget=widgets.RadioSelect) household_size = models.StringField(choices=[['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5+', '5 oder mehr']], label='Wie viele Menschen leben in Ihrem Haushalt (einschließlich Ihnen)?', widget=widgets.RadioSelectHorizontal) children = models.BooleanField(choices=[[True, 'Ja'], [False, 'Nein']], label='Haben Sie Kinder?', widget=widgets.RadioSelectHorizontal) Environment_ghg = models.BooleanField(choices=[[True, 'Ja'], [False, 'Nein']], label='Sind Sie der Meinung, dass Treibhausgasemissionen (wie z.B. CO2) zur Erwärmung der Erde beitragen?', widget=widgets.RadioSelectHorizontal) Environment_importance = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='Wie wichtig ist Ihnen Umweltschutz (Auf einer Skala von: 1 = gar nicht wichtig bis 5 = sehr wichtig)?', widget=widgets.RadioSelectHorizontal) Environment_effect = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='Wie stark, glauben Sie, können Sie durch Ihr Verhalten die Umwelt beeinflussen (Auf einer Skala von: 1 = gar nicht bis 5 = sehr stark)? ', widget=widgets.RadioSelectHorizontal) Environment_fear = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='Wie sehr haben Sie Angst vor den möglichen Auswirkungen des Klimawandels (Auf einer Skala von: 1 = gar keine Angst bis 5 = sehr viel Angst)?', widget=widgets.RadioSelectHorizontal) Envrionment_optimism = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='Wie optimistisch oder pessimistisch sind Sie, dass der Mensch den Klimawandel erfolgreich bekämpfen wird (Auf einer Skala von: 1 = sehr pessimistisch bis 5 = sehr optimistisch)?', widget=widgets.RadioSelectHorizontal) offsetting_familiar = models.BooleanField(choices=[[True, 'Ja'], [False, 'Nein']], label='Hatten Sie vor Ihrer Teilnahme an diesem Experiment schon einmal von CO2 Kompensation gehört?', widget=widgets.RadioSelectHorizontal) Offsetting_understood = models.BooleanField(choices=[[True, 'Ja'], [False, 'Nein']], label='Würden Sie von sich sagen, dass Sie verstanden haben, wie CO2 Kompensation funktioniert?', widget=widgets.RadioSelectHorizontal) offsetting_before = models.IntegerField(choices=[[1, '0 Male'], [2, '1 Mal'], [3, '2 bis 4 Male'], [4, '5 Male oder öfter']], label='Wie oft haben Sie, vor Ihrer Teilnahme an diesem Experiment, CO2 Kompensation verwendet?', widget=widgets.RadioSelect) Offsetting_trust = models.BooleanField(choices=[[True, 'Ja'], [False, 'Nein']], label='Vertrauen Sie CO2 Kompensationsprogrammen, Ihre Spende verantwortungsvoll zur Kompensation von CO2 einzusetzen?', widget=widgets.RadioSelectHorizontal) offsetting_effectiveness = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='Wie effektiv glauben Sie ist CO2 Kompensation darin, CO2 Emissionen zu senken (Auf einer Skala von: 1 = sehr ineffektiv bis 5 = sehr effektiv)?', widget=widgets.RadioSelectHorizontal) diet_type = models.IntegerField(choices=[[1, 'vegan'], [2, 'vegetarisch'], [3, 'Mischkost'], [4, 'fleischlastig']], label='Bitte wählen Sie die Ernährungsart, die Ihre Ernährung am besten beschreibt:', widget=widgets.RadioSelect) Transport_type = models.IntegerField(choices=[[1, 'zu Fuß'], [2, 'Fahrrad oder Roller (nicht motorisiert)'], [3, 'öffentliche Verkehrsmittel'], [4, 'Auto, Motorrad, oder Motorroller'], [5, 'Flugzeug']], label='Wie kommen Sie in Ihrem Alltag meistens von A nach B?', widget=widgets.RadioSelect) e_mail = models.StringField(blank=True, label='Ihre E-Mail Adresse:') Attention_check = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='Um sicherzustellen, dass die Teilnehmer meines Experiments diese Fragen nicht zufällig beantworten, habe ich diese "Aufmerksamkeitskontrolle" eingebaut. Bitte wählen Sie den Wert 2 aus den Antwortmöglichkeiten unter dieser Frage.', widget=widgets.RadioSelectHorizontal) num_clicks = models.IntegerField() class Willkommen(Page): form_model = 'player' class Szenario(Page): form_model = 'player' class Entscheidung_1(Page): form_model = 'player' form_fields = ['contribution_zero'] @staticmethod def is_displayed(player): group = player.group return player.treatment_group == 1 class Entscheidung_2(Page): form_model = 'player' form_fields = ['contribution_moderate'] @staticmethod def is_displayed(player): group = player.group return player.treatment_group == 2 class Entscheidung_3(Page): form_model = 'player' form_fields = ['contribution_information'] @staticmethod def is_displayed(player): group = player.group return player.treatment_group == 3 class Fragebogen(Page): form_model = 'player' form_fields = ['Age', 'Gender', 'Nationality', 'Occupation', 'Degree', 'Income', 'household_size', 'children', 'Environment_ghg', 'Environment_importance', 'Attention_check', 'Environment_effect', 'Environment_fear', 'Envrionment_optimism', 'offsetting_familiar', 'Offsetting_understood', 'offsetting_before', 'Offsetting_trust', 'offsetting_effectiveness', 'diet_type', 'Transport_type'] class Vielen_Dank(Page): form_model = 'player' form_fields = ['e_mail'] class Moechten_Sie_mehr_erfahren(Page): form_model = 'player' form_fields = ['num_clicks'] @staticmethod def js_vars(player): return dict(url='https://germany.myclimate.org/de/offset_further_emissions') page_sequence = [Willkommen, Szenario, Entscheidung_1, Entscheidung_2, Entscheidung_3, Fragebogen, Vielen_Dank, Moechten_Sie_mehr_erfahren]