from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) import random from django import forms class Constants(BaseConstants): name_in_url = 'COP_Survey' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): best_desc = models.StringField( choices=['Food processor and producer', 'Food processing input supplier', 'Agricultural input supplier', 'Consulting and advising', 'Non-governmental not-for profit organization', 'Investment company', 'Government representative' , 'Donor organization/Donor funded project', 'Business and trade organization', 'Producer organization'], label= ''' Which of the following best describes type of your company / organization? ''', widget=widgets.RadioSelect ) role = models.StringField( choices= ['Owner', 'Manager', 'Other'], label = 'What is your role in the company/organization you are representing today?', widget = widgets.RadioSelect ) other_role = models.StringField( choices=['I am owner/manager', 'Full-time Employee', 'Part-time Employee', 'Other'], label= ''' If you are not the owner/manager, which of the following best describes your position? ''', widget= widgets.RadioSelect ) rltshp = models.StringField( choices = ['Not Applicable', 'Family', 'Friend'], label = 'If you are neither an employee nor manager, please describe your relationship with the' ' owner/founder/CEO of your organization ', widget = widgets.RadioSelect ) year_employed = models.IntegerField(min=1950, max= 2019, label = ''' In which year did you start working with this company or organization? If owner, in which year did you establish this company? ''' ) total_employees = models.IntegerField(min=0, label = '''Approximately how many employees does your company or organization have?''' ) lab_exp = models.StringField( choices =['Yes', 'No'], label = 'Have you ever taken part in an economics or any laboratory experiment?', widget = widgets.RadioSelect ) salary = models.StringField( choices = ['Below 10,000', '11 to 20,000', '21 to 40,000', '41 to 60,000', '61 to 100,00', 'Above 100,000'], label ='Which of the following best describes the range of your monthly salary in KSH', widget = widgets.RadioSelect ) year_compjoined = models.IntegerField(min=2011, max= 2019, label= ''' In which year did your business join the CoP. ''' ) month_compjoined = models.StringField( choices=['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], label= ''' In which month did your business join the CoP. ''' ) other_attendee = models.StringField( choices=['Yes', 'No'], label = 'Is anyone else from your company/organization attending this CoP meeting today', widget = widgets.RadioSelect ) first_time = models.StringField( choices =['Yes', 'No'], label= 'As an individual, is this your first time of attending a CoP meeting?', widget = widgets.RadioSelect ) first_year= models.IntegerField(min=2011, max= 2019, label = ''' In which year did your company first send a representative to the CoP meeting''' ) first_month = models.StringField( choices=['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], label = ''' In which month did your company first send a representative to the CoP meeting''' ) copfreq = models.IntegerField(min=0, max=50, label = ''' How many CoP meetings have you attended since you joined? ''' ) people_known = models.IntegerField(min=0, max=80, label = ''' Approximately how many people at today's CoP meeting did you know before today's meeting? (please do not count people from your own company or organization who may be attending this meeting) ''' ) inter_people = models.IntegerField(min=0, max=80, label=''' Approximately how many people at today's CoP meeting did you interact with? ''' ) interact_1 = models.StringField( choices = ['Daily', 'At least once a week', '2-3 times a month' 'At least once a quarter', 'At least once every 6 months', 'At least once a year', 'Less frequently than every year', 'Never'], label = ''' Think of one person (who is not from your company/organization) present at today’s CoP meeting whom you knew the most before today’s meeting. How regularly do you interact with this person in a professional setting? ''', widget = widgets.RadioSelect ) interact_2 = models.StringField( choices=['Daily', 'At least once a week', '2-3 times a month' 'At least once a quarter', 'At least once every 6 months', 'At least once a year', 'Less frequently than every year', 'Never'], label= '''How regularly do you interact with this person in a social setting''', widget = widgets.RadioSelect ) ta_applied = models.StringField( choices=['Yes', 'No','Not Applicable'], label =''' Has your company ever APPLIED for technical assistance from GAIN? ''', widget = widgets.RadioSelect ) ta_granted = models.StringField( choices=['Yes', 'No', 'Not Applicable'], label = ''' Has your company ever RECEIVED technical assistance from GAIN? ''', widget = widgets.RadioSelect ) fa_applied = models.StringField( choices=['Yes', 'No', 'Not Applicable'], label=''' Has your company ever APPLIED for financial assistance from GAIN? ''', widget=widgets.RadioSelect ) fa_granted = models.StringField( choices=['Yes', 'No', 'Not Applicable'], label=''' Has your company ever RECEIVED financial assistance from GAIN? ''', widget=widgets.RadioSelect ) inputs_purch = models.StringField( choices = ['Yes', 'No', 'Not Applicable'], label = ''' Have you ever purchased inputs from any person/business you met through the CoP? ''', widget = widgets.RadioSelect ) sale_prod = models.StringField( choices = ['Yes', 'No', 'Not Applicable'], label = ''' Have you ever sold products (inputs or output) to any person/business you met through the CoP? ''', widget = widgets.RadioSelect ) tech_supp = models.StringField( choices = ['Yes', 'No', 'Not Applicable'], label = ''' Have you ever provided technical support, consulting or business advising to any person/business you met through the CoP? ''', widget = widgets.RadioSelect ) mentorship = models.StringField( choices = ['Yes', 'No', 'Not Applicable'], label = ''' Have you ever provided mentorship to any person/business you met through the CoP? ''', widget = widgets.RadioSelect ) mgt_prac = models.StringField( choices = ['Yes', 'No', 'Not Applicable'], label = ''' Have you learned any new business management practices from a person/business you met through the CoP? ''', widget = widgets.RadioSelect ) produc_tech = models.StringField( choices = ['Yes', 'No', 'Not Applicable'], label = ''' Have you learned any new production practices from a person/business you met through the CoP? ''', widget = widgets.RadioSelect ) gain_1 = models.StringField( choices=['Not at all', 'A little', 'Some', 'A lot'], label=''' How much do you know about the mission of GAIN? ''', widget=widgets.RadioSelect ) gain_2 = models.StringField( choices= ['Not at all', 'A little', 'Some', 'A lot'], label= ''' How much do you know about the purpose of GAIN? ''', widget = widgets.RadioSelect ) gain_3 = models.StringField( choices=['Not at all', 'A little', 'Some', 'A lot'], label=''' How much do you know about the topic of today's meeting? ''', widget=widgets.RadioSelect ) learn = models.StringField( choices=['Friend or colleague from another organization','Social media', 'GAIN Website', 'GAIN Newsletter, brochure or other printed materials', 'Newspaper or radio', 'Through another GAIN event', 'Through another event not organized by GAIN'], label=''' How did you first learn about the Community of Practice ? ''', widget=widgets.RadioSelect ) other_org = models.StringField( choices=['Yes', 'No'], label=''' Are you a member of another organization that promotes networking among professionals in your sector/field of work? ''', widget=widgets.RadioSelect ) reason_attended = models.StringField( blank = True, label = ''' What are the reasons for your participation at today's CoP event? [Select all that apply]''', widget=widgets.forms.CheckboxSelectMultiple( choices=[ ['1', 'Training opportunity'], ['2', 'Networking'], ['3', 'Learning opportunity'], ['4', 'New product ideas'], ['5', 'New business/investment ideas'], ['6', 'Funding opportunity'], ['7', 'Mentorship'], ], ) ) benefits = models.StringField( blank = True, label = ''' Have you or your company/organization benefited from GAIN’s Community of Practice through any of the following: (select all that apply) ''', widget = widgets.forms.CheckboxSelectMultiple( choices=[ ['1', 'New product development'], ['2', 'Expansion of market for existing products'], ['3', 'New grant funding opportunity'], ['4', 'Improvements in our technical knowledge/capacity'], ['5', 'New business/investment ideas'], ['6', 'Have not benefited yet'], ], ) ) other_ben = models.StringField( label = ''' Specify if other. Write 'NA' if none. ''' ) risk_prep = models.StringField( choices = ['Fully prepared to take risks', 'I try to avoid taking risks'], label = ''' How do you see yourself when it comes to taking risks? ''', widget= widgets.RadioSelect ) risk_degree = models.IntegerField(min=0, max= 10, label = ''' On a scale of 0 to 10, how much are you willing to take risk [Zero being "I don't like to take risks at all" and 10 being I am very willing to take risk] ''' )