from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) from django.db import models as djmodels author = 'Cardin Masselink' doc = """ Exhibit """ class Constants(BaseConstants): name_in_url = 'livepages' players_per_group = 3 num_rounds = 1 instructions_template = 'livepages/FirstInstructions.html' AgreeChoices7 = [ [1, 'Strongly disagree'], [2, 'Disagree'], [3, 'Somewhat disagree'], [4, 'Neither agree nor disagree'], [5, 'Somewhat agree'], [6, 'Agree'], [7, 'Strongly agree'] ] AgreeChoices6 = [ [1, 'Strongly disagree'], [2, 'Disagree'], [3, 'Slightly disagree'], [4, 'Slightly agree'], [5, 'Agree'], [6, 'Strongly agree'] ] AgreeChoices5 = [ [1, 'Strongly disagree'], [2, 'Disagree'], [3, 'Neither agree or disagree'], [4, 'Agree'], [5, 'Strongly agree'] ] Agree5_noFB_Choices = [ [1, 'Strongly disagree'], [2, 'Disagree'], [3, 'Neither agree or disagree'], [4, 'Agree'], [5, 'Strongly agree'], [6, 'I did not ask for feedback'] ] Agree5_noFB_SupChoices = [ [1, 'Strongly disagree'], [2, 'Disagree'], [3, 'Neither agree or disagree'], [4, 'Agree'], [5, 'Strongly agree'], [6, 'I was not asked to give feedback'] ] ComparisonChoices = [ [1, 'Much less'], [2, 'Somewhat less'], [3, 'About the same'], [4, 'Somewhat more'], [5, 'Much more'] ] EmployeeChoices = [ [1, 'Employee 1'], [2, 'Employee 2'] ] FamiliarityChoices = [ [1, 'Not at all familiar'], [2, 'Slightly familiar'], [3, 'Somewhat familiar'], [4, 'Moderately familiar'], [5, 'Extremely familiar'] ] FrequencyChoices6 = [ [1, 'Almost never'], [2, 'Very infrequently'], [3, 'Somewhat infrequently'], [4, 'Somewhat frequently'], [5, 'Very frequently'], [6, 'Almost always'] ] FrequencyChoices5 = [ [1, 'Never'], [2, 'Rarely'], [3, 'Occasionally'], [4, 'A moderate amount'], [5, 'A great deal'] ] LikelihoodChoices = [ [1, 'Not at all'], [2, 'Slightly'], [3, 'Somewhat'], [4, 'Moderately'], [5, 'Very much'] ] TrueChoices4 = [ [1, 'Never or almost never true of me'], [2, 'Sometimes true of me'], [3, 'Often true of me'], [4, 'Always or almost always true of me'] ] TrueChoices7 = [ [1, 'Very untrue of me'], [2, 'Untrue of me'], [3, 'Somewhat untrue of me'], [4, 'Neutral'], [5, 'Somewhat true of me'], [6, 'True of me'], [7, 'Very true of me'] ] TrueBelieveChoices5 = [ [1, 'Very untrue of what I believe'], [2, 'Somewhat untrue of what I believe'], [3, 'Neutral'], [4, 'Somewhat true of what I believe'], [5, 'Very true of what I believe'] ] YesOrNo = [ [1, 'Yes'], [2, 'No'] ] class Subsession(BaseSubsession): pass class Group(BaseGroup): # Experimental variables selection_supervisor = models.IntegerField( blank=False, label='', choices=Constants.EmployeeChoices, widget=widgets.RadioSelect ) @property def workers(self): return [p for p in self.get_players() if p.role() == 'worker'] # seems to define that p stands for player with id=1 or id=2 (=worker) @property def chosen_by_workers(self): chosen_by_workers = [p.final_submission for p in self.workers] return self.solutions.filter(id__in=chosen_by_workers).order_by('id') # Makes a list of the choices of the workers => final_submission for worker 1 and 2 (player class), and # then returns the solutions of the workers, ordered by their id's @property def preferred_solution(self): return self.solutions.get(id=self.selection_supervisor) # Function to get the preferred solution of the supervisor by returning the selected solution of the supervisor. # Basically use get() when you want to get a single unique object, and filter() when you want to get all objects # that match your lookup parameters. Get() raises MultipleObjectsReturned if more than one object was found. # def selection_supervisor_choices(self): # return [[s.id, s.text] for s in self.chosen_by_workers] # # Defines the choices that the supervisor has, which are the creative solutions of the workers (one for each). # # It returns the id of the employee and the text of the solution. def live_solution(self, id_in_group, payload): player = self.get_player_by_id(id_in_group) supervisor = self.get_player_by_role('supervisor') with_feedback = bool(payload['with_feedback']) solution = payload['solution'] player.solutions.create(text=solution, group=self, with_feedback=with_feedback, click_time=payload['click_time'], submission_time=payload['submission_time'], first_key_press=payload['first_key_press']) submit = {'id_in_group': id_in_group, 'solution': solution} if with_feedback: return {id_in_group: submit, supervisor.id_in_group: submit} else: return {id_in_group: submit} class Player(BasePlayer): # Experimental variables final_submission = models.IntegerField( label='', widget=widgets.RadioSelect, blank=False ) def role(self): if self.id_in_group < 3: return 'worker' return 'supervisor' def final_submission_choices(self): solutions = self.solutions.order_by('id') choices = [] for s in solutions: choices.append([s.id, s.text]) return choices def chat_nickname(self): return 'Player {}'.format(self.id_in_group) def chat_configs(self): configs = [] for other in self.get_others_in_group(): if other.id_in_group == 3 or self.id_in_group == 3: if other.id_in_group < self.id_in_group: lower_id, higher_id = other.id_in_group, self.id_in_group else: lower_id, higher_id = self.id_in_group, other.id_in_group configs.append({ # make a name for the channel that is the same for all # channel members. That's why we order it (lower, higher) 'channel': '{}-{}-{}'.format(self.group.id, lower_id, higher_id), 'label': 'Chatbox to provide feedback to and communicate with Employee {} (in English):'.format(other.id_in_group) }) return configs # Accept instructions checkboxes finished_1 = models.BooleanField(blank=False, widget=widgets.CheckboxInput) finished_2 = models.BooleanField(blank=False, widget=widgets.CheckboxInput) finished_3 = models.BooleanField(blank=False, widget=widgets.CheckboxInput) finished_4 = models.BooleanField(blank=False, widget=widgets.CheckboxInput) finished_5 = models.BooleanField(blank=False, widget=widgets.CheckboxInput) # Comprehension checks Employee and Supervisor Real-Time comprehension_emp1 = models.IntegerField( label="The decision to ask for feedback or not will be at my own discretion.", blank=False, choices=[[1, 'True'], [2, 'False']], widget=widgets.RadioSelect ) comprehension_emp2 = models.IntegerField( label="I can ask feedback as often as I want.", blank=False, choices=[[1, 'True'], [2, 'False']], widget=widgets.RadioSelect ) comprehension_emp3 = models.IntegerField( label="I can use the chatbox to freely communicate with the supervisor.", blank=False, choices=[[1, 'True'], [2, 'False']], widget=widgets.RadioSelect ) comprehension_sup1 = models.IntegerField( label="The employee can ask feedback as often as he or she wants.", blank=False, choices=[[1, 'True'], [2, 'False']], widget=widgets.RadioSelect ) comprehension_sup2 = models.IntegerField( label="I can use the chatbox to freely communicate with each employee.", blank=False, choices=[[1, 'True'], [2, 'False']], widget=widgets.RadioSelect ) # Personal unique code personalcode = models.StringField() # Demographic questions nationality = models.StringField(blank=False) mother_tongue = models.StringField( label="What is your mother tongue (first language)?", blank=False) educational_level = models.IntegerField( label="What best describes your current educational level?", blank=False, choices=[ [1, 'Bachelor degree'], [2, 'Master degree'], [3, 'Other'], [4, 'I prefer not to say'] ]) educational_track = models.IntegerField( label="What best describes your current educational track?", blank=False, choices=[ [1, 'Economics'], [2, 'International Business Administration/Business Economics'], [3, 'Other degree in Management or Economics'], [4, 'Degree in Law'], [5, 'Degree in Psychology'], [6, 'Other'], [7, 'I prefer not to say'] ]) work_experience = models.IntegerField( label="Please indicate your work experience. All jobs count, including part-time and volunteer work.", blank=False, choices=[ [1, 'I do not have work experience'], [2, 'Less than 1 years work experience'], [3, 'Between 1 to 2 years work experience'], [4, 'Between 2 to 3 years work experience'], [5, 'Between 3 to 5 years work experience'], [6, 'More than 5 years work experience'], ]) english = models.IntegerField( label="Please rate your English on a percentage scale between 0 and 100.", min=0, max=100, blank=False, initial=None) gender = models.IntegerField( label="Please select your gender.", blank=False, widget=widgets.RadioSelect, choices=[ [1, 'Male'], [2, 'Female'], [3, 'Other'], ]) age = models.IntegerField(label="Please enter your age.", min=14, max=90, blank=False) newspaper = models.IntegerField( label="How often do you read a newspaper (online or on paper)?", blank=False, choices=[ [1, 'Never or rarely - Less than 30% of the days'], [2, 'Occasionally - On about 30% of the days'], [3, 'Sometimes - On about 50% of the days'], [4, 'Frequently - On about 70% of the days'], [5, 'Usually - On about 90% of the days or every day'] ]) course_credit = models.IntegerField( label="Do you participate in this experiment to earn bonus points? Please note that only students " "enrolled in the course Management Accounting for IBA (BSc IBA) can earn bonus points with this " "experiment.", blank=False, widget=widgets.RadioSelect, choices=[ [1, 'Yes'], [2, 'No'], ]) # Intrinsic Motivation Inventory (IMI) EMPLOYEE # Interest and enjoyment interest_1 = models.IntegerField( label="I thought this was a boring activity.", choices=Constants.TrueChoices7) interest_2 = models.IntegerField( label="I would describe this activity as very interesting.", choices=Constants.TrueChoices7) interest_3 = models.IntegerField( label="While I was doing this activity, I was thinking about how much I enjoyed it.", choices=Constants.TrueChoices7) # Perceived competence competence_1 = models.IntegerField( label="After working at this activity for a while, I felt pretty competent.", choices=Constants.TrueChoices7) competence_2 = models.IntegerField( label="I am satisfied with my performance during this activity.", choices=Constants.TrueChoices7) competence_3 = models.IntegerField( label="I was pretty skilled at this activity.", choices=Constants.TrueChoices7) # Effort effort_1 = models.IntegerField( label="I did not try very hard to do well at this activity.", choices=Constants.TrueChoices7) effort_2 = models.IntegerField( label="It was important to me to do well during this activity.", choices=Constants.TrueChoices7) effort_3 = models.IntegerField( label="I did not put much energy into this experiment.", choices=Constants.TrueChoices7) # Pressure and autonomy pressure_1 = models.IntegerField( label="I did not feel nervous at all while doing this activity.", choices=Constants.TrueChoices7) pressure_2 = models.IntegerField( label="I felt pressured while doing this activity.", choices=Constants.TrueChoices7) autonomy_1 = models.IntegerField( label="I had the feeling that I could decide for myself how I did this activity.", choices=Constants.TrueChoices7) autonomy_2 = models.IntegerField( label = "I had the feeling that I could freely integrate my own ideas in the creative solutions I developed.", choices=Constants.TrueChoices7) # Value/usefulness value_1 = models.IntegerField( label="I think this is an important activity.", choices=Constants.TrueChoices7) # Relatedness related_1 = models.IntegerField( label="I felt really distant to the supervisor.", choices=Constants.TrueChoices7) related_2 = models.IntegerField( label="I felt like I could really trust the supervisor.", choices=Constants.TrueChoices7) related_3 = models.IntegerField( label="I would really prefer not to interact with the supervisor in the future.", choices=Constants.TrueChoices7) # Decision-making autonomy (NEW) decision_aut_1 = models.IntegerField( label="This activity gave me a chance to use my personal judgment.", choices=Constants.AgreeChoices5 ) decision_aut_2 = models.IntegerField( label="This activity allowed me to make a lot of decisions on my own.", choices=Constants.AgreeChoices5 ) decision_aut_3 = models.IntegerField( label="This activity provided me with significant autonomy.", choices=Constants.AgreeChoices5 ) # Work methods autonomy (NEW) methods_aut_1 = models.IntegerField( label="This activity allowed me to make decisions about what methods I wanted to use to develop creative " "solutions.", choices=Constants.AgreeChoices5 ) methods_aut_2 = models.IntegerField( label="This activity gave me considerable opportunity for independence and freedom in how I developed creative " "solutions.", choices=Constants.AgreeChoices5 ) methods_aut_3 = models.IntegerField( label="This activity allowed me to decide on my own how to go about developing creative solutions.", choices=Constants.AgreeChoices5 ) # Pressure and monitoring from George and Zhou, 2001 (NEW) monitoring_1 = models.IntegerField( label="I sometimes felt like my supervisor was looking over my shoulder.", choices=Constants.AgreeChoices7 ) monitoring_2 = models.IntegerField( label="I had the feeling that my work was constantly being evaluated.", choices=Constants.AgreeChoices7 ) monitoring_3 = models.IntegerField( label="I had the feeling that my supervisor liked to see things done in a certain way.", choices=Constants.AgreeChoices7 ) # Extrinsic motivation (outward scale - Work Preference Inventory) (NEW) extrinsic_mot_1 = models.IntegerField( label="I felt strongly motivated by the recognition I could earn if my creative solution was selected at the " "end of the activity.", choices=Constants.TrueChoices4 ) extrinsic_mot_2 = models.IntegerField( label="I wanted the supervisor to find out how good I am at developing at creative solutions.", choices=Constants.TrueChoices4 ) extrinsic_mot_3 = models.IntegerField( label="To me, success meant doing better than the other employee during this activity.", choices=Constants.TrueChoices4 ) # Extrinsic motivation (compensation scale - Work Preference Inventory) (NEW) extrinsic_mot_4 = models.IntegerField( label="I was strongly motivated by the desire to get my creative solution selected by the supervisor at the " "end of the activity.", choices=Constants.TrueChoices4 ) # Distraction (NEW) --> maybe only use a few --> max. 4 --> check correlation/alpha distraction_1 = models.IntegerField( label="I found myself involved in the experiment.", choices=Constants.AgreeChoices7 ) distraction_2 = models.IntegerField( label="I started to lose my interest as the experiment progressed.", choices=Constants.AgreeChoices7 ) distraction_3 = models.IntegerField( label="I found it difficult to stay focused on what was happening in the experiment.", choices=Constants.AgreeChoices7 ) distraction_4 = models.IntegerField( label="I rushed through the experiment without being really attentive to what was going on.", choices=Constants.AgreeChoices7 ) distraction_5 = models.IntegerField( label="I did the experiment automatically, without being aware of what I was doing.", choices=Constants.AgreeChoices7 ) distraction_6 = models.IntegerField( label="I found myself doing the experiment without paying attention.", choices=Constants.AgreeChoices7 ) # Identification and connectedness identification_1 = models.IntegerField( label="In developing creative solutions, I felt that the supervisor and I were one team.", choices=Constants.AgreeChoices7) identification_2 = models.IntegerField( label="It felt as if developing creative solutions was joint work by me and the supervisor.", choices=Constants.AgreeChoices7) identification_3 = models.IntegerField( label="It felt as if the supervisor and I joined forces to develop creative solutions.", choices=Constants.AgreeChoices7) identification_4 = models.IntegerField( label="I had the feeling that I could easily approach the supervisor for feedback.", choices=Constants.AgreeChoices7) # Intrinsic Motivation Inventory (IMI) SUPERVISOR # Interest and enjoyment interest_sup1 = models.IntegerField( label="I think developing creative solutions would be a boring activity.", choices=Constants.TrueChoices7) interest_sup2 = models.IntegerField( label="I would describe developing creative solutions as very interesting.", choices=Constants.TrueChoices7) # Perceived competence competence_sup1 = models.IntegerField( label="I would be pretty skilled at developing creative solutions.", choices=Constants.TrueChoices7) # Effort effort_sup1 = models.IntegerField( label="I would not try very hard to do well at developing creative solutions. ", choices=Constants.TrueChoices7) effort_sup2 = models.IntegerField( label="It would be important to me to do well at developing creative solutions.", choices=Constants.TrueChoices7) effort_sup3 = models.IntegerField( label="I would not put much energy into developing creative solutions.", choices=Constants.TrueChoices7) # Pressure and autonomy pressure_sup1 = models.IntegerField( label="I would not feel nervous at all while developing creative solutions.", choices=Constants.TrueChoices7) pressure_sup2 = models.IntegerField( label="I would be anxious while working on developing creative solutions.", choices=Constants.TrueChoices7) pressure_sup3 = models.IntegerField( label="I would feel pressured while developing creative solutions.", choices=Constants.TrueChoices7) # Value/usefulness value_sup1 = models.IntegerField( label="I think developing creative solutions is an important activity.", choices=Constants.TrueChoices7) # Decision-making autonomy (NEW) SUPERVISOR decision_aut_sup1 = models.IntegerField( label="This activity gave me a chance to use my personal judgment.", choices=Constants.AgreeChoices5 ) decision_aut_sup2 = models.IntegerField( label="This activity allowed me to make a lot of decisions on my own.", choices=Constants.AgreeChoices5 ) decision_aut_sup3 = models.IntegerField( label="This activity provided me with significant autonomy.", choices=Constants.AgreeChoices5 ) # Work methods autonomy (NEW) SUPERVISOR methods_aut_sup1 = models.IntegerField( label="This activity allowed me to make decisions about what methods I preferred to use to give feedback to " "the employees.", choices=Constants.Agree5_noFB_SupChoices ) methods_aut_sup2 = models.IntegerField( label="This activity gave me considerable opportunity for independence and freedom in how I gave feedback to " "the employees.", choices=Constants.Agree5_noFB_SupChoices ) methods_aut_sup3 = models.IntegerField( label="This activity allowed me to decide on my own how to go about giving feedback to the employees.", choices=Constants.Agree5_noFB_SupChoices ) # Distraction (NEW) SUPERVISOR --> maybe only use a few --> max. 4 --> check correlation/alpha distraction_sup1 = models.IntegerField( label="I found myself involved in the experiment.", choices=Constants.AgreeChoices7 ) distraction_sup2 = models.IntegerField( label="I started to lose my interest as the experiment progressed.", choices=Constants.AgreeChoices7 ) distraction_sup3 = models.IntegerField( label="I found it difficult to stay focused on what was happening in the experiment.", choices=Constants.AgreeChoices7 ) distraction_sup4 = models.IntegerField( label="I rushed through the experiment without being really attentive to what was going on.", choices=Constants.AgreeChoices7 ) distraction_sup5 = models.IntegerField( label="I did the experiment automatically, without being aware of what I was doing.", choices=Constants.AgreeChoices7 ) distraction_sup6 = models.IntegerField( label="I found myself doing the experiment without paying attention.", choices=Constants.AgreeChoices7 ) # Connectedness of supervisor with employees connected_11 = models.IntegerField( label="I felt connected to Employee 1.", choices=Constants.TrueChoices7 ) connected_12 = models.IntegerField( label="I felt that Employee 1 and I were one team.", choices=Constants.TrueChoices7 ) connected_13 = models.IntegerField( label="It felt as if Employee 1 and I joined forces to develop creative solutions.", choices=Constants.TrueChoices7 ) connected_21 = models.IntegerField( label="I felt connected to Employee 2.", choices=Constants.TrueChoices7 ) connected_22 = models.IntegerField( label="I felt that Employee 2 and I were one team.", choices=Constants.TrueChoices7 ) connected_23 = models.IntegerField( label="It felt as if Employee 2 and I joined forces to develop creative solutions.", choices=Constants.TrueChoices7 ) # Rating of Employee creativity rating_1 = models.IntegerField( label="In general, how do you rate the creativity of Employee 1?", choices=[ [1, 'Poor'], [2, 'Fair'], [3, 'Good'], [4, 'Very good'], [5, 'Excellent'] ]) rating_2 = models.IntegerField( label="In general, how do you rate the creativity of Employee 2?", choices=[ [1, 'Poor'], [2, 'Fair'], [3, 'Good'], [4, 'Very good'], [5, 'Excellent'] ]) # Engagement engage_1 = models.IntegerField( label="When developing creative solutions, I felt bursting with energy.", choices=Constants.LikelihoodChoices) engage_2 = models.IntegerField( label="I felt enthusiastic about developing creative solutions.", choices=Constants.LikelihoodChoices) engage_3 = models.IntegerField( label="I was immersed in developing creative solutions.", choices=Constants.LikelihoodChoices) # Expectation of supervisor's decision (for Employee) expectation_emp = models.IntegerField( label="Please indicate the probability on a scale of 0 to 100% that the supervisor will select your creative " "solution.", blank=False, min=0, max=100) # Giving feedback (for Supervisor) - last two also for traditional feedback_1 = models.IntegerField( label="When giving feedback, I tried to mainly help the employees in improving their current creative solution.", choices=Constants.Agree5_noFB_SupChoices ) feedback_2 = models.IntegerField( label="When giving feedback, I tried to help the employees in selecting whether or not to continue working on " "the current creative solution.", choices=Constants.Agree5_noFB_SupChoices ) feedback_3 = models.IntegerField( label="When giving feedback, I tried to clearly communicate my expectations of creativity to the employees.", choices=Constants.Agree5_noFB_SupChoices ) feedback_4 = models.IntegerField( label="When giving feedback, I tried to guide the employees to creative solutions I had in mind.", choices=Constants.Agree5_noFB_SupChoices ) feedback_5 = models.IntegerField( label="When giving feedback to one employee, I was influenced by the creative solutions submitted by the other " "employee.", choices=Constants.Agree5_noFB_SupChoices ) feedback_6 = models.IntegerField( label="I found it difficult to give feedback on creative solutions knowing that I also had to select one " "creative solution later on.", choices=Constants.Agree5_noFB_SupChoices ) feedback_7 = models.IntegerField( label="My feedback would have been different if the final selection of the creative solution would have been " "made by someone else.", choices=Constants.Agree5_noFB_SupChoices ) feedback_8 = models.IntegerField( label="My selection of the most creative solution is influenced by the behavior of employees throughout the " "10 minutes.", choices=Constants.Agree5_noFB_SupChoices ) feedback_9 = models.IntegerField( label="Before starting the experiment, I had high expectations of the creative solutions of the employees.", choices=Constants.Agree5_noFB_SupChoices ) feedback_10 = models.IntegerField( label="In general, the expectations I had regarding the creative solutions were not met.", choices=Constants.Agree5_noFB_SupChoices ) # Alternative channels (for Supervisor) alternative_sup1 = models.IntegerField( label="In general, I got the feeling that the employee(s) asked feedback to increase the probability that I " "would select their creative solution.", choices=Constants.Agree5_noFB_SupChoices ) alternative_sup2 = models.IntegerField( label="In general, I got the feeling that the employee(s) asked feedback to signal to me that they were " "working hard.", choices=Constants.Agree5_noFB_SupChoices ) alternative_sup3 = models.IntegerField( label="In general, I got the feeling that the employee(s) asked feedback to signal to me that they are " "creative persons.", choices=Constants.Agree5_noFB_SupChoices ) alternative_sup4 = models.IntegerField( label="In general, I got the feeling that the employee(s) asked feedback to detect what I want to see in a " "creative solution.", choices=Constants.Agree5_noFB_SupChoices ) alternative_sup5 = models.IntegerField( label="In general, I got the feeling that the employee(s) asked feedback to make sure that I developed a good " "impression about him/her.", choices=Constants.Agree5_noFB_SupChoices ) alternative_sup6 = models.IntegerField( label="In general, I got the feeling that the employee(s) asked feedback to make sure that I would consider " "him/her as my favorite employee.", choices=Constants.Agree5_noFB_SupChoices ) # Alternative channels (for Employee) alternative_emp1 = models.IntegerField( label="By asking feedback, I tried to increase the probability that the supervisor would select my creative " "proposal.", choices=Constants.Agree5_noFB_Choices ) alternative_emp2 = models.IntegerField( label="By asking feedback, I tried to signal to the supervisor that I am working hard.", choices=Constants.Agree5_noFB_Choices ) alternative_emp3 = models.IntegerField( label="By asking feedback, I tried to signal that I am a creative person.", choices=Constants.Agree5_noFB_Choices ) alternative_emp4 = models.IntegerField( label="By asking feedback, I tried to detect what the supervisor wants to see in a creative solution.", choices=Constants.Agree5_noFB_Choices ) alternative_emp5 = models.IntegerField( label="By asking feedback, I tried to make sure that the supervisor developed a good impression about me.", choices=Constants.Agree5_noFB_Choices ) alternative_emp6 = models.IntegerField( label="By asking feedback, I tried to make sure that the supervisor would consider me as his/her favorite " "employee.", choices=Constants.Agree5_noFB_Choices ) # Perceived value and quality of feedback (for Employee) FB_value_1 = models.IntegerField( label="I find the supervisor's feedback useful.", choices=Constants.Agree5_noFB_Choices ) FB_value_2 = models.IntegerField( label="I felt pleased with myself after receiving feedback.", choices=Constants.Agree5_noFB_Choices ) FB_value_3 = models.IntegerField( label="The feedback of my supervisor made me feel proud.", choices=Constants.Agree5_noFB_Choices ) FB_value_4 = models.IntegerField( label="The feedback of my supervisor helped me to improve my performance.", choices=Constants.Agree5_noFB_Choices ) # Perceived value and quality of feedback - judgment by supervisor (own self-evaluation) (NEW!) FB_value_sup1 = models.IntegerField( label="In general, I believe that the feedback I gave to the employee(s) was useful.", choices=Constants.Agree5_noFB_SupChoices ) FB_value_sup2 = models.IntegerField( label="In general, I felt pleased with myself after giving feedback to the employee(s).", choices=Constants.Agree5_noFB_SupChoices ) FB_value_sup3 = models.IntegerField( label="In general, I believe that the feedback I gave helped the employee(s) to improve his/her performance.", choices=Constants.Agree5_noFB_SupChoices ) FB_value_sup4 = models.IntegerField( label="In general, I felt that the employee(s) trusted me as a supervisor.", choices=Constants.Agree5_noFB_SupChoices ) # Credibility supervisor (for Employee) credibility_1 = models.IntegerField( label="I used the feedback of the supervisor.", choices=Constants.AgreeChoices7 ) credibility_2 = models.IntegerField( label="I was influenced by the feedback of the supervisor when developing creative solutions.", choices=Constants.AgreeChoices7 ) credibility_3 = models.IntegerField( label="The feedback of the supervisor was credible.", choices=Constants.AgreeChoices7 ) # Open question on feedback (for Employee) ask_feedback = models.IntegerField( label="I asked for feedback from the supervisor during the activity.", choices=Constants.YesOrNo ) reasons_feedback = models.StringField( label="What is (are) the reasons that you asked for feedback / did not ask for feedback?", blank=False) # General understanding understand_1 = models.IntegerField( label="The instructions of this experiment were clear.", choices=Constants.AgreeChoices5 ) understand_2 = models.IntegerField( label="The experiment was difficult for me to understand.", choices=Constants.AgreeChoices5 ) understand_3 = models.IntegerField( label="I had to make difficult decisions in this experiment.", choices=Constants.AgreeChoices5 ) # General experience with feedback experience_1 = models.IntegerField( label="It is important to me to obtain useful information about my performance.", choices=Constants.AgreeChoices5 ) experience_2 = models.IntegerField( label="Receiving negative feedback does not really change the way I feel about myself.", choices=Constants.AgreeChoices5 ) experience_3 = models.IntegerField( label="I try to avoid negative feedback because it makes me feel bad about myself.", choices=Constants.AgreeChoices5 ) experience_4 = models.IntegerField( label="I am worried about the impression I would make if I were to ask for feedback.", choices=Constants.AgreeChoices5 ) experience_5 = models.IntegerField( label="If I seek feedback about my performance, I don’t want other people to know what type of feedback " "I received.", choices=Constants.AgreeChoices5 ) experience_6 = models.IntegerField( label="I change my behavior to create a good impression to others.", choices=Constants.AgreeChoices5 ) experience_7 = models.IntegerField( label="It is important to me to give a good impression to others.", choices=Constants.AgreeChoices5 ) # Personality # Innate creative potential creativity_1 = models.IntegerField( label="I have a lot of creative ideas.", choices=Constants.AgreeChoices5 ) creativity_2 = models.IntegerField( label="I prefer to work on tasks that allow me to be creative.", choices=Constants.AgreeChoices5 ) creativity_3 = models.IntegerField( label="I can cope with several new ideas at the same time.", choices=Constants.AgreeChoices5 ) creativity_4 = models.IntegerField( label="If I cannot solve a particular problem, I always try to consider the problem from another perspective.", choices=Constants.AgreeChoices5 ) creativity_5 = models.IntegerField( label="I like to break established routines.", choices=Constants.AgreeChoices5 ) creativity_6 = models.IntegerField( label="I prefer situations where everything is clear from the beginning.", choices=Constants.AgreeChoices5 ) creativity_7 = models.IntegerField( label="When doing a team assignment, I am usually the one who comes up with the creative ideas.", choices=Constants.AgreeChoices5 ) risk_pref = models.IntegerField( label="In general, are you a person who is fully prepared to take risks or try to avoid taking risks? Please " "provide a rating between 1 and 10, where 1 = Not at all willing to take risk and 10 = Very willing to " "take risk.", min=1, max=10, blank=False ) # Creative self-efficacy efficacy_1 = models.IntegerField( label="I feel that I am good at generating novel ideas.", choices=Constants.AgreeChoices5 ) efficacy_2 = models.IntegerField( label="I have confidence in my ability to solve problems and creatively.", choices=Constants.AgreeChoices5 ) efficacy_3 = models.IntegerField( label="I have a good imagination.", choices=Constants.AgreeChoices5 ) # Creative mindset # Growth and fixed mindset questionnaire mindset_q1 = models.IntegerField( label="Everyone can create something great at some point if he or she is given appropriate conditions.", choices=Constants.AgreeChoices6, ) mindset_q2 = models.IntegerField( label="You either are creative or you are not — even trying very hard you cannot change much.", choices=Constants.AgreeChoices6, ) mindset_q3 = models.IntegerField( label="Anyone can develop his or her creative abilities up to a certain level.", choices=Constants.AgreeChoices6, ) mindset_q4 = models.IntegerField( label="You have to be born a creator — without innate talent you can only be a scribbler.", choices=Constants.AgreeChoices6, ) mindset_q5 = models.IntegerField( label="Practice makes perfect — perseverance and trying hard are the best ways to develop and expand one’s " "capabilities.", choices=Constants.AgreeChoices6, ) mindset_q6 = models.IntegerField( label="Creativity can be developed, but one either is or is not a truly creative person.", choices=Constants.AgreeChoices6, ) mindset_q7 = models.IntegerField( label="Rome wasn’t built in a day — each creativity requires effort and work, and these two are more " "important than talent.", choices=Constants.AgreeChoices6, ) mindset_q8 = models.IntegerField( label="Some people are creative, others aren’t — and no practice can change it.", choices=Constants.AgreeChoices6, ) mindset_q9 = models.IntegerField( label="It doesn’t matter what creativity level one reveals—you can always increase it.", choices=Constants.AgreeChoices6, ) mindset_q10 = models.IntegerField( label="A truly creative talent is innate and constant throughout one’s entire life.", choices=Constants.AgreeChoices6, ) # Big 5 personality trait_1 = models.IntegerField( label="Extraverted, enthusiastic.", choices=Constants.AgreeChoices7 ) trait_2 = models.IntegerField( label="Critical, quarrelsome.", choices=Constants.AgreeChoices7 ) trait_3 = models.IntegerField( label="Dependable, self-disciplined.", choices=Constants.AgreeChoices7 ) trait_4 = models.IntegerField( label="Anxious, easily upset.", choices=Constants.AgreeChoices7 ) trait_5 = models.IntegerField( label="Open to new experiences, complex.", choices=Constants.AgreeChoices7 ) trait_6 = models.IntegerField( label="Reserved, quiet.", choices=Constants.AgreeChoices7 ) trait_7 = models.IntegerField( label="Sympathetic, warm.", choices=Constants.AgreeChoices7 ) trait_8 = models.IntegerField( label="Disorganized, careless.", choices=Constants.AgreeChoices7 ) trait_9 = models.IntegerField( label="Calm, emotionally stable.", choices=Constants.AgreeChoices7 ) trait_10 = models.IntegerField( label="Conventional, uncreative.", choices=Constants.AgreeChoices7 ) # Self-confidence confidence_1 = models.IntegerField( label="I sort of only half believe in myself.", choices=Constants.AgreeChoices7 ) confidence_2 = models.IntegerField( label="I feel that I am a person of worth, on an equal plane with others.", choices=Constants.AgreeChoices7 ) confidence_3 = models.IntegerField( label="I seem to have a real inner strength in handling things. I am on a pretty solid foundation and it makes " "me pretty sure of myself.", choices=Constants.AgreeChoices7 ) confidence_4 = models.IntegerField( label="I am frequently bothered by feelings of inferiority.", choices=Constants.AgreeChoices7 ) # Balanced processing processing_1 = models.IntegerField( label="I would rather not be confronted with my personal limitations and shortcomings.", choices=Constants.AgreeChoices7 ) processing_2 = models.IntegerField( label="When someone criticizes me, I try not to vest too much attention to it.", choices=Constants.AgreeChoices7 ) processing_3 = models.IntegerField( label="I would rather not have my personal weaknesses exposed.", choices=Constants.AgreeChoices7 ) processing_4 = models.IntegerField( label="I try to block out unpleasant feelings about myself.", choices=Constants.AgreeChoices7 ) # Relational transparency transparency_1 = models.IntegerField( label="I often pretend to like something when I really do not.", choices=Constants.AgreeChoices7 ) transparency_2 = models.IntegerField( label="Even when I disagree with someone, I will often silently agree.", choices=Constants.AgreeChoices7 ) transparency_3 = models.IntegerField( label="I often behave in a way that does not reflect my true feelings or thoughts.", choices=Constants.AgreeChoices7 ) transparency_4 = models.IntegerField( label="I often pretend to be someone I am not.", choices=Constants.AgreeChoices7 ) # Familiarity with real-world problem familiarity_1 = models.IntegerField( label="Compared to other people in your age category, how familiar are you with modern technology?", choices=Constants.ComparisonChoices ) familiarity_2 = models.IntegerField( label="How familiar are you with the current way of life of elderly people?", choices=Constants.FamiliarityChoices ) familiarity_3 = models.IntegerField( label="In general, it is important that elderly people get more familiar with modern technology.", choices=Constants.TrueBelieveChoices5 ) familiarity_4 = models.IntegerField( label="Elderly people that are more familiar with modern technology will live independently for a longer period " "of time.", choices=Constants.TrueBelieveChoices5 ) familiarity_5 = models.IntegerField( label="Elderly people that are more familiar with modern technology will have better health.", choices=Constants.TrueBelieveChoices5 ) familiarity_6 = models.IntegerField( label="Elderly people that are more familiar with modern technology will feel less socially isolated.", choices=Constants.TrueBelieveChoices5 ) familiarity_7 = models.IntegerField( label="Before you participated in this experiment, how often have you thought about solutions to get elderly " "people more familiar with technology?", choices=Constants.FrequencyChoices5 ) class Solution(models.ExtraModel): player = djmodels.ForeignKey(to=Player, on_delete=djmodels.CASCADE, related_name='solutions') group = djmodels.ForeignKey(to=Group, on_delete=djmodels.CASCADE, related_name='solutions') text = models.StringField() with_feedback = models.BooleanField() click_time = models.StringField() submission_time = models.StringField() first_key_press = models.StringField() def custom_export(players): yield ['participant_code', 'round_number', 'id_in_group', 'solution_text', 'solution_id', 'click_time', 'submission_time', 'with_feedback', 'first_key_press', ] for solution in Solution.objects.all(): player = solution.player participant = player.participant yield [participant.code, player.round_number, player.id_in_group, solution.text, solution.id, solution.click_time, solution.submission_time, solution.with_feedback, solution.first_key_press]