from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) from math import floor author = 'Wang Song' doc = """ Survey and Payment Info """ class Constants(BaseConstants): name_in_url = 'survey_emergent' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): def set_payoff(self): self.payoff = 0 total_payoff = self.participant.vars['game1_payoff'] + self.participant.vars['game2_payoff'] + self.participant.vars['game3_payoff'] if self.participant.payoff != total_payoff: print("ERROR: participant.payoff=", self.participant.payoff, "; total_payoff=", total_payoff) if total_payoff - floor(total_payoff) >= 0.5: self.participant.payoff = floor(total_payoff) + 1 else: self.participant.payoff = floor(total_payoff) q_gender = models.IntegerField( blank=True, choices=[ [1, 'Male'], [2, 'Female'], ], widget=widgets.RadioSelect, label='What is your gender? ' ) q_age = models.IntegerField( blank=True, label='What is your age? ' ) q_nationality = models.StringField( blank=True, label='What is your nationality? ' ) q_year_of_study = models.IntegerField( blank=True, choices=[ [1, 'Year 1'], [2, 'Year 2'], [3, 'Year 3'], [4, 'Year 4'], [5, 'Masters'], [6, 'Ph.D'], [7, 'Others'], ], widget=widgets.RadioSelect, label='Which year are you in? ' ) q_major = models.StringField( blank=True, label='What is your major? ' ) q_activity1 = models.IntegerField( blank=True, choices=[ [1, 'Active member'], [2, 'Inactive member'], [3, 'Not a member'] ], widget=widgets.RadioSelect, label='a) Humanitarian, charity, social work activity/organization: ' ) q_activity2 = models.IntegerField( blank=True, choices=[ [1, 'Active member'], [2, 'Inactive member'], [3, 'Not a member'] ], widget=widgets.RadioSelect, label='Religious activity/organization: ' ) q_activity3 = models.IntegerField( blank=True, choices=[ [1, 'Active member'], [2, 'Inactive member'], [3, 'Not a member'] ], widget=widgets.RadioSelect, label='Environment, nature, animal protection activity/organization: ' ) q_religion = models.StringField( blank=True, label='Could you indicate your religion?' ) q_religion_importance = models.IntegerField( blank=True, choices=[ 0, 1, 2, 3, 4, 5, 6, 7, ], widget=widgets.RadioSelectHorizontal, label='How important is your religion to you? (of a scale from 1 to 7, indicate 0 if you do not have any religion.)' ) q_lost_wallet = models.IntegerField( blank=True, choices=[ 0, 1, 2, 3, 4, 5, 6, 7, ], widget=widgets.RadioSelectHorizontal, label='If you lost your wallet on campus, how likely do you think you would have it returned? ' ) q_HOTA = models.IntegerField( blank=True, choices=[ [1, 'Yes'], [0, 'No'], ], widget=widgets.RadioSelect, label='Are you aware of the Human Organ Transplant Act (HOTA) in Singapore? ' ) q_understand_exp = models.IntegerField( blank=True, choices=[ 1, 2, 3, 4, 5, ], widget=widgets.RadioSelectHorizontal, label='On a scale of 1 to 5, rate whether you understand this experiment or not: ' ) q_understand_ins = models.IntegerField( blank=True, choices=[ 1, 2, 3, 4, 5, ], widget=widgets.RadioSelectHorizontal, label='On a scale of 1 to 5, how well do you understand the instructions: ' ) q_donation_reason = models.LongStringField( blank=True, label='If you have ever donated your B units, describe briefly your reason. If you never donated, explain briefly why.' ) def manual_payoff(self): my_label = self.participant.label if my_label == "a71108": self.participant.vars['game1_payoff'] = c(3.15) self.participant.vars['picked_r1'] = 10 self.participant.vars['picked_r2'] = 13 self.participant.vars['picked_p1'] = c(2.75) self.participant.vars['picked_p2'] = c(1.75) self.participant.vars['sec_picked_r1'] = 13 self.participant.vars['sec_picked_r2'] = 16 self.participant.vars['sec_picked_p1'] = c(3) self.participant.vars['sec_picked_p2'] = c(1.75) self.participant.vars['game2_payoff'] = c(9.25) if my_label == "a80628": self.participant.vars['game1_payoff'] = c(3) self.participant.vars['picked_r1'] = 7 self.participant.vars['picked_r2'] = 16 self.participant.vars['picked_p1'] = c(2.5) self.participant.vars['picked_p2'] = c(4.75) self.participant.vars['sec_picked_r1'] = 1 self.participant.vars['sec_picked_r2'] = 10 self.participant.vars['sec_picked_p1'] = c(2.5) self.participant.vars['sec_picked_p2'] = c(2.75) self.participant.vars['game2_payoff'] = c(12.5) if my_label == "a60248": self.participant.vars['game1_payoff'] = c(2.5) self.participant.vars['picked_r1'] = 10 self.participant.vars['picked_r2'] = 13 self.participant.vars['picked_p1'] = c(5) self.participant.vars['picked_p2'] = c(2) self.participant.vars['sec_picked_r1'] = 7 self.participant.vars['sec_picked_r2'] = 13 self.participant.vars['sec_picked_p1'] = c(3) self.participant.vars['sec_picked_p2'] = c(3) self.participant.vars['game2_payoff'] = c(13) if my_label == "a51179": self.participant.vars['game1_payoff'] = c(1.5) self.participant.vars['picked_r1'] = 4 self.participant.vars['picked_r2'] = 16 self.participant.vars['picked_p1'] = c(3) self.participant.vars['picked_p2'] = c(3) self.participant.vars['sec_picked_r1'] = 7 self.participant.vars['sec_picked_r2'] = 16 self.participant.vars['sec_picked_p1'] = c(3) self.participant.vars['sec_picked_p2'] = c(2.75) self.participant.vars['game2_payoff'] = c(11.75) if my_label == "a20088": self.participant.vars['game1_payoff'] = c(3.5) self.participant.vars['picked_r1'] = 7 self.participant.vars['picked_r2'] = 13 self.participant.vars['picked_p1'] = c(2.75) self.participant.vars['picked_p2'] = c(2.75) self.participant.vars['sec_picked_r1'] = 13 self.participant.vars['sec_picked_r2'] = 16 self.participant.vars['sec_picked_p1'] = c(4.5) self.participant.vars['sec_picked_p2'] = c(3.75) self.participant.vars['game2_payoff'] = c(13.75) if my_label == "a10891": self.participant.vars['game1_payoff'] = c(1.5) self.participant.vars['picked_r1'] = 1 self.participant.vars['picked_r2'] = 16 self.participant.vars['picked_p1'] = c(4.75) self.participant.vars['picked_p2'] = c(5) self.participant.vars['sec_picked_r1'] = 7 self.participant.vars['sec_picked_r2'] = 13 self.participant.vars['sec_picked_p1'] = c(4.75) self.participant.vars['sec_picked_p2'] = c(2.5) self.participant.vars['game2_payoff'] = c(17.0) if my_label == "a62034": self.participant.vars['game1_payoff'] = c(2.5) self.participant.vars['picked_r1'] = 7 self.participant.vars['picked_r2'] = 10 self.participant.vars['picked_p1'] = c(2.75) self.participant.vars['picked_p2'] = c(2.75) self.participant.vars['sec_picked_r1'] = 7 self.participant.vars['sec_picked_r2'] = 16 self.participant.vars['sec_picked_p1'] = c(2.75) self.participant.vars['sec_picked_p2'] = c(3) self.participant.vars['game2_payoff'] = c(11.25) if my_label == "a20934": self.participant.vars['game1_payoff'] = c(3.5) self.participant.vars['picked_r1'] = 10 self.participant.vars['picked_r2'] = 13 self.participant.vars['picked_p1'] = c(2) self.participant.vars['picked_p2'] = c(3) self.participant.vars['sec_picked_r1'] = 1 self.participant.vars['sec_picked_r2'] = 13 self.participant.vars['sec_picked_p1'] = c(3) self.participant.vars['sec_picked_p2'] = c(4.5) self.participant.vars['game2_payoff'] = c(12.5) if my_label == "a32049": self.participant.vars['game1_payoff'] = c(1.75) self.participant.vars['picked_r1'] = 14 self.participant.vars['picked_r2'] = 17 self.participant.vars['picked_p1'] = c(3) self.participant.vars['picked_p2'] = c(2) self.participant.vars['sec_picked_r1'] = 2 self.participant.vars['sec_picked_r2'] = 8 self.participant.vars['sec_picked_p1'] = c(4.5) self.participant.vars['sec_picked_p2'] = c(1.75) self.participant.vars['game2_payoff'] = c(11.25) if my_label == "a11657": self.participant.vars['game1_payoff'] = c(1.75) self.participant.vars['picked_r1'] = 5 self.participant.vars['picked_r2'] = 8 self.participant.vars['picked_p1'] = c(3) self.participant.vars['picked_p2'] = c(3) self.participant.vars['sec_picked_r1'] = 5 self.participant.vars['sec_picked_r2'] = 11 self.participant.vars['sec_picked_p1'] = c(2.75) self.participant.vars['sec_picked_p2'] = c(5) self.participant.vars['game2_payoff'] = c(13.75) if my_label == "a41910": self.participant.vars['game1_payoff'] = c(4) self.participant.vars['picked_r1'] = 14 self.participant.vars['picked_r2'] = 17 self.participant.vars['picked_p1'] = c(2.5) self.participant.vars['picked_p2'] = c(2.75) self.participant.vars['sec_picked_r1'] = 2 self.participant.vars['sec_picked_r2'] = 5 self.participant.vars['sec_picked_p1'] = c(3.75) self.participant.vars['sec_picked_p2'] = c(2.75) self.participant.vars['game2_payoff'] = c(11.75) if my_label == "a91964": self.participant.vars['game1_payoff'] = c(1.25) self.participant.vars['picked_r1'] = 2 self.participant.vars['picked_r2'] = 8 self.participant.vars['picked_p1'] = c(4.75) self.participant.vars['picked_p2'] = c(4.5) self.participant.vars['sec_picked_r1'] = 5 self.participant.vars['sec_picked_r2'] = 14 self.participant.vars['sec_picked_p1'] = c(3) self.participant.vars['sec_picked_p2'] = c(3) self.participant.vars['game2_payoff'] = c(15.25) if my_label == "a82720": self.participant.vars['game1_payoff'] = c(3.65) self.participant.vars['picked_r1'] = 2 self.participant.vars['picked_r2'] = 5 self.participant.vars['picked_p1'] = c(1) self.participant.vars['picked_p2'] = c(2) self.participant.vars['sec_picked_r1'] = 5 self.participant.vars['sec_picked_r2'] = 8 self.participant.vars['sec_picked_p1'] = c(3) self.participant.vars['sec_picked_p2'] = c(2) self.participant.vars['game2_payoff'] = c(8) if my_label == "a20478": self.participant.vars['game1_payoff'] = c(1.35) self.participant.vars['picked_r1'] = 2 self.participant.vars['picked_r2'] = 11 self.participant.vars['picked_p1'] = c(2.75) self.participant.vars['picked_p2'] = c(2.5) self.participant.vars['sec_picked_r1'] = 11 self.participant.vars['sec_picked_r2'] = 17 self.participant.vars['sec_picked_p1'] = c(1.75) self.participant.vars['sec_picked_p2'] = c(4.75) self.participant.vars['game2_payoff'] = c(11.75) if my_label == "a70251": self.participant.vars['game1_payoff'] = c(3) self.participant.vars['picked_r1'] = 5 self.participant.vars['picked_r2'] = 14 self.participant.vars['picked_p1'] = c(2.75) self.participant.vars['picked_p2'] = c(4) self.participant.vars['sec_picked_r1'] = 2 self.participant.vars['sec_picked_r2'] = 14 self.participant.vars['sec_picked_p1'] = c(2) self.participant.vars['sec_picked_p2'] = c(3) self.participant.vars['game2_payoff'] = c(11.75) if my_label == "a60618": self.participant.vars['game1_payoff'] = c(3.25) self.participant.vars['picked_r1'] = 2 self.participant.vars['picked_r2'] = 14 self.participant.vars['picked_p1'] = c(2.75) self.participant.vars['picked_p2'] = c(3.75) self.participant.vars['sec_picked_r1'] = 5 self.participant.vars['sec_picked_r2'] = 17 self.participant.vars['sec_picked_p1'] = c(1) self.participant.vars['sec_picked_p2'] = c(3) self.participant.vars['game2_payoff'] = c(10.5) if my_label == "a81037": self.participant.vars['game1_payoff'] = c(1.5) self.participant.vars['picked_r1'] = 3 self.participant.vars['picked_r2'] = 15 self.participant.vars['picked_p1'] = c(2) self.participant.vars['picked_p2'] = c(3) self.participant.vars['sec_picked_r1'] = 6 self.participant.vars['sec_picked_r2'] = 15 self.participant.vars['sec_picked_p1'] = c(3) self.participant.vars['sec_picked_p2'] = c(2) self.participant.vars['game2_payoff'] = c(10) if my_label == "a31989": self.participant.vars['game1_payoff'] = c(3.5) self.participant.vars['picked_r1'] = 6 self.participant.vars['picked_r2'] = 12 self.participant.vars['picked_p1'] = c(2.5) self.participant.vars['picked_p2'] = c(2.75) self.participant.vars['sec_picked_r1'] = 9 self.participant.vars['sec_picked_r2'] = 12 self.participant.vars['sec_picked_p1'] = c(3) self.participant.vars['sec_picked_p2'] = c(2.5) self.participant.vars['game2_payoff'] = c(10.75) if my_label == "a51422": self.participant.vars['game1_payoff'] = c(2.5) self.participant.vars['picked_r1'] = 12 self.participant.vars['picked_r2'] = 18 self.participant.vars['picked_p1'] = c(2.75) self.participant.vars['picked_p2'] = c(3) self.participant.vars['sec_picked_r1'] = 6 self.participant.vars['sec_picked_r2'] = 18 self.participant.vars['sec_picked_p1'] = c(3) self.participant.vars['sec_picked_p2'] = c(4) self.participant.vars['game2_payoff'] = c(12.75) if my_label == "a52807": self.participant.vars['game1_payoff'] = c(1.1) self.participant.vars['picked_r1'] = 12 self.participant.vars['picked_r2'] = 15 self.participant.vars['picked_p1'] = c(6) self.participant.vars['picked_p2'] = c(3) self.participant.vars['sec_picked_r1'] = 9 self.participant.vars['sec_picked_r2'] = 12 self.participant.vars['sec_picked_p1'] = c(4) self.participant.vars['sec_picked_p2'] = c(2) self.participant.vars['game2_payoff'] = c(15) if my_label == "a60368": self.participant.vars['game1_payoff'] = c(2.9) self.participant.vars['picked_r1'] = 15 self.participant.vars['picked_r2'] = 18 self.participant.vars['picked_p1'] = c(3) self.participant.vars['picked_p2'] = c(4.75) self.participant.vars['sec_picked_r1'] = 3 self.participant.vars['sec_picked_r2'] = 15 self.participant.vars['sec_picked_p1'] = c(2.75) self.participant.vars['sec_picked_p2'] = c(3) self.participant.vars['game2_payoff'] = c(13.5) if my_label == "a61441": self.participant.vars['game1_payoff'] = c(2.5) self.participant.vars['picked_r1'] = 3 self.participant.vars['picked_r2'] = 6 self.participant.vars['picked_p1'] = c(2.75) self.participant.vars['picked_p2'] = c(2.5) self.participant.vars['sec_picked_r1'] = 3 self.participant.vars['sec_picked_r2'] = 12 self.participant.vars['sec_picked_p1'] = c(2.75) self.participant.vars['sec_picked_p2'] = c(5) self.participant.vars['game2_payoff'] = c(13.0) if my_label == "a71493": self.participant.vars['game1_payoff'] = c(3.5) self.participant.vars['picked_r1'] = 9 self.participant.vars['picked_r2'] = 12 self.participant.vars['picked_p1'] = c(4.75) self.participant.vars['picked_p2'] = c(2.75) self.participant.vars['sec_picked_r1'] = 6 self.participant.vars['sec_picked_r2'] = 15 self.participant.vars['sec_picked_p1'] = c(2.75) self.participant.vars['sec_picked_p2'] = c(3) self.participant.vars['game2_payoff'] = c(13.25) if my_label == "a92015": self.participant.vars['game1_payoff'] = c(1.35) self.participant.vars['picked_r1'] = 6 self.participant.vars['picked_r2'] = 9 self.participant.vars['picked_p1'] = c(3) self.participant.vars['picked_p2'] = c(3) self.participant.vars['sec_picked_r1'] = 15 self.participant.vars['sec_picked_r2'] = 18 self.participant.vars['sec_picked_p1'] = c(3) self.participant.vars['sec_picked_p2'] = c(2) self.participant.vars['game2_payoff'] = c(11)