from otree.api import * c = cu doc = '' class C(BaseConstants): NAME_IN_URL = 'Survey_taxes' PLAYERS_PER_GROUP = None NUM_ROUNDS = 1 ENDOWMENT = cu(10) class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): platform_code = models.StringField(label='Please, enter your platform ID (Mturk, Prolific, etc.)') age = models.IntegerField(label='Please, enter your age') gender = models.StringField(choices=[['Male', 'Male'], ['Female', 'Female']], label='Gender') education = models.StringField(choices=[['None', 'None'], ['Primary school', 'Primary school'], ['Secondary school up to 16 years', 'Secondary school up to 16 years'], ['Higher or secondary or further education', 'Higher or secondary or further education'], ['College or university', 'College or university'], ['Post-graduate degree', 'Post-graduate degree']], label='Please, choose your education level') job = models.StringField(choices=[['I work for a private company', 'I work for a private company'], ['I work for a public institution', 'I work for a public institution'], ['I am a commercial entrepreneurship (for profit purposes)', 'I am a commercial entrepreneurship (for profit purposes)'], ['I am a social entrepreneurship (for social purposes)', 'I am a social entrepreneurship (for social purposes)'], ['I am a commercial and social entrepreneurship', 'I am a commercial and social entrepreneurship']], label='What is your current or last job?') income = models.StringField(choices=[['Less than 15,000', 'Less than 15,000'], ['15,000 - 34,999', '15,000 - 34,999'], ['35,000 - 49,999', '35,000 - 49,999'], ['50,000 - 74,999', '50,000 - 74,999'], ['75,000 - 99,999', '75,000 - 99,999'], ['100,000 or more', '100,000 or more']], label='Gross annual income level (use £, € or $ indistinctively):') nationality = models.StringField(choices=[['Afghanistan', 'Afghanistan'], ['Albania', 'Albania'], ['Algeria', 'Algeria'], ['Andorra', 'Andorra'], ['Angola', 'Angola'], ['Antigua and Barbuda', 'Antigua and Barbuda'], ['Argentina', 'Argentina'], ['Armenia', 'Armenia'], ['Australia', 'Australia'], ['Austria', 'Austria'], ['Azerbaijan', 'Azerbaijan'], ['Bahamas', 'Bahamas'], ['Bahrain', 'Bahrain'], ['Bangladesh', 'Bangladesh'], ['Barbados', 'Barbados'], ['Belarus', 'Belarus'], ['Belgium', 'Belgium'], ['Belize', 'Belize'], ['Benin', 'Benin'], ['Bhutan', 'Bhutan'], ['Bolivia', 'Bolivia'], ['Bosnia and Herzegovina', 'Bosnia and Herzegovina'], ['Botswana', 'Botswana'], ['Brazil', 'Brazil'], ['Brunei ', 'Brunei '], ['Bulgaria', 'Bulgaria'], ['Burkina Faso', 'Burkina Faso'], ['Burundi', 'Burundi'], ["Côte d'Ivoire", "Côte d'Ivoire"], ['Cabo Verde', 'Cabo Verde'], ['Cambodia', 'Cambodia'], ['Cameroon', 'Cameroon'], ['Canada', 'Canada'], ['Central African Republic', 'Central African Republic'], ['Chad', 'Chad'], ['Chile', 'Chile'], ['China', 'China'], ['Colombia', 'Colombia'], ['Comoros', 'Comoros'], ['Congo (Congo-Brazzaville)', 'Congo (Congo-Brazzaville)'], ['Costa Rica', 'Costa Rica'], ['Croatia', 'Croatia'], ['Cuba', 'Cuba'], ['Cyprus', 'Cyprus'], ['Czechia (Czech Republic)', 'Czechia (Czech Republic)'], ['Democratic Republic of the Congo', 'Democratic Republic of the Congo'], ['Denmark', 'Denmark'], ['Djibouti', 'Djibouti'], ['Dominica', 'Dominica'], ['Dominican Republic', 'Dominican Republic'], ['Ecuador', 'Ecuador'], ['Egypt', 'Egypt'], ['El Salvador', 'El Salvador'], ['Equatorial Guinea', 'Equatorial Guinea'], ['Eritrea', 'Eritrea'], ['Estonia', 'Estonia'], ['Eswatini (fmr. "Swaziland")', 'Eswatini (fmr. "Swaziland")'], ['Ethiopia', 'Ethiopia'], ['Fiji', 'Fiji'], ['Finland', 'Finland'], ['France', 'France'], ['Gabon', 'Gabon'], ['Gambia', 'Gambia'], ['Georgia', 'Georgia'], ['Germany', 'Germany'], ['Ghana', 'Ghana'], ['Greece', 'Greece'], ['Grenada', 'Grenada'], ['Guatemala', 'Guatemala'], ['Guinea', 'Guinea'], ['Guinea-Bissau', 'Guinea-Bissau'], ['Guyana', 'Guyana'], ['Haiti', 'Haiti'], ['Holy See', 'Holy See'], ['Honduras', 'Honduras'], ['Hungary', 'Hungary'], ['Iceland', 'Iceland'], ['India', 'India'], ['Indonesia', 'Indonesia'], ['Iran', 'Iran'], ['Iraq', 'Iraq'], ['Ireland', 'Ireland'], ['Israel', 'Israel'], ['Italy', 'Italy'], ['Jamaica', 'Jamaica'], ['Japan', 'Japan'], ['Jordan', 'Jordan'], ['Kazakhstan', 'Kazakhstan'], ['Kenya', 'Kenya'], ['Kiribati', 'Kiribati'], ['Kuwait', 'Kuwait'], ['Kyrgyzstan', 'Kyrgyzstan'], ['Laos', 'Laos'], ['Latvia', 'Latvia'], ['Lebanon', 'Lebanon'], ['Lesotho', 'Lesotho'], ['Liberia', 'Liberia'], ['Libya', 'Libya'], ['Liechtenstein', 'Liechtenstein'], ['Lithuania', 'Lithuania'], ['Luxembourg', 'Luxembourg'], ['Madagascar', 'Madagascar'], ['Malawi', 'Malawi'], ['Malaysia', 'Malaysia'], ['Maldives', 'Maldives'], ['Mali', 'Mali'], ['Malta', 'Malta'], ['Marshall Islands', 'Marshall Islands'], ['Mauritania', 'Mauritania'], ['Mauritius', 'Mauritius'], ['Mexico', 'Mexico'], ['Micronesia', 'Micronesia'], ['Moldova', 'Moldova'], ['Monaco', 'Monaco'], ['Mongolia', 'Mongolia'], ['Montenegro', 'Montenegro'], ['Morocco', 'Morocco'], ['Mozambique', 'Mozambique'], ['Myanmar (formerly Burma)', 'Myanmar (formerly Burma)'], ['Namibia', 'Namibia'], ['Nauru', 'Nauru'], ['Nepal', 'Nepal'], ['Netherlands', 'Netherlands'], ['New Zealand', 'New Zealand'], ['Nicaragua', 'Nicaragua'], ['Niger', 'Niger'], ['Nigeria', 'Nigeria'], ['North Korea', 'North Korea'], ['North Macedonia', 'North Macedonia'], ['Norway', 'Norway'], ['Oman', 'Oman'], ['Pakistan', 'Pakistan'], ['Palau', 'Palau'], ['Palestine State', 'Palestine State'], ['Panama', 'Panama'], ['Papua New Guinea', 'Papua New Guinea'], ['Paraguay', 'Paraguay'], ['Peru', 'Peru'], ['Philippines', 'Philippines'], ['Poland', 'Poland'], ['Portugal', 'Portugal'], ['Qatar', 'Qatar'], ['Romania', 'Romania'], ['Russia', 'Russia'], ['Rwanda', 'Rwanda'], ['Saint Kitts and Nevis', 'Saint Kitts and Nevis'], ['Saint Lucia', 'Saint Lucia'], ['Saint Vincent and the Grenadines', 'Saint Vincent and the Grenadines'], ['Samoa', 'Samoa'], ['San Marino', 'San Marino'], ['Sao Tome and Principe', 'Sao Tome and Principe'], ['Saudi Arabia', 'Saudi Arabia'], ['Senegal', 'Senegal'], ['Serbia', 'Serbia'], ['Seychelles', 'Seychelles'], ['Sierra Leone', 'Sierra Leone'], ['Singapore', 'Singapore'], ['Slovakia', 'Slovakia'], ['Slovenia', 'Slovenia'], ['Solomon Islands', 'Solomon Islands'], ['Somalia', 'Somalia'], ['South Africa', 'South Africa'], ['South Korea', 'South Korea'], ['South Sudan', 'South Sudan'], ['Spain', 'Spain'], ['Sri Lanka', 'Sri Lanka'], ['Sudan', 'Sudan'], ['Suriname', 'Suriname'], ['Sweden', 'Sweden'], ['Switzerland', 'Switzerland'], ['Syria', 'Syria'], ['Tajikistan', 'Tajikistan'], ['Tanzania', 'Tanzania'], ['Thailand', 'Thailand'], ['Timor-Leste', 'Timor-Leste'], ['Togo', 'Togo'], ['Tonga', 'Tonga'], ['Trinidad and Tobago', 'Trinidad and Tobago'], ['Tunisia', 'Tunisia'], ['Turkey', 'Turkey'], ['Turkmenistan', 'Turkmenistan'], ['Tuvalu', 'Tuvalu'], ['Uganda', 'Uganda'], ['Ukraine', 'Ukraine'], ['United Arab Emirates', 'United Arab Emirates'], ['United Kingdom', 'United Kingdom'], ['United States of America', 'United States of America'], ['Uruguay', 'Uruguay'], ['Uzbekistan', 'Uzbekistan'], ['Vanuatu', 'Vanuatu'], ['Venezuela', 'Venezuela'], ['Vietnam', 'Vietnam'], ['Yemen', 'Yemen'], ['Zambia', 'Zambia'], ['Zimbabwe', 'Zimbabwe']], label='Please, choose your nationality') negative_rec1 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='If I suffer a serious wrong, I will take my revenge as soon as possible, no matter what the costs') negative_rec2 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='I am willing to invest time and effort to reciprocate an unfair action') negative_rec3 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='I am kind and nice if others behave well with me, otherwise it’s tit-for-tat') negative_rec4 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='If somebody puts me in a difficult position, I will do the same to him/her') negative_rec5 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='If somebody offends me, I will offend him/her back') negative_rec6 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='If someone is unfair to me, I prefer to give him/her what s/he deserves instead of accepting his/her apologies') negative_rec7 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='I would not do a favour for somebody who behaved badly with me, even if it meant foregoing some personal gains') negative_rec8 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='If somebody is impolite to me, I become impolite') negative_rec9 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='The way I treat others depends much on how they treat me') positive_rec1 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='I am ready to undergo personal costs to help somebody who helped me before') positive_rec2 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='If someone does a favour for me, I am ready to return it') positive_rec3 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='If someone is helpful with me at work, I am pleased to help him/her') positive_rec4 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='I’m ready to do a boring job to return someone’s previous help') positive_rec5 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='When someone does me a favour, I feel committed to repay him/her') positive_rec6 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='If someone asks me politely for information, I’m really happy to help him/her') positive_rec7 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='If someone lends me money as a favour, I feel I should give him/her back something more than what is strictly due') positive_rec8 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='If somebody suggests to me the winning numbers at the Lottery, I would certainly give him/her part of my winnings') positive_rec9 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='I go out of my way to help somebody who has been kind to me before') tax_morale1 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='Paying taxes is one of the basic duties of citizenship') tax_morale2 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='Not paying taxes is one of the worst crimes a person can commit because it harms the whole community') tax_morale3 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='It is not right not to pay taxes even if you think they are unfair') tax_morale4 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='Even if someone thinks a tax is unfair, he/she should pay it first and then complain if necessary') tax_morale5 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5']], label='It is right to pay taxes because it helps the weak') keep = models.CurrencyField(label='I will keep', max=C.ENDOWMENT, min=0) send = models.CurrencyField(label='I will send to the other participant', max=C.ENDOWMENT, min=0) accept = models.CurrencyField(label='I would accept a minimum of', max=C.ENDOWMENT, min=0) class Sociodemographics(Page): form_model = 'player' form_fields = ['platform_code', 'age', 'gender', 'nationality', 'education', 'job', 'income'] class Dictator_passive(Page): form_model = 'player' form_fields = ['keep'] timeout_seconds = 90 class Ultimatum_Sender(Page): form_model = 'player' form_fields = ['send'] class Ultimatum_Receiver(Page): form_model = 'player' form_fields = ['accept'] class Reciprocity(Page): form_model = 'player' form_fields = ['negative_rec1', 'negative_rec2', 'negative_rec3', 'negative_rec4', 'negative_rec5', 'negative_rec6', 'negative_rec7', 'negative_rec8', 'negative_rec9', 'positive_rec1', 'positive_rec2', 'positive_rec3', 'positive_rec4', 'positive_rec5', 'positive_rec6', 'positive_rec7', 'positive_rec8', 'positive_rec9'] class Tax_morale(Page): form_model = 'player' form_fields = ['tax_morale1', 'tax_morale2', 'tax_morale3', 'tax_morale4', 'tax_morale5'] class Thanks(Page): form_model = 'player' page_sequence = [Sociodemographics, Dictator_passive, Ultimatum_Sender, Ultimatum_Receiver, Reciprocity, Tax_morale, Thanks]