from otree.api import * class Constants(BaseConstants): name_in_url = 'survey' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): consent = models.StringField( label= 'I voluntarily agree to take part in this study.', choices= ['Yes', 'No'], widget=widgets.RadioSelect, ) estuary = models.StringField( label='1.Name of the estuary', choices=['Sundays estuary', 'Swartkops estuary'], widget=widgets.RadioSelect, ) age = models.StringField(label='2.Year of birth') gender = models.StringField( choices=[['Male', 'Male'], ['Female', 'Female']], label='3.What is your gender?', widget=widgets.RadioSelect, ) Race = models.StringField( choices=['White', 'Coloured', 'Black', 'Indian'], label='4.Race', widget=widgets.RadioSelect, ) Activity = models.StringField( label='5.What do you spend your time in, when at the estuary? ', choices=['Recreational fishing', 'Subsistence fishing', 'Recreational activities', 'Bait collection', 'Other'], widget=widgets.RadioSelect, ) Household = models.IntegerField( label=''' 6.How many people in your household visit the estuary? ''' ) Experience = models.IntegerField( choices=[ [1,'1. Very dissatisfied'], [2,'2. Dissatisfied'], [3,'3.Neither dissatisfied nor satisfied'], [4,'4.Satisfied'], [5,'5.Very Satisfied']], label='7.On a scale of 1 to 5,how would you rate your experience at the estuary?',widget=widgets.RadioSelect ) Worth = models.IntegerField( choices=[ [1,'1.Not worth it'], [2,'2.Possibly'], [3,'3.Worth it'], [4,'4.No opinion']], label='8.Thinking of the experience you have had at the estuary; do you think it was worth the amount you paid?', widget=widgets.RadioSelect) Income = models.StringField( label='9.What is your households’ monthly income?', choices=['0 - R1 583', 'R1 584 – R7 167', 'R7 168 –R16 417', 'R16 418 – R33 333', 'R33 334 – R57 333', 'R57 334 – R123 417', 'R123 418+'], widget=widgets.RadioSelect, ) Source_of_income = models.StringField( label='10(a).Where do you get your main income from?', choices=['Salaries/wages/commission', 'Grant', 'Income from Business', 'Pension', 'Other'], widget=widgets.RadioSelect, ) Other_Income = models.StringField( label='10(b).If you selected "other" to the previous question, please specify below, if not write N/A.' ) Permit = models.StringField( label='11(a).What type of collection permit do you have?', choices=['Recreational fishing collection permit', 'Subsistence fishing collection permit', 'Recreational bait collection permit', 'Subsistence bait collection permit', 'Do not have'], widget=widgets.RadioSelect ) Permit_Amount = models.StringField( label='11(b). If you have a collection permit,how much did you pay for it. If you do not have it, type 0' ) Visit = models.StringField( label='12.Please indicate whether you go to the estuary daily, monthly, or annually', choices=['Daily','Weekends','Monthly','Annually'], widget=widgets.RadioSelect, ) Transport = models.IntegerField( label='13.Approximately how much much do you spend on transportation(fuel, rental cars,Uber, taxi fare, etc)' ' when going to the estuary') Boating = models.IntegerField( label=''' 14.Approximately how much much do you spend on boating(fuel, other operating expenses, rental costs etc.) when going to the estuary ''' ) Accommodation = models.IntegerField(label='15.Approximately how much much do you spend on accommodation when going to' ' the estuary') License = models.IntegerField(label='16.Approximately how much do you spend on licensing and annual membership fees' 'when going to the estuary') Food = models.IntegerField( label='17.Approximately how much much do you spend on food and beverages when going to the estuary') Other = models.StringField( label='18.Approximately how much much do you spend on other expenses when going to the estuary,Please specify' ' the expenses and the amount') Catch = models.StringField( choices=['Yes', 'No'], label='19.Has your catch ever been inspected before by a fisheries inspector on this estuary?', widget=widgets.RadioSelect) Time = models.StringField( label='20.If yes, how often', choices=['Once', '1 in 10 outings', '1 in 50 outings', '1 in more than 100 outings', 'Has never been inspected'], widget=widgets.RadioSelect, ) Harvest = models.StringField( label='21.Which kind of estuarine harvest management would you support?', choices=['Max size limit of 40 cm (this may also vary between species)', 'Restrict the number of boats and access' 'according to carrying capacity of the estuary.', 'Ban on night fishing', 'Reduce the number of fishing competitions.', 'Daily bag limit of 1 bag per day for' 'recreational species and 5 for commercial species.'], widgets=widgets.RadioSelect, ) Preservation = models.StringField( label='22.In a scale from 1 to 5,What do you think would happen in the future if no additional preservation' 'measures were taken in this estuary?', choices=['1= The resources will be strongly reduced', '2=The resources will to some extent increase', '3= No Change', '4= The resources will to some extent increase', '5= The resources will strongly increase'], widget=widgets.RadioSelect, ) Provisional = models.StringField( label='23.Which provisional ecosystem services did you benefit from?', choices=['food', 'Water', 'Medical resources', 'Material and assistance', 'Other','None'], widget=widgets.RadioSelect, ) Cultural = models.StringField( label='24.Which cultural ecosystem services did you benefit from?', choices=['Physical and mental health benefits', 'Spiritual experience', ' quality of life', 'Other','None'], widget=widgets.RadioSelect, ) Benefits = models.StringField( label='25.What do you think of the ecosystem services that are provided by this estuary, and how they have helped you?', ) Subsistence_Angling = models.StringField( label='26.What do you think about subsistence angling', choices=['Good', 'Bad', 'Neither'], widget=widgets.RadioSelect, ) Recreational_Angling = models.StringField( label='27.What do you think about Recreational angling', choices=['Good', 'Bad', 'Neither'], widget=widgets.RadioSelect, ) Fishing = models.StringField( label='28.What do you think about unregistered fishing', choices=['Good', 'Bad', 'Neither'], widget=widgets.RadioSelect, ) KiteBoating = models.StringField( label='29.What do you think about subsistence angling', choices=['Good', 'Bad', 'Neither'], widget=widgets.RadioSelect, ) Cruise = models.StringField( label='30.What do you think about leisure cruises', choices=[['Good', 'Good'], ['Bad', 'Bad'], ['Neither', 'Neither']], widget=widgets.RadioSelect, ) Catches = models.StringField( label='31.What do you do with your catch?', choices=['Eat it', 'Sell it', 'Give it away', 'release the fish and return it to the estuary'], widget=widgets.RadioSelect, ) Sale = models.IntegerField( label='32.If you sell, much do you sell it for? R/Kg. If you do not sell write 0') Place = models.StringField( label='33.If you sell, where do you sell it ?. If you do not sell write N/A') Rights_to_fish = models.StringField( label='34(a).How did you obtain the right to fish on this estuary?', choices=['Government', 'Inheritance', 'Local chief', 'Other'], widget=widgets.RadioSelect, ) Other_Rights = models.StringField( label='34(b).If you selected "other" to the previous question, please specify below,if not write N/A' ) Kilos = models.IntegerField( label='35.Please indicate the number of kilos you fish a month on each species') Times = models.StringField( label='36.when do you normally fish the most?', choices=['Daily', 'More on weekdays', 'More on weekends', 'Public holidays', 'When there is a fish run', 'Other'], widget=widgets.RadioSelect, ) Motivation = models.StringField( label='37(a).What best describe your motivation to come here', choices=['To get away from daily routine', 'For relaxation', 'Develop my fishing skills', 'To generate a supply of fish', 'For the challenge or sport of fishing', 'To experience natural surroundings', 'To do something with family and friends','Other'], widget=widgets.RadioSelect, ) Other_Motivation = models.StringField( label='38(b).If you selected "other" to the previous question, please specify below,if not write N/A' ) Value = models.StringField( label='39.Do you think the presence of this estuary influences the location values?', choices=['Yes, it increases', 'Yes, it decreases', 'No', 'Do not know'], widget=widgets.RadioSelect, ) Enjoyment = models.StringField( label='40.Which recreational activities do you enjoy the most when at the estuary?', choices=['Bird Watching', 'Canoeing', 'Water skiing', 'Speed boating', 'Recreational angling', 'Other(walking,picnic etc)','None'], widget=widgets.RadioSelect, ) Quality = models.StringField( label='41.How was the quality of the estuarine services when you were at the estuary?', choices=['Good', 'Fair', 'Bad'], widget=widgets.RadioSelect, ) Purchase = models.StringField( label='42.Have you ever purchased anything from subsistence collectors?', choices=['Yes','No'], widget=widgets.RadioSelect) Amount = models.IntegerField( label='43.If yes, how much were you willing pay? (R/kg). If No write 0') Product = models.StringField( choices=['Bait fish', 'Crayfish', 'Mud prawn', 'Other'], label='44(a).What did you buy?. If you did not buy write N/A', widget=widgets.RadioSelect, ) Other_Product = models.StringField( label='44(b).If you selected "other" to the previous question, please specify below,if not write N/A' ) Recreational_Attribute = models.StringField( label='1A.Which of the two choices listed above would you choose?', choices=['1.Option A', '2. Option B'], widget=widgets.RadioSelect) Subsistence_Attribute = models.StringField( label='1B.Which of the two choices listed above would you choose?', choices=['1.Option A', '2. Option B'], widget=widgets.RadioSelect) # FUNCTIONS # PAGES class Demographics(Page): form_model = 'player' form_fields = ['consent','estuary','age', 'gender','Race','Activity','Household','Experience','Worth','Income','Source_of_income', 'Other_Income','Permit','Permit_Amount','Visit'] class Part2(Page): form_model = 'player' form_fields = ['Transport','Boating','Accommodation','License', 'Food', 'Other','Catch','Time','Harvest','Preservation'] class Part3(Page): form_model = 'player' form_fields = ['Provisional', 'Cultural', 'Benefits', 'Subsistence_Angling', 'Recreational_Angling', 'Fishing','KiteBoating', 'Cruise',] class Part4(Page): form_model = 'player' form_fields = ['Catches', 'Sale', 'Place','Rights_to_fish','Other_Rights','Kilos', 'Times','Motivation', 'Other_Motivation','Value', 'Enjoyment', 'Quality','Purchase', 'Amount', 'Product','Other_Product'] class Part5(Page): form_model = 'player' form_fields = ['Recreational_Attribute','Subsistence_Attribute'] page_sequence =[Demographics,Part2,Part3,Part4,Part5]