from otree.api import * import random class C(BaseConstants): NAME_IN_URL = 'Sri_Lanka_2023_sup' PLAYERS_PER_GROUP = None NUM_ROUNDS = 10 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass def make_field_1(label): return models.IntegerField(widget=widgets.RadioSelect, label = label, choices = [ [7, "Everyday සෑම දිනම"], [6, "Several times a week සතියකට කිහිප වතාවක්"], [5, "Once a week සතියකට වරක්"], [4, "Several times a month මසකට කිහිප වතාවක්"], [3, "Once a month මසකට වරක්"], [2, "Once in several months මාස කිහිපයකට වරක්"], [1, "Once in half a year සෑම මාස හයකට වරක්"], [0, "Once a year වසරකට වරක්"], ] ) def make_field_2(label): return models.IntegerField(widget=widgets.RadioSelect, label = label, choices = [ [5, "Strongly Agree තරයේ එකඟයි"], [4, "Agree එකඟයි"], [3, "Neutral මධ්යස්ථ"], [2, "Disagree එකඟ නොවේ"], [1, "Strongly disagree දැඩි ලෙස එකඟ නොවේ"] ] ) class Player(BasePlayer): Name = models.StringField( label = "Name නම" ) Gender = models.StringField( choices=[ [0, "Male පිරිමි"], [1, "Female ගැහැණු"], [2, "Others අන් අය"], ], label = "Gender ස්ත්රී පුරුෂ භාවය" ) Age = models.IntegerField( label = "Age වයස" ) Academic_history = models.StringField( label = "Academic history (Highschool, TVET, Technical Collage etc.) අධ්‍යයන ඉතිහාසය (උසස් පාසල, TVET, තාක්ෂණික විද්‍යාල ආදිය)" ) Marital_status = models.IntegerField( choices=[ [0, "Single තනිකඩ"], [1, "Married විවාහක"], [2, "Prefer not to answer පිළිතුරු නොදීමට කැමති"], ], label = "Marital status විවාහක අවිවාහක බව" ) Children = models.IntegerField( choices=[ [0, "No child ළමයෙක් නැහැ"], [1, "Have a child/children දරුවෙකු/දරුවන් සිටී"], [2, "Prefer not to answer පිළිතුරු නොදීමට කැමති"], ], label = "Children දරුවන්" ) Institution = models.IntegerField( choices=[ [0, "National Irrigation Department ජාතික වාරිමාර්ග දෙපාර්තමේන්තුව"], [1, "Southern Provincial Irrigation Department දකුණු පළාත් වාරිමාර්ග දෙපාර්තමේන්තුව"], [2, "Western Provincial Irrigation Department බස්නාහිර පළාත් වාරිමාර්ග දෙපාර්තමේන්තුව"], ], label = "Institution ආයතනය" ) Area = models.StringField( label = "Area ප්රදේශය" ) Post = models.StringField( label = "Post තනතුර" ) Num_sub = models.IntegerField( label = "Number of subordinates යටත් නිලධාරීන් සංඛ්යාව" ) Name_sup = models.StringField( label = "Name of supervisor අධීක්ෂකගේ නම" ) Name_sub = models.StringField( label = "Name of subordinates යටත් නිලධාරීන්ගේ නම" ) Year = models.IntegerField( label = "Year of becoming a public servant රජයේ සේවකයෙකු වූ වසර" ) Distance = models.IntegerField() Freq_sup = make_field_1("Immediate supervisor වහාම සුපරීක්ෂක") Freq_sub = make_field_1("Subordinates යටත් නිලධාරීන්") Freq_col = make_field_1("Colleagues සගයන්") Freq_cit = make_field_1("Citizens පුරවැසියන්") Imp_sup = models.StringField( label = "Immediate supervisor වහාම සුපරීක්ෂක" ) Imp_sub = models.StringField( label = "Subordinates යටත් නිලධාරීන්" ) Imp_col = models.StringField( label = "Colleagues සගයන්" ) Imp_cit = models.StringField( label = "Citizens පුරවැසියන්" ) Job_sat = models.IntegerField( min = 1, max = 7, label = "" ) PSM_1 = make_field_2("Meaningful public service is very important to me.
අර්ථවත් රාජ්‍ය සේවය මට ඉතා වැදගත්.") PSM_2 = make_field_2("I am often reminded by daily events about how dependent we are on one another.
අපි එකිනෙකා මත රඳා සිටින ආකාරය ගැන දිනපතා සිදුවීම් මට බොහෝ විට මතක් කර දෙයි.") PSM_3 = make_field_2("Making a difference in society means more to me than personal achievements.
සමාජයේ වෙනසක් ඇති කිරීම පුද්ගලික ජයග්‍රහණවලට වඩා මට වැදගත් ය.") PSM_4 = make_field_2("I am prepared to make enormous sacrifices for the good of society.
සමාජයේ යහපත වෙනුවෙන් දැවැන්ත කැපකිරීම් කිරීමට මම සූදානම්.") PSM_5 = make_field_2("I am not afraid to go to bat for the rights of others, even if it means I will be ridiculed.
අනුන්ගේ අයිතීන් වෙනුවෙන් පිතිකරණයට යන්න මම බය නැහැ.") eng_A = models.IntegerField() issue_A = models.IntegerField() status_A = models.IntegerField() past_A = models.IntegerField() delay_A = models.IntegerField() budget_A = models.IntegerField() operator_A = models.IntegerField() eng_B = models.IntegerField() issue_B = models.IntegerField() status_B = models.IntegerField() past_B = models.IntegerField() delay_B = models.IntegerField() budget_B = models.IntegerField() operator_B = models.IntegerField() Ans = models.IntegerField( choices=[ [0, "Issue A ගැටලුව A"], [1, "Issue B ගැටලුව B"], ], label="Which issue would you prioritize?
ඔබ ප්‍රමුඛත්වය දෙන්නේ කුමන ගැටලුවටද?" ) Rate_A = models.IntegerField( min = 0, max = 10, label = "Issue A ගැටලුව A" ) Rate_B = models.IntegerField( min = 0, max = 10, label = "Issue B ගැටලුව B" ) Adv = models.IntegerField( choices=[ [1, "Yes ඔව්"], [0, "No නැත"], ], label="If you were going to accidentally prioritize the other issue you didn't pick due to lack of information, would you expect your subordinate to advise you to change the priority? තොරතුරු නොමැතිකම නිසා ඔබ තෝරා නොගත් අනෙක් කරුණට අහම්බෙන් ප්‍රමුඛත්වය දීමට ඔබ යන්නේ නම්, ප්‍රමුඛතාවය වෙනස් කිරීමට ඔබේ යටත් නිලධාරියා ඔබට උපදෙස් දෙනු ඇතැයි ඔබ අපේක්ෂා කරනවාද?" ) def creating_session(subsession): for player in subsession.get_players(): player.eng_A = random.randint(0,1) player.issue_A = random.randint(1,5) player.past_A = random.randint(1,3) player.delay_A = random.randint(1,3) player.budget_A = random.randint(1,3) player.operator_A = random.randint(1,2) player.eng_B = random.randint(0,1) player.issue_B = random.randint(1,5) player.past_B = random.randint(1,3) player.delay_B = random.randint(1,3) player.budget_B = random.randint(1,3) player.operator_B = random.randint(1,2) # PAGES class Registration(Page): @staticmethod def is_displayed(player): return player.round_number == 1 form_model = 'player' form_fields = ['Name', 'Gender', 'Age', 'Academic_history', 'Marital_status', 'Children', 'Institution', 'Area', 'Post', 'Num_sub', 'Name_sup', 'Name_sub', 'Year', 'Distance'] class Basic_info(Page): @staticmethod def is_displayed(player): return player.round_number == 1 form_model = 'player' form_fields = ['Freq_sup', 'Freq_sub', 'Freq_col', 'Freq_cit', 'Imp_sup', 'Imp_sub', 'Imp_col', 'Imp_cit', 'Job_sat', 'PSM_1', 'PSM_2', 'PSM_3', 'PSM_4', 'PSM_5'] class Question(Page): form_model = 'player' form_fields = ['Ans', 'Rate_A', 'Rate_B', 'Adv'] class Checkout(Page): @staticmethod def is_displayed(player): return player.round_number == 10 page_sequence = [Registration, Basic_info, Question, Checkout]