from otree.api import * import random import math import itertools class C(BaseConstants): NAME_IN_URL = 'effort_choice' PLAYERS_PER_GROUP = None NUM_ROUNDS = 1 class Group(BaseGroup): pass class Subsession(BaseSubsession): def creating_session(subsession): if 'condition' in subsession.session.config: for g in subsession.session.get_groups(): for p in g.get_players(): p.condition = subsession.session.config['condition'] class OnlineWorkers(ExtraModel): worker_id = models.CharField(max_length=50) class Player(BasePlayer): worker_id = models.CharField(initial='e') mturk_dupe = models.IntegerField(initial=0) condition = models.IntegerField() informed_consent = models.CharField(initial=None, choices=[('Yes', 'Yes'), ('No', 'No')], verbose_name='', widget=widgets.RadioSelect()) kc1 = models.CharField(initial=None, choices=[('a', 'a. not associated with a monetary cost to me.'), ('b', 'b. associated with a lower monetary cost to me.'), ('c', 'c. associated with a higher monetary cost to me.')], verbose_name='', widget=widgets.RadioSelect()) kc2 = models.CharField(initial=None, choices=[('a', 'a. associated with a lower probability of me achieving a higher outcome level.'), ('b', 'b. associated with a higher probability of me achieving a higher outcome level.'), ('c', 'c. not associated with the probability of me achieving a higher outcome level.')], verbose_name='', widget=widgets.RadioSelect()) kc3 = models.CharField(initial=None, choices=[('a', 'a. no base salary.'), ('b', 'b. a base salary of 1,250 points.'), ('c', 'c. a base salary of 2,250 points.'), ('d', 'd. a base salary of 3,250 points.')], verbose_name='', widget=widgets.RadioSelect()) kc4_bonus = models.CharField(initial=None, choices=[('a', 'a. My pay will be higher because I will receive a higher bonus.'), ('b', 'b. My pay will not be affected.'), ('c', 'c. My pay will be lower because I will receive a lower bonus.')], verbose_name='', widget=widgets.RadioSelect()) kc4_penalty = models.CharField(initial=None, choices=[('a', 'a. My pay will be higher because I will incur a lower penalty.'), ('b', 'b. My pay will not be affected.'), ('c', 'c. My pay will be lower because I will incur a higher penalty.')], verbose_name='', widget=widgets.RadioSelect()) kc4_both = models.CharField(initial=None, choices=[('a', 'a. My pay will be higher because I will receive a bonus and avoid a penalty.'), ('b', 'b. My pay will not be affected.'), ('c', 'c. My pay will be lower because I will not receive a bonus and will incur a penalty.')], verbose_name='', widget=widgets.RadioSelect()) kc5 = models.CharField(initial=None, choices=[('a', 'a. 5.'), ('b', 'b. 7.'), ('c', 'c. 10.'), ('d', 'd. 15.')], verbose_name='', widget=widgets.RadioSelect()) kc1_correct = models.IntegerField(initial=9) kc2_correct = models.IntegerField(initial=9) kc3_correct = models.IntegerField(initial=9) kc4_correct = models.IntegerField(initial=9) kc5_correct = models.IntegerField(initial=9) kc_passed = models.IntegerField(initial=1) kc1_attempts = models.IntegerField(initial=0) kc2_attempts = models.IntegerField(initial=0) kc3_attempts = models.IntegerField(initial=0) kc4_attempts = models.IntegerField(initial=0) kc5_attempts = models.IntegerField(initial=0) effort_1 = models.IntegerField(initial=None, choices=[(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5'), (6, '6'), (7, '7'), (8, '8'), (9, '9'), (10, '10'), (11, '11'), (12, '12'), (13, '13')], verbose_name='') cost_of_effort_1 = models.IntegerField() outcome_1 = models.CharField() bonus_1 = models.IntegerField(initial=0) penalty_1 = models.IntegerField(initial=0) net_pay_1 = models.IntegerField(initial=0) effort_2 = models.IntegerField(initial=None, choices=[(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5'), (6, '6'), (7, '7'), (8, '8'), (9, '9'), (10, '10'), (11, '11'), (12, '12'), (13, '13')], verbose_name='') cost_of_effort_2 = models.IntegerField() outcome_2 = models.CharField() bonus_2 = models.IntegerField(initial=0) penalty_2 = models.IntegerField(initial=0) net_pay_2 = models.IntegerField(initial=0) effort_3 = models.IntegerField(initial=None, choices=[(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5'), (6, '6'), (7, '7'), (8, '8'), (9, '9'), (10, '10'), (11, '11'), (12, '12'), (13, '13')], verbose_name='') cost_of_effort_3 = models.IntegerField() outcome_3 = models.CharField() bonus_3 = models.IntegerField(initial=0) penalty_3 = models.IntegerField(initial=0) net_pay_3 = models.IntegerField(initial=0) effort_4 = models.IntegerField(initial=None, choices=[(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5'), (6, '6'), (7, '7'), (8, '8'), (9, '9'), (10, '10'), (11, '11'), (12, '12'), (13, '13')], verbose_name='') cost_of_effort_4 = models.IntegerField() outcome_4 = models.CharField() bonus_4 = models.IntegerField(initial=0) penalty_4 = models.IntegerField(initial=0) net_pay_4 = models.IntegerField(initial=0) effort_5 = models.IntegerField(initial=None, choices=[(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5'), (6, '6'), (7, '7'), (8, '8'), (9, '9'), (10, '10'), (11, '11'), (12, '12'), (13, '13')], verbose_name='') cost_of_effort_5 = models.IntegerField() outcome_5 = models.CharField() bonus_5 = models.IntegerField(initial=0) penalty_5 = models.IntegerField(initial=0) net_pay_5 = models.IntegerField(initial=0) effort_6 = models.IntegerField(initial=None, choices=[(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5'), (6, '6'), (7, '7'), (8, '8'), (9, '9'), (10, '10'), (11, '11'), (12, '12'), (13, '13')], verbose_name='') cost_of_effort_6 = models.IntegerField() outcome_6 = models.CharField() bonus_6 = models.IntegerField(initial=0) penalty_6 = models.IntegerField(initial=0) net_pay_6 = models.IntegerField(initial=0) effort_7 = models.IntegerField(initial=None, choices=[(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5'), (6, '6'), (7, '7'), (8, '8'), (9, '9'), (10, '10'), (11, '11'), (12, '12'), (13, '13')], verbose_name='') cost_of_effort_7 = models.IntegerField() outcome_7 = models.CharField() bonus_7 = models.IntegerField(initial=0) penalty_7 = models.IntegerField(initial=0) net_pay_7 = models.IntegerField(initial=0) effort_8 = models.IntegerField(initial=None, choices=[(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5'), (6, '6'), (7, '7'), (8, '8'), (9, '9'), (10, '10'), (11, '11'), (12, '12'), (13, '13')], verbose_name='') cost_of_effort_8 = models.IntegerField() outcome_8 = models.CharField() bonus_8 = models.IntegerField(initial=0) penalty_8 = models.IntegerField(initial=0) net_pay_8 = models.IntegerField(initial=0) effort_9 = models.IntegerField(initial=None, choices=[(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5'), (6, '6'), (7, '7'), (8, '8'), (9, '9'), (10, '10'), (11, '11'), (12, '12'), (13, '13')], verbose_name='') cost_of_effort_9 = models.IntegerField() outcome_9 = models.CharField() bonus_9 = models.IntegerField(initial=0) penalty_9 = models.IntegerField(initial=0) net_pay_9 = models.IntegerField(initial=0) effort_10 = models.IntegerField(initial=None, choices=[(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5'), (6, '6'), (7, '7'), (8, '8'), (9, '9'), (10, '10'), (11, '11'), (12, '12'), (13, '13')], verbose_name='') cost_of_effort_10 = models.IntegerField() outcome_10 = models.CharField() bonus_10 = models.IntegerField(initial=0) penalty_10 = models.IntegerField(initial=0) net_pay_10 = models.IntegerField(initial=0) decision_time_1 = models.CharField() decision_time_2 = models.CharField() decision_time_3 = models.CharField() decision_time_4 = models.CharField() decision_time_5 = models.CharField() decision_time_6 = models.CharField() decision_time_7 = models.CharField() decision_time_8 = models.CharField() decision_time_9 = models.CharField() decision_time_10 = models.CharField() peq1_time = models.CharField() peq2_time = models.CharField() peq3_time = models.CharField() peq4_time = models.CharField() pay_period = models.IntegerField() pay_period_points = models.IntegerField() pay_period_comp = models.CharField() total_points = models.IntegerField() total_comp = models.FloatField() #PEQ contract_fairness = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) outcome_disappointment = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) salary_ownership = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) outcome_happiness = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) narcissism_1 = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) narcissism_2 = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) narcissism_3 = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) narcissism_4 = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) narcissism_5 = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) narcissism_6 = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) narcissism_7 = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) narcissism_8 = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) narcissism_9 = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) risk_attitude = models.CharField(initial=None, choices=[('1', "1 = I'm not at all willing to take risks."), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', "6 = I'm somewhat willing to take risks."), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10'), ('11', "11 = I'm very willing to take risks.")], verbose_name='') #BIS/BAS bis_1 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_2 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_3 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_4 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_5 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_6 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_7 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_8 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_9 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_10 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_11 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_12 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_13 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_14 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_15 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_16 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_17 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_18 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_19 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_20 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_21 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_22 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_23 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) bis_24 = models.IntegerField(initial=None, choices=[(1, '1 = Very false for me'), (2, '2 = Somewhat false for me'), (3, '3 = Somewhat true for me'), (4, '4 = Very true for me')], verbose_name='', widget=widgets.RadioSelectHorizontal()) entitlement_1 = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) entitlement_2 = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) entitlement_3 = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) entitlement_4 = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) entitlement_5 = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) entitlement_6 = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) entitlement_7 = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) entitlement_8 = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) entitlement_9 = models.IntegerField(initial=None, choices=[(1, '1 = Strongly disagree'), (2, '2 = Disagree'), (3, '3 = Somewhat disagree'), (4, '4 = Neither agree nor disagree'), (5, '5 = Somewhat agree'), (6, '6 = Agree'), (7, '7 = Strongly agree')], verbose_name='', widget=widgets.RadioSelectHorizontal()) age = models.IntegerField(verbose_name='', min=18, max=100) gender = models.IntegerField(initial=None, choices=[(1, 'a. Male'), (2, 'b. Female'), (3, 'c. Other'), (4, 'd. Prefer not to say')], verbose_name='', widget=widgets.RadioSelect()) education = models.IntegerField(initial=None, choices=[(1, 'a. Less than high school'), (2, 'b. High school or equivalent'), (3, "c. Associate's Degree"), (4, "d. Bachelor's Degree"), (5, "e. Master's Degree"), (6, "f. Doctorate Degree") ], verbose_name='', widget=widgets.RadioSelect()) work_experience = models.IntegerField(verbose_name='', min=0, max=100) country_origin = models.CharField(verbose_name='') def creating_session(subsession: Subsession): session = subsession.session for player in subsession.get_players(): player.condition = session.config['condition'] player.participant.label = 'e' class IC(Page): form_model = 'player' form_fields = ['informed_consent'] def before_next_page(player, timeout_happened): # See if that worker ID already appears in players, in which case they at least started the experiment if player.participant.label != 'e': worker_match = [w for w in OnlineWorkers.filter() if (w.worker_id == player.participant.label)] if not worker_match: OnlineWorkers.create(worker_id=player.participant.label) player.worker_id = player.participant.label else: player.mturk_dupe = 1 class IC_Decline(Page): @staticmethod def is_displayed(player): return player.informed_consent == "No" class DuplicateWorker(Page): @staticmethod def is_displayed(player): return player.mturk_dupe == 1 class GenInstructions(Page): pass class Compensation(Page): pass class KnowledgeCheck(Page): form_model = 'player' @staticmethod def get_form_fields(player): if player.condition == 1: return ['kc1', 'kc2', 'kc3', 'kc4_bonus', 'kc5'] elif player.condition == 2: return ['kc1', 'kc2', 'kc3', 'kc4_penalty', 'kc5'] elif player.condition == 3: return ['kc1', 'kc2', 'kc3', 'kc4_both', 'kc5'] def before_next_page(player, timeout_happened): # Might as well pick a pay period on the way in pay_choice = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) player.pay_period = random.choice(pay_choice) if player.kc1 == "c": player.kc1_correct = 1 else: player.kc1_correct = 0 player.kc1_attempts += 1 player.kc_passed = 0 if player.kc2 == "b": player.kc2_correct = 1 else: player.kc2_correct = 0 player.kc2_attempts += 1 player.kc_passed = 0 if player.condition == 1: if player.kc3 == "b": player.kc3_correct = 1 else: player.kc3_correct = 0 player.kc3_attempts += 1 player.kc_passed = 0 if player.kc4_bonus == "a": player.kc4_correct = 1 else: player.kc4_correct = 0 player.kc4_attempts += 1 player.kc_passed = 0 elif player.condition == 2: if player.kc3 == "d": player.kc3_correct = 1 else: player.kc3_correct = 0 player.kc3_attempts += 1 player.kc_passed = 0 if player.kc4_penalty == "a": player.kc4_correct = 1 else: player.kc4_correct = 0 player.kc4_attempts += 1 player.kc_passed = 0 elif player.condition == 3: if player.kc3 == "c": player.kc3_correct = 1 else: player.kc3_correct = 0 player.kc3_attempts += 1 player.kc_passed = 0 if player.kc4_both == "a": player.kc4_correct = 1 else: player.kc4_correct = 0 player.kc4_attempts += 1 player.kc_passed = 0 if player.kc5 == "c": player.kc5_correct = 1 else: player.kc5_correct = 0 player.kc5_attempts += 1 player.kc_passed = 0 class KnowledgeCheckResults(Page): form_model = 'player' @staticmethod def is_displayed(player): if player.kc_passed == 0: return True else: return False def get_form_fields(player): if player.condition == 1: return ['kc1', 'kc2', 'kc3', 'kc4_bonus', 'kc5'] elif player.condition == 2: return ['kc1', 'kc2', 'kc3', 'kc4_penalty', 'kc5'] elif player.condition == 3: return ['kc1', 'kc2', 'kc3', 'kc4_both', 'kc5'] def before_next_page(player, timeout_happened): player.kc1 = "" player.kc2 = "" player.kc3 = "" player.kc4_bonus = "" player.kc4_penalty = "" player.kc4_both = "" player.kc5 = "" class KnowledgeCheckSub(Page): form_model = 'player' @staticmethod def is_displayed(player): if player.kc_passed == 0: return True else: return False def get_form_fields(player): if player.condition == 1: return ['kc1', 'kc2', 'kc3', 'kc4_bonus', 'kc5'] elif player.condition == 2: return ['kc1', 'kc2', 'kc3', 'kc4_penalty', 'kc5'] elif player.condition == 3: return ['kc1', 'kc2', 'kc3', 'kc4_both', 'kc5'] def before_next_page(player, timeout_happened): if player.kc1 == "c": player.kc1_correct = 1 else: player.kc1_correct = 0 player.kc1_attempts += 1 player.kc_passed = 0 if player.kc2 == "b": player.kc2_correct = 1 else: player.kc2_correct = 0 player.kc2_attempts += 1 player.kc_passed = 0 if player.condition == 1: if player.kc3 == "b": player.kc3_correct = 1 else: player.kc3_correct = 0 player.kc3_attempts += 1 player.kc_passed = 0 if player.kc4_bonus == "a": player.kc4_correct = 1 else: player.kc4_correct = 0 player.kc4_attempts += 1 player.kc_passed = 0 elif player.condition == 2: if player.kc3 == "d": player.kc3_correct = 1 else: player.kc3_correct = 0 player.kc3_attempts += 1 player.kc_passed = 0 if player.kc4_penalty == "a": player.kc4_correct = 1 else: player.kc4_correct = 0 player.kc4_attempts += 1 player.kc_passed = 0 elif player.condition == 3: if player.kc3 == "c": player.kc3_correct = 1 else: player.kc3_correct = 0 player.kc3_attempts += 1 player.kc_passed = 0 if player.kc4_both == "a": player.kc4_correct = 1 else: player.kc4_correct = 0 player.kc4_attempts += 1 player.kc_passed = 0 if player.kc5 == "c": player.kc5_correct = 1 else: player.kc5_correct = 0 player.kc5_attempts += 1 player.kc_passed = 0 if player.kc1_correct == 1 and player.kc2_correct == 1 and player.kc3_correct == 1 and player.kc4_correct == 1\ and player.kc5_correct == 1: player.kc_passed = 1 class CompensationRep(Page): @staticmethod def is_displayed(player): if player.kc_passed == 0: return True else: return False class Period1(Page): form_model = 'player' form_fields = ['effort_1', 'decision_time_1'] def before_next_page(player, timeout_happened): random_num = random.randint(1,100) if player.effort_1 == 1: player.cost_of_effort_1 = 50 if random_num < 6: player.outcome_1 = "High" elif random_num < 36: player.outcome_1 = "Medium" else: player.outcome_1 = "Low" elif player.effort_1 == 2: player.cost_of_effort_1 = 150 if random_num < 11: player.outcome_1 = "High" elif random_num < 41: player.outcome_1 = "Medium" else: player.outcome_1 = "Low" elif player.effort_1 == 3: player.cost_of_effort_1 = 250 if random_num < 16: player.outcome_1 = "High" elif random_num < 46: player.outcome_1 = "Medium" else: player.outcome_1 = "Low" elif player.effort_1 == 4: player.cost_of_effort_1 = 350 if random_num < 21: player.outcome_1 = "High" elif random_num < 51: player.outcome_1 = "Medium" else: player.outcome_1 = "Low" elif player.effort_1 == 5: player.cost_of_effort_1 = 450 if random_num < 26: player.outcome_1 = "High" elif random_num < 56: player.outcome_1 = "Medium" else: player.outcome_1 = "Low" elif player.effort_1 == 6: player.cost_of_effort_1 = 550 if random_num < 31: player.outcome_1 = "High" elif random_num < 61: player.outcome_1 = "Medium" else: player.outcome_1 = "Low" elif player.effort_1 == 7: player.cost_of_effort_1 = 650 if random_num < 36: player.outcome_1 = "High" elif random_num < 66: player.outcome_1 = "Medium" else: player.outcome_1 = "Low" elif player.effort_1 == 8: player.cost_of_effort_1 = 750 if random_num < 41: player.outcome_1 = "High" elif random_num < 71: player.outcome_1 = "Medium" else: player.outcome_1 = "Low" elif player.effort_1 == 9: player.cost_of_effort_1 = 850 if random_num < 46: player.outcome_1 = "High" elif random_num < 76: player.outcome_1 = "Medium" else: player.outcome_1 = "Low" elif player.effort_1 == 10: player.cost_of_effort_1 = 950 if random_num < 51: player.outcome_1 = "High" elif random_num < 81: player.outcome_1 = "Medium" else: player.outcome_1 = "Low" elif player.effort_1 == 11: player.cost_of_effort_1 = 1050 if random_num < 56: player.outcome_1 = "High" elif random_num < 86: player.outcome_1 = "Medium" else: player.outcome_1 = "Low" elif player.effort_1 == 12: player.cost_of_effort_1 = 1150 if random_num < 61: player.outcome_1 = "High" elif random_num < 91: player.outcome_1 = "Medium" else: player.outcome_1 = "Low" elif player.effort_1 == 13: player.cost_of_effort_1 = 1250 if random_num < 66: player.outcome_1 = "High" elif random_num < 96: player.outcome_1 = "Medium" else: player.outcome_1 = "Low" if player.outcome_1 == "High": player.net_pay_1 = 3250 - player.cost_of_effort_1 if player.condition == 1: player.bonus_1 = 2000 elif player.condition == 3: player.bonus_1 = 1000 elif player.outcome_1 == "Medium": player.net_pay_1 = 2250 - player.cost_of_effort_1 if player.condition == 1: player.bonus_1 = 1000 elif player.condition == 2: player.penalty_1 = 1000 elif player.outcome_1 == "Low": player.net_pay_1 = 1250 - player.cost_of_effort_1 if player.condition == 2: player.penalty_1 = 2000 elif player.condition == 3: player.penalty_1 = 1000 class Period2(Page): form_model = 'player' form_fields = ['effort_2', 'decision_time_2'] @staticmethod def before_next_page(player, timeout_happened): random_num = random.randint(1,100) if player.effort_2 == 1: player.cost_of_effort_2 = 50 if random_num < 6: player.outcome_2 = "High" elif random_num < 36: player.outcome_2 = "Medium" else: player.outcome_2 = "Low" elif player.effort_2 == 2: player.cost_of_effort_2 = 150 if random_num < 11: player.outcome_2 = "High" elif random_num < 41: player.outcome_2 = "Medium" else: player.outcome_2 = "Low" elif player.effort_2 == 3: player.cost_of_effort_2 = 250 if random_num < 16: player.outcome_2 = "High" elif random_num < 46: player.outcome_2 = "Medium" else: player.outcome_2 = "Low" elif player.effort_2 == 4: player.cost_of_effort_2 = 350 if random_num < 21: player.outcome_2 = "High" elif random_num < 51: player.outcome_2 = "Medium" else: player.outcome_2 = "Low" elif player.effort_2 == 5: player.cost_of_effort_2 = 450 if random_num < 26: player.outcome_2 = "High" elif random_num < 56: player.outcome_2 = "Medium" else: player.outcome_2 = "Low" elif player.effort_2 == 6: player.cost_of_effort_2 = 550 if random_num < 31: player.outcome_2 = "High" elif random_num < 61: player.outcome_2 = "Medium" else: player.outcome_2 = "Low" elif player.effort_2 == 7: player.cost_of_effort_2 = 650 if random_num < 36: player.outcome_2 = "High" elif random_num < 66: player.outcome_2 = "Medium" else: player.outcome_2 = "Low" elif player.effort_2 == 8: player.cost_of_effort_2 = 750 if random_num < 41: player.outcome_2 = "High" elif random_num < 71: player.outcome_2 = "Medium" else: player.outcome_2 = "Low" elif player.effort_2 == 9: player.cost_of_effort_2 = 850 if random_num < 46: player.outcome_2 = "High" elif random_num < 76: player.outcome_2 = "Medium" else: player.outcome_2 = "Low" elif player.effort_2 == 10: player.cost_of_effort_2 = 950 if random_num < 51: player.outcome_2 = "High" elif random_num < 81: player.outcome_2 = "Medium" else: player.outcome_2 = "Low" elif player.effort_2 == 11: player.cost_of_effort_2 = 1050 if random_num < 56: player.outcome_2 = "High" elif random_num < 86: player.outcome_2 = "Medium" else: player.outcome_2 = "Low" elif player.effort_2 == 12: player.cost_of_effort_2 = 1150 if random_num < 61: player.outcome_2 = "High" elif random_num < 91: player.outcome_2 = "Medium" else: player.outcome_2 = "Low" elif player.effort_2 == 13: player.cost_of_effort_2 = 1250 if random_num < 66: player.outcome_2 = "High" elif random_num < 96: player.outcome_2 = "Medium" else: player.outcome_2 = "Low" if player.outcome_2 == "High": player.net_pay_2 = 3250 - player.cost_of_effort_2 if player.condition == 1: player.bonus_2 = 2000 elif player.condition == 3: player.bonus_2 = 1000 elif player.outcome_2 == "Medium": player.net_pay_2 = 2250 - player.cost_of_effort_2 if player.condition == 1: player.bonus_2 = 1000 elif player.condition == 2: player.penalty_2 = 1000 elif player.outcome_2 == "Low": player.net_pay_2 = 1250 - player.cost_of_effort_2 if player.condition == 2: player.penalty_2 = 2000 elif player.condition == 3: player.penalty_2 = 1000 class Period3(Page): form_model = 'player' form_fields = ['effort_3', 'decision_time_3'] @staticmethod def before_next_page(player, timeout_happened): random_num = random.randint(1,100) if player.effort_3 == 1: player.cost_of_effort_3 = 50 if random_num < 6: player.outcome_3 = "High" elif random_num < 36: player.outcome_3 = "Medium" else: player.outcome_3 = "Low" elif player.effort_3 == 2: player.cost_of_effort_3 = 150 if random_num < 11: player.outcome_3 = "High" elif random_num < 41: player.outcome_3 = "Medium" else: player.outcome_3 = "Low" elif player.effort_3 == 3: player.cost_of_effort_3 = 250 if random_num < 16: player.outcome_3 = "High" elif random_num < 46: player.outcome_3 = "Medium" else: player.outcome_3 = "Low" elif player.effort_3 == 4: player.cost_of_effort_3 = 350 if random_num < 21: player.outcome_3 = "High" elif random_num < 51: player.outcome_3 = "Medium" else: player.outcome_3 = "Low" elif player.effort_3 == 5: player.cost_of_effort_3 = 450 if random_num < 26: player.outcome_3 = "High" elif random_num < 56: player.outcome_3 = "Medium" else: player.outcome_3 = "Low" elif player.effort_3 == 6: player.cost_of_effort_3 = 550 if random_num < 31: player.outcome_3 = "High" elif random_num < 61: player.outcome_3 = "Medium" else: player.outcome_3 = "Low" elif player.effort_3 == 7: player.cost_of_effort_3 = 650 if random_num < 36: player.outcome_3 = "High" elif random_num < 66: player.outcome_3 = "Medium" else: player.outcome_3 = "Low" elif player.effort_3 == 8: player.cost_of_effort_3 = 750 if random_num < 41: player.outcome_3 = "High" elif random_num < 71: player.outcome_3 = "Medium" else: player.outcome_3 = "Low" elif player.effort_3 == 9: player.cost_of_effort_3 = 850 if random_num < 46: player.outcome_3 = "High" elif random_num < 76: player.outcome_3 = "Medium" else: player.outcome_3 = "Low" elif player.effort_3 == 10: player.cost_of_effort_3 = 950 if random_num < 51: player.outcome_3 = "High" elif random_num < 81: player.outcome_3 = "Medium" else: player.outcome_3 = "Low" elif player.effort_3 == 11: player.cost_of_effort_3 = 1050 if random_num < 56: player.outcome_3 = "High" elif random_num < 86: player.outcome_3 = "Medium" else: player.outcome_3 = "Low" elif player.effort_3 == 12: player.cost_of_effort_3 = 1150 if random_num < 61: player.outcome_3 = "High" elif random_num < 91: player.outcome_3 = "Medium" else: player.outcome_3 = "Low" elif player.effort_3 == 13: player.cost_of_effort_3 = 1250 if random_num < 66: player.outcome_3 = "High" elif random_num < 96: player.outcome_3 = "Medium" else: player.outcome_3 = "Low" if player.outcome_3 == "High": player.net_pay_3 = 3250 - player.cost_of_effort_3 if player.condition == 1: player.bonus_3 = 2000 elif player.condition == 3: player.bonus_3 = 1000 elif player.outcome_3 == "Medium": player.net_pay_3 = 2250 - player.cost_of_effort_3 if player.condition == 1: player.bonus_3 = 1000 elif player.condition == 2: player.penalty_3 = 1000 elif player.outcome_3 == "Low": player.net_pay_3 = 1250 - player.cost_of_effort_3 if player.condition == 2: player.penalty_3 = 2000 elif player.condition == 3: player.penalty_3 = 1000 class Period4(Page): form_model = 'player' form_fields = ['effort_4', 'decision_time_4'] @staticmethod def before_next_page(player, timeout_happened): random_num = random.randint(1,100) if player.effort_4 == 1: player.cost_of_effort_4 = 50 if random_num < 6: player.outcome_4 = "High" elif random_num < 36: player.outcome_4 = "Medium" else: player.outcome_4 = "Low" elif player.effort_4 == 2: player.cost_of_effort_4 = 150 if random_num < 11: player.outcome_4 = "High" elif random_num < 41: player.outcome_4 = "Medium" else: player.outcome_4 = "Low" elif player.effort_4 == 3: player.cost_of_effort_4 = 250 if random_num < 16: player.outcome_4 = "High" elif random_num < 46: player.outcome_4 = "Medium" else: player.outcome_4 = "Low" elif player.effort_4 == 4: player.cost_of_effort_4 = 350 if random_num < 21: player.outcome_4 = "High" elif random_num < 51: player.outcome_4 = "Medium" else: player.outcome_4 = "Low" elif player.effort_4 == 5: player.cost_of_effort_4 = 450 if random_num < 26: player.outcome_4 = "High" elif random_num < 56: player.outcome_4 = "Medium" else: player.outcome_4 = "Low" elif player.effort_4 == 6: player.cost_of_effort_4 = 550 if random_num < 31: player.outcome_4 = "High" elif random_num < 61: player.outcome_4 = "Medium" else: player.outcome_4 = "Low" elif player.effort_4 == 7: player.cost_of_effort_4 = 650 if random_num < 36: player.outcome_4 = "High" elif random_num < 66: player.outcome_4 = "Medium" else: player.outcome_4 = "Low" elif player.effort_4 == 8: player.cost_of_effort_4 = 750 if random_num < 41: player.outcome_4 = "High" elif random_num < 71: player.outcome_4 = "Medium" else: player.outcome_4 = "Low" elif player.effort_4 == 9: player.cost_of_effort_4 = 850 if random_num < 46: player.outcome_4 = "High" elif random_num < 76: player.outcome_4 = "Medium" else: player.outcome_4 = "Low" elif player.effort_4 == 10: player.cost_of_effort_4 = 950 if random_num < 51: player.outcome_4 = "High" elif random_num < 81: player.outcome_4 = "Medium" else: player.outcome_4 = "Low" elif player.effort_4 == 11: player.cost_of_effort_4 = 1050 if random_num < 56: player.outcome_4 = "High" elif random_num < 86: player.outcome_4 = "Medium" else: player.outcome_4 = "Low" elif player.effort_4 == 12: player.cost_of_effort_4 = 1150 if random_num < 61: player.outcome_4 = "High" elif random_num < 91: player.outcome_4 = "Medium" else: player.outcome_4 = "Low" elif player.effort_4 == 13: player.cost_of_effort_4 = 1250 if random_num < 66: player.outcome_4 = "High" elif random_num < 96: player.outcome_4 = "Medium" else: player.outcome_4 = "Low" if player.outcome_4 == "High": player.net_pay_4 = 3250 - player.cost_of_effort_4 if player.condition == 1: player.bonus_4 = 2000 elif player.condition == 3: player.bonus_4 = 1000 elif player.outcome_4 == "Medium": player.net_pay_4 = 2250 - player.cost_of_effort_4 if player.condition == 1: player.bonus_4 = 1000 elif player.condition == 2: player.penalty_4 = 1000 elif player.outcome_4 == "Low": player.net_pay_4 = 1250 - player.cost_of_effort_4 if player.condition == 2: player.penalty_4 = 2000 elif player.condition == 3: player.penalty_4 = 1000 class Period5(Page): form_model = 'player' form_fields = ['effort_5', 'decision_time_5'] @staticmethod def before_next_page(player, timeout_happened): random_num = random.randint(1,100) if player.effort_5 == 1: player.cost_of_effort_5 = 50 if random_num < 6: player.outcome_5 = "High" elif random_num < 36: player.outcome_5 = "Medium" else: player.outcome_5 = "Low" elif player.effort_5 == 2: player.cost_of_effort_5 = 150 if random_num < 11: player.outcome_5 = "High" elif random_num < 41: player.outcome_5 = "Medium" else: player.outcome_5 = "Low" elif player.effort_5 == 3: player.cost_of_effort_5 = 250 if random_num < 16: player.outcome_5 = "High" elif random_num < 46: player.outcome_5 = "Medium" else: player.outcome_5 = "Low" elif player.effort_5 == 4: player.cost_of_effort_5 = 350 if random_num < 21: player.outcome_5 = "High" elif random_num < 51: player.outcome_5 = "Medium" else: player.outcome_5 = "Low" elif player.effort_5 == 5: player.cost_of_effort_5 = 450 if random_num < 26: player.outcome_5 = "High" elif random_num < 56: player.outcome_5 = "Medium" else: player.outcome_5 = "Low" elif player.effort_5 == 6: player.cost_of_effort_5 = 550 if random_num < 31: player.outcome_5 = "High" elif random_num < 61: player.outcome_5 = "Medium" else: player.outcome_5 = "Low" elif player.effort_5 == 7: player.cost_of_effort_5 = 650 if random_num < 36: player.outcome_5 = "High" elif random_num < 66: player.outcome_5 = "Medium" else: player.outcome_5 = "Low" elif player.effort_5 == 8: player.cost_of_effort_5 = 750 if random_num < 41: player.outcome_5 = "High" elif random_num < 71: player.outcome_5 = "Medium" else: player.outcome_5 = "Low" elif player.effort_5 == 9: player.cost_of_effort_5 = 850 if random_num < 46: player.outcome_5 = "High" elif random_num < 76: player.outcome_5 = "Medium" else: player.outcome_5 = "Low" elif player.effort_5 == 10: player.cost_of_effort_5 = 950 if random_num < 51: player.outcome_5 = "High" elif random_num < 81: player.outcome_5 = "Medium" else: player.outcome_5 = "Low" elif player.effort_5 == 11: player.cost_of_effort_5 = 1050 if random_num < 56: player.outcome_5 = "High" elif random_num < 86: player.outcome_5 = "Medium" else: player.outcome_5 = "Low" elif player.effort_5 == 12: player.cost_of_effort_5 = 1150 if random_num < 61: player.outcome_5 = "High" elif random_num < 91: player.outcome_5 = "Medium" else: player.outcome_5 = "Low" elif player.effort_5 == 13: player.cost_of_effort_5 = 1250 if random_num < 66: player.outcome_5 = "High" elif random_num < 96: player.outcome_5 = "Medium" else: player.outcome_5 = "Low" if player.outcome_5 == "High": player.net_pay_5 = 3250 - player.cost_of_effort_5 if player.condition == 1: player.bonus_5 = 2000 elif player.condition == 3: player.bonus_5 = 1000 elif player.outcome_5 == "Medium": player.net_pay_5 = 2250 - player.cost_of_effort_5 if player.condition == 1: player.bonus_5 = 1000 elif player.condition == 2: player.penalty_5 = 1000 elif player.outcome_5 == "Low": player.net_pay_5 = 1250 - player.cost_of_effort_5 if player.condition == 2: player.penalty_5 = 2000 elif player.condition == 3: player.penalty_5 = 1000 class Period6(Page): form_model = 'player' form_fields = ['effort_6', 'decision_time_6'] @staticmethod def before_next_page(player, timeout_happened): random_num = random.randint(1,100) if player.effort_6 == 1: player.cost_of_effort_6 = 50 if random_num < 6: player.outcome_6 = "High" elif random_num < 36: player.outcome_6 = "Medium" else: player.outcome_6 = "Low" elif player.effort_6 == 2: player.cost_of_effort_6 = 150 if random_num < 11: player.outcome_6 = "High" elif random_num < 41: player.outcome_6 = "Medium" else: player.outcome_6 = "Low" elif player.effort_6 == 3: player.cost_of_effort_6 = 250 if random_num < 16: player.outcome_6 = "High" elif random_num < 46: player.outcome_6 = "Medium" else: player.outcome_6 = "Low" elif player.effort_6 == 4: player.cost_of_effort_6 = 350 if random_num < 21: player.outcome_6 = "High" elif random_num < 51: player.outcome_6 = "Medium" else: player.outcome_6 = "Low" elif player.effort_6 == 5: player.cost_of_effort_6 = 450 if random_num < 26: player.outcome_6 = "High" elif random_num < 56: player.outcome_6 = "Medium" else: player.outcome_6 = "Low" elif player.effort_6 == 6: player.cost_of_effort_6 = 550 if random_num < 31: player.outcome_6 = "High" elif random_num < 61: player.outcome_6 = "Medium" else: player.outcome_6 = "Low" elif player.effort_6 == 7: player.cost_of_effort_6 = 650 if random_num < 36: player.outcome_6 = "High" elif random_num < 66: player.outcome_6 = "Medium" else: player.outcome_6 = "Low" elif player.effort_6 == 8: player.cost_of_effort_6 = 750 if random_num < 41: player.outcome_6 = "High" elif random_num < 71: player.outcome_6 = "Medium" else: player.outcome_6 = "Low" elif player.effort_6 == 9: player.cost_of_effort_6 = 850 if random_num < 46: player.outcome_6 = "High" elif random_num < 76: player.outcome_6 = "Medium" else: player.outcome_6 = "Low" elif player.effort_6 == 10: player.cost_of_effort_6 = 950 if random_num < 51: player.outcome_6 = "High" elif random_num < 81: player.outcome_6 = "Medium" else: player.outcome_6 = "Low" elif player.effort_6 == 11: player.cost_of_effort_6 = 1050 if random_num < 56: player.outcome_6 = "High" elif random_num < 86: player.outcome_6 = "Medium" else: player.outcome_6 = "Low" elif player.effort_6 == 12: player.cost_of_effort_6 = 1150 if random_num < 61: player.outcome_6 = "High" elif random_num < 91: player.outcome_6 = "Medium" else: player.outcome_6 = "Low" elif player.effort_6 == 13: player.cost_of_effort_6 = 1250 if random_num < 66: player.outcome_6 = "High" elif random_num < 96: player.outcome_6 = "Medium" else: player.outcome_6 = "Low" if player.outcome_6 == "High": player.net_pay_6 = 3250 - player.cost_of_effort_6 if player.condition == 1: player.bonus_6 = 2000 elif player.condition == 3: player.bonus_6 = 1000 elif player.outcome_6 == "Medium": player.net_pay_6 = 2250 - player.cost_of_effort_6 if player.condition == 1: player.bonus_6 = 1000 elif player.condition == 2: player.penalty_6 = 1000 elif player.outcome_6 == "Low": player.net_pay_6 = 1250 - player.cost_of_effort_6 if player.condition == 2: player.penalty_6 = 2000 elif player.condition == 3: player.penalty_6 = 1000 class Period7(Page): form_model = 'player' form_fields = ['effort_7', 'decision_time_7'] @staticmethod def before_next_page(player, timeout_happened): random_num = random.randint(1,100) if player.effort_7 == 1: player.cost_of_effort_7 = 50 if random_num < 6: player.outcome_7 = "High" elif random_num < 36: player.outcome_7 = "Medium" else: player.outcome_7 = "Low" elif player.effort_7 == 2: player.cost_of_effort_7 = 150 if random_num < 11: player.outcome_7 = "High" elif random_num < 41: player.outcome_7 = "Medium" else: player.outcome_7 = "Low" elif player.effort_7 == 3: player.cost_of_effort_7 = 250 if random_num < 16: player.outcome_7 = "High" elif random_num < 46: player.outcome_7 = "Medium" else: player.outcome_7 = "Low" elif player.effort_7 == 4: player.cost_of_effort_7 = 350 if random_num < 21: player.outcome_7 = "High" elif random_num < 51: player.outcome_7 = "Medium" else: player.outcome_7 = "Low" elif player.effort_7 == 5: player.cost_of_effort_7 = 450 if random_num < 26: player.outcome_7 = "High" elif random_num < 56: player.outcome_7 = "Medium" else: player.outcome_7 = "Low" elif player.effort_7 == 6: player.cost_of_effort_7 = 550 if random_num < 31: player.outcome_7 = "High" elif random_num < 61: player.outcome_7 = "Medium" else: player.outcome_7 = "Low" elif player.effort_7 == 7: player.cost_of_effort_7 = 650 if random_num < 36: player.outcome_7 = "High" elif random_num < 66: player.outcome_7 = "Medium" else: player.outcome_7 = "Low" elif player.effort_7 == 8: player.cost_of_effort_7 = 750 if random_num < 41: player.outcome_7 = "High" elif random_num < 71: player.outcome_7 = "Medium" else: player.outcome_7 = "Low" elif player.effort_7 == 9: player.cost_of_effort_7 = 850 if random_num < 46: player.outcome_7 = "High" elif random_num < 76: player.outcome_7 = "Medium" else: player.outcome_7 = "Low" elif player.effort_7 == 10: player.cost_of_effort_7 = 950 if random_num < 51: player.outcome_7 = "High" elif random_num < 81: player.outcome_7 = "Medium" else: player.outcome_7 = "Low" elif player.effort_7 == 11: player.cost_of_effort_7 = 1050 if random_num < 56: player.outcome_7 = "High" elif random_num < 86: player.outcome_7 = "Medium" else: player.outcome_7 = "Low" elif player.effort_7 == 12: player.cost_of_effort_7 = 1150 if random_num < 61: player.outcome_7 = "High" elif random_num < 91: player.outcome_7 = "Medium" else: player.outcome_7 = "Low" elif player.effort_7 == 13: player.cost_of_effort_7 = 1250 if random_num < 66: player.outcome_7 = "High" elif random_num < 96: player.outcome_7 = "Medium" else: player.outcome_7 = "Low" if player.outcome_7 == "High": player.net_pay_7 = 3250 - player.cost_of_effort_7 if player.condition == 1: player.bonus_7 = 2000 elif player.condition == 3: player.bonus_7 = 1000 elif player.outcome_7 == "Medium": player.net_pay_7 = 2250 - player.cost_of_effort_7 if player.condition == 1: player.bonus_7 = 1000 elif player.condition == 2: player.penalty_7 = 1000 elif player.outcome_7 == "Low": player.net_pay_7 = 1250 - player.cost_of_effort_7 if player.condition == 2: player.penalty_7 = 2000 elif player.condition == 3: player.penalty_7 = 1000 class Period8(Page): form_model = 'player' form_fields = ['effort_8', 'decision_time_8'] @staticmethod def before_next_page(player, timeout_happened): random_num = random.randint(1,100) if player.effort_8 == 1: player.cost_of_effort_8 = 50 if random_num < 6: player.outcome_8 = "High" elif random_num < 36: player.outcome_8 = "Medium" else: player.outcome_8 = "Low" elif player.effort_8 == 2: player.cost_of_effort_8 = 150 if random_num < 11: player.outcome_8 = "High" elif random_num < 41: player.outcome_8 = "Medium" else: player.outcome_8 = "Low" elif player.effort_8 == 3: player.cost_of_effort_8 = 250 if random_num < 16: player.outcome_8 = "High" elif random_num < 46: player.outcome_8 = "Medium" else: player.outcome_8 = "Low" elif player.effort_8 == 4: player.cost_of_effort_8 = 350 if random_num < 21: player.outcome_8 = "High" elif random_num < 51: player.outcome_8 = "Medium" else: player.outcome_8 = "Low" elif player.effort_8 == 5: player.cost_of_effort_8 = 450 if random_num < 26: player.outcome_8 = "High" elif random_num < 56: player.outcome_8 = "Medium" else: player.outcome_8 = "Low" elif player.effort_8 == 6: player.cost_of_effort_8 = 550 if random_num < 31: player.outcome_8 = "High" elif random_num < 61: player.outcome_8 = "Medium" else: player.outcome_8 = "Low" elif player.effort_8 == 7: player.cost_of_effort_8 = 650 if random_num < 36: player.outcome_8 = "High" elif random_num < 66: player.outcome_8 = "Medium" else: player.outcome_8 = "Low" elif player.effort_8 == 8: player.cost_of_effort_8 = 750 if random_num < 41: player.outcome_8 = "High" elif random_num < 71: player.outcome_8 = "Medium" else: player.outcome_8 = "Low" elif player.effort_8 == 9: player.cost_of_effort_8 = 850 if random_num < 46: player.outcome_8 = "High" elif random_num < 76: player.outcome_8 = "Medium" else: player.outcome_8 = "Low" elif player.effort_8 == 10: player.cost_of_effort_8 = 950 if random_num < 51: player.outcome_8 = "High" elif random_num < 81: player.outcome_8 = "Medium" else: player.outcome_8 = "Low" elif player.effort_8 == 11: player.cost_of_effort_8 = 1050 if random_num < 56: player.outcome_8 = "High" elif random_num < 86: player.outcome_8 = "Medium" else: player.outcome_8 = "Low" elif player.effort_8 == 12: player.cost_of_effort_8 = 1150 if random_num < 61: player.outcome_8 = "High" elif random_num < 91: player.outcome_8 = "Medium" else: player.outcome_8 = "Low" elif player.effort_8 == 13: player.cost_of_effort_8 = 1250 if random_num < 66: player.outcome_8 = "High" elif random_num < 96: player.outcome_8 = "Medium" else: player.outcome_8 = "Low" if player.outcome_8 == "High": player.net_pay_8 = 3250 - player.cost_of_effort_8 if player.condition == 1: player.bonus_8 = 2000 elif player.condition == 3: player.bonus_8 = 1000 elif player.outcome_8 == "Medium": player.net_pay_8 = 2250 - player.cost_of_effort_8 if player.condition == 1: player.bonus_8 = 1000 elif player.condition == 2: player.penalty_8 = 1000 elif player.outcome_8 == "Low": player.net_pay_8 = 1250 - player.cost_of_effort_8 if player.condition == 2: player.penalty_8 = 2000 elif player.condition == 3: player.penalty_8 = 1000 class Period9(Page): form_model = 'player' form_fields = ['effort_9', 'decision_time_9'] @staticmethod def before_next_page(player, timeout_happened): random_num = random.randint(1,100) if player.effort_9 == 1: player.cost_of_effort_9 = 50 if random_num < 6: player.outcome_9 = "High" elif random_num < 36: player.outcome_9 = "Medium" else: player.outcome_9 = "Low" elif player.effort_9 == 2: player.cost_of_effort_9 = 150 if random_num < 11: player.outcome_9 = "High" elif random_num < 41: player.outcome_9 = "Medium" else: player.outcome_9 = "Low" elif player.effort_9 == 3: player.cost_of_effort_9 = 250 if random_num < 16: player.outcome_9 = "High" elif random_num < 46: player.outcome_9 = "Medium" else: player.outcome_9 = "Low" elif player.effort_9 == 4: player.cost_of_effort_9 = 350 if random_num < 21: player.outcome_9 = "High" elif random_num < 51: player.outcome_9 = "Medium" else: player.outcome_9 = "Low" elif player.effort_9 == 5: player.cost_of_effort_9 = 450 if random_num < 26: player.outcome_9 = "High" elif random_num < 56: player.outcome_9 = "Medium" else: player.outcome_9 = "Low" elif player.effort_9 == 6: player.cost_of_effort_9 = 550 if random_num < 31: player.outcome_9 = "High" elif random_num < 61: player.outcome_9 = "Medium" else: player.outcome_9 = "Low" elif player.effort_9 == 7: player.cost_of_effort_9 = 650 if random_num < 36: player.outcome_9 = "High" elif random_num < 66: player.outcome_9 = "Medium" else: player.outcome_9 = "Low" elif player.effort_9 == 8: player.cost_of_effort_9 = 750 if random_num < 41: player.outcome_9 = "High" elif random_num < 71: player.outcome_9 = "Medium" else: player.outcome_9 = "Low" elif player.effort_9 == 9: player.cost_of_effort_9 = 850 if random_num < 46: player.outcome_9 = "High" elif random_num < 76: player.outcome_9 = "Medium" else: player.outcome_9 = "Low" elif player.effort_9 == 10: player.cost_of_effort_9 = 950 if random_num < 51: player.outcome_9 = "High" elif random_num < 81: player.outcome_9 = "Medium" else: player.outcome_9 = "Low" elif player.effort_9 == 11: player.cost_of_effort_9 = 1050 if random_num < 56: player.outcome_9 = "High" elif random_num < 86: player.outcome_9 = "Medium" else: player.outcome_9 = "Low" elif player.effort_9 == 12: player.cost_of_effort_9 = 1150 if random_num < 61: player.outcome_9 = "High" elif random_num < 91: player.outcome_9 = "Medium" else: player.outcome_9 = "Low" elif player.effort_9 == 13: player.cost_of_effort_9 = 1250 if random_num < 66: player.outcome_9 = "High" elif random_num < 96: player.outcome_9 = "Medium" else: player.outcome_9 = "Low" if player.outcome_9 == "High": player.net_pay_9 = 3250 - player.cost_of_effort_9 if player.condition == 1: player.bonus_9 = 2000 elif player.condition == 3: player.bonus_9 = 1000 elif player.outcome_9 == "Medium": player.net_pay_9 = 2250 - player.cost_of_effort_9 if player.condition == 1: player.bonus_9 = 1000 elif player.condition == 2: player.penalty_9 = 1000 elif player.outcome_9 == "Low": player.net_pay_9 = 1250 - player.cost_of_effort_9 if player.condition == 2: player.penalty_9 = 2000 elif player.condition == 3: player.penalty_9 = 1000 class Period10(Page): form_model = 'player' form_fields = ['effort_10', 'decision_time_10'] @staticmethod def before_next_page(player, timeout_happened): random_num = random.randint(1,100) if player.effort_10 == 1: player.cost_of_effort_10 = 50 if random_num < 6: player.outcome_10 = "High" elif random_num < 36: player.outcome_10 = "Medium" else: player.outcome_10 = "Low" elif player.effort_10 == 2: player.cost_of_effort_10 = 150 if random_num < 11: player.outcome_10 = "High" elif random_num < 41: player.outcome_10 = "Medium" else: player.outcome_10 = "Low" elif player.effort_10 == 3: player.cost_of_effort_10 = 250 if random_num < 16: player.outcome_10 = "High" elif random_num < 46: player.outcome_10 = "Medium" else: player.outcome_10 = "Low" elif player.effort_10 == 4: player.cost_of_effort_10 = 350 if random_num < 21: player.outcome_10 = "High" elif random_num < 51: player.outcome_10 = "Medium" else: player.outcome_10 = "Low" elif player.effort_10 == 5: player.cost_of_effort_10 = 450 if random_num < 26: player.outcome_10 = "High" elif random_num < 56: player.outcome_10 = "Medium" else: player.outcome_10 = "Low" elif player.effort_10 == 6: player.cost_of_effort_10 = 550 if random_num < 31: player.outcome_10 = "High" elif random_num < 61: player.outcome_10 = "Medium" else: player.outcome_10 = "Low" elif player.effort_10 == 7: player.cost_of_effort_10 = 650 if random_num < 36: player.outcome_10 = "High" elif random_num < 66: player.outcome_10 = "Medium" else: player.outcome_10 = "Low" elif player.effort_10 == 8: player.cost_of_effort_10 = 750 if random_num < 41: player.outcome_10 = "High" elif random_num < 71: player.outcome_10 = "Medium" else: player.outcome_10 = "Low" elif player.effort_10 == 9: player.cost_of_effort_10 = 850 if random_num < 46: player.outcome_10 = "High" elif random_num < 76: player.outcome_10 = "Medium" else: player.outcome_10 = "Low" elif player.effort_10 == 10: player.cost_of_effort_10 = 950 if random_num < 51: player.outcome_10 = "High" elif random_num < 81: player.outcome_10 = "Medium" else: player.outcome_10 = "Low" elif player.effort_10 == 11: player.cost_of_effort_10 = 1050 if random_num < 56: player.outcome_10 = "High" elif random_num < 86: player.outcome_10 = "Medium" else: player.outcome_10 = "Low" elif player.effort_10 == 12: player.cost_of_effort_10 = 1150 if random_num < 61: player.outcome_10 = "High" elif random_num < 91: player.outcome_10 = "Medium" else: player.outcome_10 = "Low" elif player.effort_10 == 13: player.cost_of_effort_10 = 1250 if random_num < 66: player.outcome_10 = "High" elif random_num < 96: player.outcome_10 = "Medium" else: player.outcome_10 = "Low" if player.outcome_10 == "High": player.net_pay_10 = 3250 - player.cost_of_effort_10 if player.condition == 1: player.bonus_10 = 2000 elif player.condition == 3: player.bonus_10 = 1000 elif player.outcome_10 == "Medium": player.net_pay_10 = 2250 - player.cost_of_effort_10 if player.condition == 1: player.bonus_10 = 1000 elif player.condition == 2: player.penalty_10 = 1000 elif player.outcome_10 == "Low": player.net_pay_10 = 1250 - player.cost_of_effort_10 if player.condition == 2: player.penalty_10 = 2000 elif player.condition == 3: player.penalty_10 = 1000 player.total_points = player.net_pay_1 + player.net_pay_2 + player.net_pay_3 + player.net_pay_4 + player.net_pay_5 + player.net_pay_6 + \ player.net_pay_7 + player.net_pay_8 + player.net_pay_9 + player.net_pay_10 player.total_comp = math.ceil(player.total_points / 40)/100 class Result1(Page): @staticmethod def vars_for_template(player): return dict( effort_1='{:,}'.format(player.effort_1), cost_of_effort_1='{:,}'.format(player.cost_of_effort_1), bonus_1='{:,}'.format(player.bonus_1), penalty_1='{:,}'.format(player.penalty_1), net_pay_1='{:,}'.format(player.net_pay_1) ) class Result2(Page): @staticmethod def vars_for_template(player): return dict( effort_1='{:,}'.format(player.effort_1), cost_of_effort_1='{:,}'.format(player.cost_of_effort_1), bonus_1='{:,}'.format(player.bonus_1), penalty_1='{:,}'.format(player.penalty_1), net_pay_1='{:,}'.format(player.net_pay_1), effort_2='{:,}'.format(player.effort_2), cost_of_effort_2='{:,}'.format(player.cost_of_effort_2), bonus_2='{:,}'.format(player.bonus_2), penalty_2='{:,}'.format(player.penalty_2), net_pay_2='{:,}'.format(player.net_pay_2) ) class Result3(Page): @staticmethod def vars_for_template(player): return dict( effort_1='{:,}'.format(player.effort_1), cost_of_effort_1='{:,}'.format(player.cost_of_effort_1), bonus_1='{:,}'.format(player.bonus_1), penalty_1='{:,}'.format(player.penalty_1), net_pay_1='{:,}'.format(player.net_pay_1), effort_2='{:,}'.format(player.effort_2), cost_of_effort_2='{:,}'.format(player.cost_of_effort_2), bonus_2='{:,}'.format(player.bonus_2), penalty_2='{:,}'.format(player.penalty_2), net_pay_2='{:,}'.format(player.net_pay_2), effort_3='{:,}'.format(player.effort_3), cost_of_effort_3='{:,}'.format(player.cost_of_effort_3), bonus_3='{:,}'.format(player.bonus_3), penalty_3='{:,}'.format(player.penalty_3), net_pay_3='{:,}'.format(player.net_pay_3) ) class Result4(Page): @staticmethod def vars_for_template(player): return dict( effort_1='{:,}'.format(player.effort_1), cost_of_effort_1='{:,}'.format(player.cost_of_effort_1), bonus_1='{:,}'.format(player.bonus_1), penalty_1='{:,}'.format(player.penalty_1), net_pay_1='{:,}'.format(player.net_pay_1), effort_2='{:,}'.format(player.effort_2), cost_of_effort_2='{:,}'.format(player.cost_of_effort_2), bonus_2='{:,}'.format(player.bonus_2), penalty_2='{:,}'.format(player.penalty_2), net_pay_2='{:,}'.format(player.net_pay_2), effort_3='{:,}'.format(player.effort_3), cost_of_effort_3='{:,}'.format(player.cost_of_effort_3), bonus_3='{:,}'.format(player.bonus_3), penalty_3='{:,}'.format(player.penalty_3), net_pay_3='{:,}'.format(player.net_pay_3), effort_4='{:,}'.format(player.effort_4), cost_of_effort_4='{:,}'.format(player.cost_of_effort_4), bonus_4='{:,}'.format(player.bonus_4), penalty_4='{:,}'.format(player.penalty_4), net_pay_4='{:,}'.format(player.net_pay_4) ) class Result5(Page): @staticmethod def vars_for_template(player): return dict( effort_1='{:,}'.format(player.effort_1), cost_of_effort_1='{:,}'.format(player.cost_of_effort_1), bonus_1='{:,}'.format(player.bonus_1), penalty_1='{:,}'.format(player.penalty_1), net_pay_1='{:,}'.format(player.net_pay_1), effort_2='{:,}'.format(player.effort_2), cost_of_effort_2='{:,}'.format(player.cost_of_effort_2), bonus_2='{:,}'.format(player.bonus_2), penalty_2='{:,}'.format(player.penalty_2), net_pay_2='{:,}'.format(player.net_pay_2), effort_3='{:,}'.format(player.effort_3), cost_of_effort_3='{:,}'.format(player.cost_of_effort_3), bonus_3='{:,}'.format(player.bonus_3), penalty_3='{:,}'.format(player.penalty_3), net_pay_3='{:,}'.format(player.net_pay_3), effort_4='{:,}'.format(player.effort_4), cost_of_effort_4='{:,}'.format(player.cost_of_effort_4), bonus_4='{:,}'.format(player.bonus_4), penalty_4='{:,}'.format(player.penalty_4), net_pay_4='{:,}'.format(player.net_pay_4), effort_5='{:,}'.format(player.effort_5), cost_of_effort_5='{:,}'.format(player.cost_of_effort_5), bonus_5='{:,}'.format(player.bonus_5), penalty_5='{:,}'.format(player.penalty_5), net_pay_5='{:,}'.format(player.net_pay_5) ) class Result6(Page): @staticmethod def vars_for_template(player): return dict( effort_1='{:,}'.format(player.effort_1), cost_of_effort_1='{:,}'.format(player.cost_of_effort_1), bonus_1='{:,}'.format(player.bonus_1), penalty_1='{:,}'.format(player.penalty_1), net_pay_1='{:,}'.format(player.net_pay_1), effort_2='{:,}'.format(player.effort_2), cost_of_effort_2='{:,}'.format(player.cost_of_effort_2), bonus_2='{:,}'.format(player.bonus_2), penalty_2='{:,}'.format(player.penalty_2), net_pay_2='{:,}'.format(player.net_pay_2), effort_3='{:,}'.format(player.effort_3), cost_of_effort_3='{:,}'.format(player.cost_of_effort_3), bonus_3='{:,}'.format(player.bonus_3), penalty_3='{:,}'.format(player.penalty_3), net_pay_3='{:,}'.format(player.net_pay_3), effort_4='{:,}'.format(player.effort_4), cost_of_effort_4='{:,}'.format(player.cost_of_effort_4), bonus_4='{:,}'.format(player.bonus_4), penalty_4='{:,}'.format(player.penalty_4), net_pay_4='{:,}'.format(player.net_pay_4), effort_5='{:,}'.format(player.effort_5), cost_of_effort_5='{:,}'.format(player.cost_of_effort_5), bonus_5='{:,}'.format(player.bonus_5), penalty_5='{:,}'.format(player.penalty_5), net_pay_5='{:,}'.format(player.net_pay_5), effort_6='{:,}'.format(player.effort_6), cost_of_effort_6='{:,}'.format(player.cost_of_effort_6), bonus_6='{:,}'.format(player.bonus_6), penalty_6='{:,}'.format(player.penalty_6), net_pay_6='{:,}'.format(player.net_pay_6) ) class Result7(Page): @staticmethod def vars_for_template(player): return dict( effort_1='{:,}'.format(player.effort_1), cost_of_effort_1='{:,}'.format(player.cost_of_effort_1), bonus_1='{:,}'.format(player.bonus_1), penalty_1='{:,}'.format(player.penalty_1), net_pay_1='{:,}'.format(player.net_pay_1), effort_2='{:,}'.format(player.effort_2), cost_of_effort_2='{:,}'.format(player.cost_of_effort_2), bonus_2='{:,}'.format(player.bonus_2), penalty_2='{:,}'.format(player.penalty_2), net_pay_2='{:,}'.format(player.net_pay_2), effort_3='{:,}'.format(player.effort_3), cost_of_effort_3='{:,}'.format(player.cost_of_effort_3), bonus_3='{:,}'.format(player.bonus_3), penalty_3='{:,}'.format(player.penalty_3), net_pay_3='{:,}'.format(player.net_pay_3), effort_4='{:,}'.format(player.effort_4), cost_of_effort_4='{:,}'.format(player.cost_of_effort_4), bonus_4='{:,}'.format(player.bonus_4), penalty_4='{:,}'.format(player.penalty_4), net_pay_4='{:,}'.format(player.net_pay_4), effort_5='{:,}'.format(player.effort_5), cost_of_effort_5='{:,}'.format(player.cost_of_effort_5), bonus_5='{:,}'.format(player.bonus_5), penalty_5='{:,}'.format(player.penalty_5), net_pay_5='{:,}'.format(player.net_pay_5), effort_6='{:,}'.format(player.effort_6), cost_of_effort_6='{:,}'.format(player.cost_of_effort_6), bonus_6='{:,}'.format(player.bonus_6), penalty_6='{:,}'.format(player.penalty_6), net_pay_6='{:,}'.format(player.net_pay_6), effort_7='{:,}'.format(player.effort_7), cost_of_effort_7='{:,}'.format(player.cost_of_effort_7), bonus_7='{:,}'.format(player.bonus_7), penalty_7='{:,}'.format(player.penalty_7), net_pay_7='{:,}'.format(player.net_pay_7) ) class Result8(Page): @staticmethod def vars_for_template(player): return dict( effort_1='{:,}'.format(player.effort_1), cost_of_effort_1='{:,}'.format(player.cost_of_effort_1), bonus_1='{:,}'.format(player.bonus_1), penalty_1='{:,}'.format(player.penalty_1), net_pay_1='{:,}'.format(player.net_pay_1), effort_2='{:,}'.format(player.effort_2), cost_of_effort_2='{:,}'.format(player.cost_of_effort_2), bonus_2='{:,}'.format(player.bonus_2), penalty_2='{:,}'.format(player.penalty_2), net_pay_2='{:,}'.format(player.net_pay_2), effort_3='{:,}'.format(player.effort_3), cost_of_effort_3='{:,}'.format(player.cost_of_effort_3), bonus_3='{:,}'.format(player.bonus_3), penalty_3='{:,}'.format(player.penalty_3), net_pay_3='{:,}'.format(player.net_pay_3), effort_4='{:,}'.format(player.effort_4), cost_of_effort_4='{:,}'.format(player.cost_of_effort_4), bonus_4='{:,}'.format(player.bonus_4), penalty_4='{:,}'.format(player.penalty_4), net_pay_4='{:,}'.format(player.net_pay_4), effort_5='{:,}'.format(player.effort_5), cost_of_effort_5='{:,}'.format(player.cost_of_effort_5), bonus_5='{:,}'.format(player.bonus_5), penalty_5='{:,}'.format(player.penalty_5), net_pay_5='{:,}'.format(player.net_pay_5), effort_6='{:,}'.format(player.effort_6), cost_of_effort_6='{:,}'.format(player.cost_of_effort_6), bonus_6='{:,}'.format(player.bonus_6), penalty_6='{:,}'.format(player.penalty_6), net_pay_6='{:,}'.format(player.net_pay_6), effort_7='{:,}'.format(player.effort_7), cost_of_effort_7='{:,}'.format(player.cost_of_effort_7), bonus_7='{:,}'.format(player.bonus_7), penalty_7='{:,}'.format(player.penalty_7), net_pay_7='{:,}'.format(player.net_pay_7), effort_8='{:,}'.format(player.effort_8), cost_of_effort_8='{:,}'.format(player.cost_of_effort_8), bonus_8='{:,}'.format(player.bonus_8), penalty_8='{:,}'.format(player.penalty_8), net_pay_8='{:,}'.format(player.net_pay_8) ) class Result9(Page): @staticmethod def vars_for_template(player): return dict( effort_1='{:,}'.format(player.effort_1), cost_of_effort_1='{:,}'.format(player.cost_of_effort_1), bonus_1='{:,}'.format(player.bonus_1), penalty_1='{:,}'.format(player.penalty_1), net_pay_1='{:,}'.format(player.net_pay_1), effort_2='{:,}'.format(player.effort_2), cost_of_effort_2='{:,}'.format(player.cost_of_effort_2), bonus_2='{:,}'.format(player.bonus_2), penalty_2='{:,}'.format(player.penalty_2), net_pay_2='{:,}'.format(player.net_pay_2), effort_3='{:,}'.format(player.effort_3), cost_of_effort_3='{:,}'.format(player.cost_of_effort_3), bonus_3='{:,}'.format(player.bonus_3), penalty_3='{:,}'.format(player.penalty_3), net_pay_3='{:,}'.format(player.net_pay_3), effort_4='{:,}'.format(player.effort_4), cost_of_effort_4='{:,}'.format(player.cost_of_effort_4), bonus_4='{:,}'.format(player.bonus_4), penalty_4='{:,}'.format(player.penalty_4), net_pay_4='{:,}'.format(player.net_pay_4), effort_5='{:,}'.format(player.effort_5), cost_of_effort_5='{:,}'.format(player.cost_of_effort_5), bonus_5='{:,}'.format(player.bonus_5), penalty_5='{:,}'.format(player.penalty_5), net_pay_5='{:,}'.format(player.net_pay_5), effort_6='{:,}'.format(player.effort_6), cost_of_effort_6='{:,}'.format(player.cost_of_effort_6), bonus_6='{:,}'.format(player.bonus_6), penalty_6='{:,}'.format(player.penalty_6), net_pay_6='{:,}'.format(player.net_pay_6), effort_7='{:,}'.format(player.effort_7), cost_of_effort_7='{:,}'.format(player.cost_of_effort_7), bonus_7='{:,}'.format(player.bonus_7), penalty_7='{:,}'.format(player.penalty_7), net_pay_7='{:,}'.format(player.net_pay_7), effort_8='{:,}'.format(player.effort_8), cost_of_effort_8='{:,}'.format(player.cost_of_effort_8), bonus_8='{:,}'.format(player.bonus_8), penalty_8='{:,}'.format(player.penalty_8), net_pay_8='{:,}'.format(player.net_pay_8), effort_9='{:,}'.format(player.effort_9), cost_of_effort_9='{:,}'.format(player.cost_of_effort_9), bonus_9='{:,}'.format(player.bonus_9), penalty_9='{:,}'.format(player.penalty_9), net_pay_9='{:,}'.format(player.net_pay_9) ) class Result10(Page): @staticmethod def vars_for_template(player): return dict( effort_1='{:,}'.format(player.effort_1), cost_of_effort_1='{:,}'.format(player.cost_of_effort_1), bonus_1='{:,}'.format(player.bonus_1), penalty_1='{:,}'.format(player.penalty_1), net_pay_1='{:,}'.format(player.net_pay_1), effort_2='{:,}'.format(player.effort_2), cost_of_effort_2='{:,}'.format(player.cost_of_effort_2), bonus_2='{:,}'.format(player.bonus_2), penalty_2='{:,}'.format(player.penalty_2), net_pay_2='{:,}'.format(player.net_pay_2), effort_3='{:,}'.format(player.effort_3), cost_of_effort_3='{:,}'.format(player.cost_of_effort_3), bonus_3='{:,}'.format(player.bonus_3), penalty_3='{:,}'.format(player.penalty_3), net_pay_3='{:,}'.format(player.net_pay_3), effort_4='{:,}'.format(player.effort_4), cost_of_effort_4='{:,}'.format(player.cost_of_effort_4), bonus_4='{:,}'.format(player.bonus_4), penalty_4='{:,}'.format(player.penalty_4), net_pay_4='{:,}'.format(player.net_pay_4), effort_5='{:,}'.format(player.effort_5), cost_of_effort_5='{:,}'.format(player.cost_of_effort_5), bonus_5='{:,}'.format(player.bonus_5), penalty_5='{:,}'.format(player.penalty_5), net_pay_5='{:,}'.format(player.net_pay_5), effort_6='{:,}'.format(player.effort_6), cost_of_effort_6='{:,}'.format(player.cost_of_effort_6), bonus_6='{:,}'.format(player.bonus_6), penalty_6='{:,}'.format(player.penalty_6), net_pay_6='{:,}'.format(player.net_pay_6), effort_7='{:,}'.format(player.effort_7), cost_of_effort_7='{:,}'.format(player.cost_of_effort_7), bonus_7='{:,}'.format(player.bonus_7), penalty_7='{:,}'.format(player.penalty_7), net_pay_7='{:,}'.format(player.net_pay_7), effort_8='{:,}'.format(player.effort_8), cost_of_effort_8='{:,}'.format(player.cost_of_effort_8), bonus_8='{:,}'.format(player.bonus_8), penalty_8='{:,}'.format(player.penalty_8), net_pay_8='{:,}'.format(player.net_pay_8), effort_9='{:,}'.format(player.effort_9), cost_of_effort_9='{:,}'.format(player.cost_of_effort_9), bonus_9='{:,}'.format(player.bonus_9), penalty_9='{:,}'.format(player.penalty_9), net_pay_9='{:,}'.format(player.net_pay_9), effort_10='{:,}'.format(player.effort_10), cost_of_effort_10='{:,}'.format(player.cost_of_effort_10), bonus_10='{:,}'.format(player.bonus_10), penalty_10='{:,}'.format(player.penalty_10), net_pay_10='{:,}'.format(player.net_pay_10), total_points='{:,}'.format(player.total_points), total_comp='{0:.2f}'.format(player.total_comp) ) class PEQ1(Page): form_model = 'player' form_fields = ['contract_fairness', 'risk_attitude', 'outcome_disappointment', 'salary_ownership', 'outcome_happiness', 'narcissism_1', 'narcissism_2', 'narcissism_3', 'narcissism_4', 'narcissism_5', 'narcissism_6', 'narcissism_7', 'narcissism_8', 'narcissism_9', 'peq1_time'] class PEQ3(Page): form_model = 'player' form_fields = ['bis_1', 'bis_2', 'bis_3', 'bis_4', 'bis_5', 'bis_6', 'bis_7', 'bis_8', 'bis_9', 'bis_10', 'bis_11', 'bis_12', 'bis_13', 'bis_14', 'bis_15', 'bis_16', 'bis_17', 'bis_18', 'bis_19', 'bis_20', 'bis_21', 'bis_22', 'bis_23', 'bis_24', 'peq3_time'] class PEQ4(Page): form_model = 'player' form_fields = ['entitlement_1', 'entitlement_2', 'entitlement_3', 'entitlement_4', 'entitlement_5', 'entitlement_6', 'entitlement_7', 'entitlement_8', 'entitlement_9', 'age', 'gender', 'education', 'work_experience', 'country_origin', 'peq4_time'] class ExitResults(Page): @staticmethod def vars_for_template(player): return dict( total_comp='{0:.2f}'.format(player.total_comp) ) page_sequence = [ IC, IC_Decline, DuplicateWorker, GenInstructions, Compensation, KnowledgeCheck, KnowledgeCheckResults, CompensationRep, KnowledgeCheckSub, KnowledgeCheckResults, CompensationRep, KnowledgeCheckSub, KnowledgeCheckResults, CompensationRep, KnowledgeCheckSub, KnowledgeCheckResults, CompensationRep, KnowledgeCheckSub, KnowledgeCheckResults, CompensationRep, KnowledgeCheckSub, KnowledgeCheckResults, CompensationRep, KnowledgeCheckSub, KnowledgeCheckResults, CompensationRep, KnowledgeCheckSub, KnowledgeCheckResults, CompensationRep, KnowledgeCheckSub, KnowledgeCheckResults, CompensationRep, KnowledgeCheckSub, KnowledgeCheckResults, CompensationRep, KnowledgeCheckSub, KnowledgeCheckResults, Period1, Result1, Period2, Result2, Period3, Result3, Period4, Result4, Period5, Result5, Period6, Result6, Period7, Result7, Period8, Result8, Period9, Result9, Period10, Result10, PEQ1, PEQ3, PEQ4, ExitResults ]