from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) import random import itertools from random import shuffle # author = 'Dan Way' doc = """ Cost Allocation Task """ class Constants(BaseConstants): name_in_url = 'BSW2_Task_2' players_per_group = 2 num_rounds = 1 class Subsession(BaseSubsession): def creating_session(self): if 'condition' in self.session.config: for g in self.get_groups(): p1 = g.get_player_by_id(1) p2 = g.get_player_by_id(2) p1.participant.vars['condition'] = self.session.config['condition'] p2.participant.vars['condition'] = self.session.config['condition'] p1.participant.vars['counterbal'] = 1 # Counterbalance in case we need it p2.participant.vars['counterbal'] = 2 else: conditions = itertools.cycle([1, 2]) counterbal = itertools.cycle([1, 2]) for g in self.get_groups(): # g.condition = next(conditions) p1 = g.get_player_by_id(1) p2 = g.get_player_by_id(2) p1.participant.vars['condition'] = next(conditions) p2.participant.vars['condition'] = p1.participant.vars['condition'] p1.participant.vars['counterbal'] = next(counterbal) p2.participant.vars['counterbal'] = next(counterbal) def group_by_arrival_time_method(self, waiting_players): # No real 'role' that needs to be matched separately, so just group by time mgrs = [p for p in waiting_players] if len(mgrs) > 1: return [mgrs[0], mgrs[1]] class Group(BaseGroup): pass class Player(BasePlayer): def get_partner(self): return self.get_others_in_group()[0] condition = models.IntegerField() partner_id = models.IntegerField() pay_period = models.IntegerField() individual_project_1 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) joint_project_1 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) partner_individual_1 = models.CharField() partner_joint_1 = models.CharField() joint_revenue_1 = models.IntegerField() individual_revenue_1 = models.IntegerField() total_revenue_1 = models.IntegerField() partner_joint_rev_1 = models.IntegerField() partner_ind_rev_1 = models.IntegerField() partner_tot_rev_1 = models.IntegerField() rev_portion_1 = models.IntegerField() partner_rev_portion_1 = models.IntegerField() cost_1 = models.IntegerField() partner_cost_1 = models.IntegerField() profit_1 = models.IntegerField(initial=0) partner_profit_1 = models.IntegerField(initial=0) individual_project_2 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) joint_project_2 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) partner_individual_2 = models.CharField() partner_joint_2 = models.CharField() joint_revenue_2 = models.IntegerField() individual_revenue_2 = models.IntegerField() total_revenue_2 = models.IntegerField() partner_joint_rev_2 = models.IntegerField() partner_ind_rev_2 = models.IntegerField() partner_tot_rev_2 = models.IntegerField() rev_portion_2 = models.IntegerField() partner_rev_portion_2 = models.IntegerField() cost_2 = models.IntegerField() partner_cost_2 = models.IntegerField() profit_2 = models.IntegerField(initial=0) partner_profit_2 = models.IntegerField(initial=0) individual_project_3 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) joint_project_3 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) partner_individual_3 = models.CharField() partner_joint_3 = models.CharField() joint_revenue_3 = models.IntegerField() individual_revenue_3 = models.IntegerField() total_revenue_3 = models.IntegerField() partner_joint_rev_3 = models.IntegerField() partner_ind_rev_3 = models.IntegerField() partner_tot_rev_3 = models.IntegerField() rev_portion_3 = models.IntegerField() partner_rev_portion_3 = models.IntegerField() cost_3 = models.IntegerField() partner_cost_3 = models.IntegerField() profit_3 = models.IntegerField(initial=0) partner_profit_3 = models.IntegerField(initial=0) individual_project_4 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) joint_project_4 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) partner_individual_4 = models.CharField() partner_joint_4 = models.CharField() joint_revenue_4 = models.IntegerField() individual_revenue_4 = models.IntegerField() total_revenue_4 = models.IntegerField() partner_joint_rev_4 = models.IntegerField() partner_ind_rev_4 = models.IntegerField() partner_tot_rev_4 = models.IntegerField() rev_portion_4 = models.IntegerField() partner_rev_portion_4 = models.IntegerField() cost_4 = models.IntegerField() partner_cost_4 = models.IntegerField() profit_4 = models.IntegerField(initial=0) partner_profit_4 = models.IntegerField(initial=0) individual_project_5 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) joint_project_5 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) partner_individual_5 = models.CharField() partner_joint_5 = models.CharField() joint_revenue_5 = models.IntegerField() individual_revenue_5 = models.IntegerField() total_revenue_5 = models.IntegerField() partner_joint_rev_5 = models.IntegerField() partner_ind_rev_5 = models.IntegerField() partner_tot_rev_5 = models.IntegerField() rev_portion_5 = models.IntegerField() partner_rev_portion_5 = models.IntegerField() cost_5 = models.IntegerField() partner_cost_5 = models.IntegerField() profit_5 = models.IntegerField(initial=0) partner_profit_5 = models.IntegerField(initial=0) individual_project_6 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) joint_project_6 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) partner_individual_6 = models.CharField() partner_joint_6 = models.CharField() joint_revenue_6 = models.IntegerField() individual_revenue_6 = models.IntegerField() total_revenue_6 = models.IntegerField() partner_joint_rev_6 = models.IntegerField() partner_ind_rev_6 = models.IntegerField() partner_tot_rev_6 = models.IntegerField() rev_portion_6 = models.IntegerField() partner_rev_portion_6 = models.IntegerField() cost_6 = models.IntegerField() partner_cost_6 = models.IntegerField() profit_6 = models.IntegerField(initial=0) partner_profit_6 = models.IntegerField(initial=0) individual_project_7 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) joint_project_7 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) partner_individual_7 = models.CharField() partner_joint_7 = models.CharField() joint_revenue_7 = models.IntegerField() individual_revenue_7 = models.IntegerField() total_revenue_7 = models.IntegerField() partner_joint_rev_7 = models.IntegerField() partner_ind_rev_7 = models.IntegerField() partner_tot_rev_7 = models.IntegerField() rev_portion_7 = models.IntegerField() partner_rev_portion_7 = models.IntegerField() cost_7 = models.IntegerField() partner_cost_7 = models.IntegerField() profit_7 = models.IntegerField(initial=0) partner_profit_7 = models.IntegerField(initial=0) individual_project_8 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) joint_project_8 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) partner_individual_8 = models.CharField() partner_joint_8 = models.CharField() joint_revenue_8 = models.IntegerField() individual_revenue_8 = models.IntegerField() total_revenue_8 = models.IntegerField() partner_joint_rev_8 = models.IntegerField() partner_ind_rev_8 = models.IntegerField() partner_tot_rev_8 = models.IntegerField() rev_portion_8 = models.IntegerField() partner_rev_portion_8 = models.IntegerField() cost_8 = models.IntegerField() partner_cost_8 = models.IntegerField() profit_8 = models.IntegerField(initial=0) partner_profit_8 = models.IntegerField(initial=0) individual_project_9 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) joint_project_9 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) partner_individual_9 = models.CharField() partner_joint_9 = models.CharField() joint_revenue_9 = models.IntegerField() individual_revenue_9 = models.IntegerField() total_revenue_9 = models.IntegerField() partner_joint_rev_9 = models.IntegerField() partner_ind_rev_9 = models.IntegerField() partner_tot_rev_9 = models.IntegerField() rev_portion_9 = models.IntegerField() partner_rev_portion_9 = models.IntegerField() cost_9 = models.IntegerField() partner_cost_9 = models.IntegerField() profit_9 = models.IntegerField(initial=0) partner_profit_9 = models.IntegerField(initial=0) individual_project_10 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) joint_project_10 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) partner_individual_10 = models.CharField() partner_joint_10 = models.CharField() joint_revenue_10 = models.IntegerField() individual_revenue_10 = models.IntegerField() total_revenue_10 = models.IntegerField() partner_joint_rev_10 = models.IntegerField() partner_ind_rev_10 = models.IntegerField() partner_tot_rev_10 = models.IntegerField() rev_portion_10 = models.IntegerField() partner_rev_portion_10 = models.IntegerField() cost_10 = models.IntegerField() partner_cost_10 = models.IntegerField() profit_10 = models.IntegerField(initial=0) partner_profit_10 = models.IntegerField(initial=0) individual_project_11 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) joint_project_11 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) partner_individual_11 = models.CharField() partner_joint_11 = models.CharField() joint_revenue_11 = models.IntegerField() individual_revenue_11 = models.IntegerField() total_revenue_11 = models.IntegerField() partner_joint_rev_11 = models.IntegerField() partner_ind_rev_11 = models.IntegerField() partner_tot_rev_11 = models.IntegerField() rev_portion_11 = models.IntegerField() partner_rev_portion_11 = models.IntegerField() cost_11 = models.IntegerField() partner_cost_11 = models.IntegerField() profit_11 = models.IntegerField(initial=0) partner_profit_11 = models.IntegerField(initial=0) individual_project_12 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) joint_project_12 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) partner_individual_12 = models.CharField() partner_joint_12 = models.CharField() joint_revenue_12 = models.IntegerField() individual_revenue_12 = models.IntegerField() total_revenue_12 = models.IntegerField() partner_joint_rev_12 = models.IntegerField() partner_ind_rev_12 = models.IntegerField() partner_tot_rev_12 = models.IntegerField() rev_portion_12 = models.IntegerField() partner_rev_portion_12 = models.IntegerField() cost_12 = models.IntegerField() partner_cost_12 = models.IntegerField() profit_12 = models.IntegerField(initial=0) partner_profit_12 = models.IntegerField(initial=0) individual_project_13 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) joint_project_13 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) partner_individual_13 = models.CharField() partner_joint_13 = models.CharField() joint_revenue_13 = models.IntegerField() individual_revenue_13 = models.IntegerField() total_revenue_13 = models.IntegerField() partner_joint_rev_13 = models.IntegerField() partner_ind_rev_13 = models.IntegerField() partner_tot_rev_13 = models.IntegerField() rev_portion_13 = models.IntegerField() partner_rev_portion_13 = models.IntegerField() cost_13 = models.IntegerField() partner_cost_13 = models.IntegerField() profit_13 = models.IntegerField(initial=0) partner_profit_13 = models.IntegerField(initial=0) individual_project_14 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) joint_project_14 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) partner_individual_14 = models.CharField() partner_joint_14 = models.CharField() joint_revenue_14 = models.IntegerField() individual_revenue_14 = models.IntegerField() total_revenue_14 = models.IntegerField() partner_joint_rev_14 = models.IntegerField() partner_ind_rev_14 = models.IntegerField() partner_tot_rev_14 = models.IntegerField() rev_portion_14 = models.IntegerField() partner_rev_portion_14 = models.IntegerField() cost_14 = models.IntegerField() partner_cost_14 = models.IntegerField() profit_14 = models.IntegerField(initial=0) partner_profit_14 = models.IntegerField(initial=0) individual_project_15 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) joint_project_15 = models.CharField(initial=None, choices=['Low', 'High'], verbose_name='', widget=widgets.RadioSelect()) partner_individual_15 = models.CharField() partner_joint_15 = models.CharField() joint_revenue_15 = models.IntegerField() individual_revenue_15 = models.IntegerField() total_revenue_15 = models.IntegerField() partner_joint_rev_15 = models.IntegerField() partner_ind_rev_15 = models.IntegerField() partner_tot_rev_15 = models.IntegerField() rev_portion_15 = models.IntegerField() partner_rev_portion_15 = models.IntegerField() cost_15 = models.IntegerField() partner_cost_15 = models.IntegerField() profit_15 = models.IntegerField(initial=0) partner_profit_15 = models.IntegerField(initial=0) total_wait_time = models.IntegerField() peq_group_attachment = models.CharField(initial=None, choices=[('0', '0 = Strongly disagree.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Neither agree nor disagree.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Strongly agree.')], verbose_name='') peq_group_exit = models.CharField(initial=None, choices=[('0', '0 = Strongly disagree.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Neither agree nor disagree.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Strongly agree.')], verbose_name='') peq_group_member_similarity = models.CharField(initial=None, choices=[('0', '0 = Strongly disagree.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Neither agree nor disagree.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Strongly agree.')], verbose_name='') peq_group_salience = models.CharField(initial=None, choices=[('0', '0 = Strongly disagree.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Neither agree nor disagree.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Strongly agree.')], verbose_name='') peq_relational_identification = models.CharField(initial=None, choices=[('0', '0 = Strongly disagree.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Neither agree nor disagree.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Strongly agree.')], verbose_name='') peq_group_member_success = models.CharField(initial=None, choices=[('0', '0 = Strongly disagree.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Neither agree nor disagree.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Strongly agree.')], verbose_name='') peq_choice_difficulty = models.CharField(initial=None, choices=[('0', '0 = Not at all - there was a clear "best" choice for me.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Somewhat difficult.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Extremely difficult - there was NO clear "best" choice for me.')], verbose_name='') peq_expected_bonus = models.FloatField(verbose_name='', min=0) peq_compensation_satisfaction = models.CharField(initial=None, choices=[('0', '0 = Not at all satisfied.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Somewhat satisfied.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Very satisfied.')], verbose_name='') peq_allocation_fairness = models.CharField(initial=None, choices=[('0', '0 = Not fair at all.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Somewhat fair.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Extremely fair.')], verbose_name='') peq_perceived_control = models.CharField(initial=None, choices=[('0', '0 = No control at all.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = A fair amount of control.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = A great deal of control.')], verbose_name='') kc2_1 = models.CharField(initial=None, choices=['True', 'False'], verbose_name='', widget=widgets.RadioSelect()) kc2_2 = models.CharField(initial=None, choices=['True', 'False'], verbose_name='', widget=widgets.RadioSelect()) kc2_3 = models.CharField(initial=None, choices=['True', 'False'], verbose_name='', widget=widgets.RadioSelect()) kc2_4 = models.CharField(initial=None, choices=[('a', 'a. 1'), ('b', 'b. 2'), ('c', 'c. 3'), ('d', 'd. 4')], verbose_name='', widget=widgets.RadioSelect()) tokens_kept = models.IntegerField(verbose_name='') tokens_contributed = models.IntegerField(verbose_name='') decision_time = models.CharField() partner_tokens_kept = models.IntegerField() partner_tokens_contributed = models.IntegerField() partner_decision_done = models.IntegerField(initial=0) s1_pay_profit = models.IntegerField() coop_comp = models.CharField() pg_comp = models.CharField() total_bonus_comp = models.CharField() peq_pg_choice_difficulty = models.CharField(initial=None, choices=[('0', '0 = Not at all - there was a clear "best" choice for me.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Somewhat difficult - both options seemed like an equally good choice.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Extremely difficult - the "best" choice was not clear to me.')], verbose_name='') peq_importance_group_pay = models.CharField(initial=None, choices=[('0', '0 = Not at all important.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Somewhat important.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Very important.')], verbose_name='') peq_importance_individual_pay = models.CharField(initial=None, choices=[('0', '0 = Not at all important.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Somewhat important.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Very important.')], verbose_name='') peq_importance_guilt_avoidance = models.CharField(initial=None, choices=[('0', '0 = Not at all important.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Somewhat important.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Very important.')], verbose_name='') peq_importance_group_letdown = models.CharField(initial=None, choices=[('0', '0 = Not at all important.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Somewhat important.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Very important.')], verbose_name='') peq_importance_others_preference = models.CharField(initial=None, choices=[('0', '0 = Not at all important.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Somewhat important.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Very important.')], verbose_name='') peq_pg_expected_bonus = models.FloatField(verbose_name='', min=0) peq_pg_compensation_satisfaction = models.CharField(initial=None, choices=[('0', '0 = Not at all satisfied.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Very satisfied.')], verbose_name='') peq_open_ended = models.TextField(verbose_name = '') peq_expected_cooperation = models.CharField(initial=None, choices=[('0', '0 = I did not expect them to contribute any tokens to ' 'the group pot.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = I expected them to contribute some tokens to the ' 'group pot.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = I expected them to contribute all of their tokens ' 'to the group pot.')], verbose_name='') peq_turk_income = models.CharField(initial=None, choices=[('0', '0 = My work on MTurk is for fun or interest only - I ' 'don`t rely on it for income.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = My work on MTurk supplements my household`s' ' primary income.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = My work on MTurk generates a significant' ' portion of my household`s total income.')], verbose_name='') peq_risk_attitude = models.CharField(initial=None, choices=[('0', '0 = I`m not at all willing to take risks.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = I`m somewhat willing to take risks.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = I`m very willing to take risks.')], verbose_name='') peq_others_risk = models.CharField(initial=None, choices=[('0', '0 = Others are far less willing to take risks.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Others are equally willing to take risks.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Others are far more willing to take risks.')], verbose_name='') peq_affect_excited = models.CharField(initial=None, choices=[('0', '0 = Not at all.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Moderately.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Extremely.')], verbose_name='', widget=widgets.RadioSelectHorizontal()) peq_affect_upset = models.CharField(initial=None, choices=[('0', '0 = Not at all.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Moderately.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Extremely.')], verbose_name='', widget=widgets.RadioSelectHorizontal()) peq_affect_proud = models.CharField(initial=None, choices=[('0', '0 = Not at all.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Moderately.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Extremely.')], verbose_name='', widget=widgets.RadioSelectHorizontal()) peq_affect_irritable = models.CharField(initial=None, choices=[('0', '0 = Not at all.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Moderately.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Extremely.')], verbose_name='', widget=widgets.RadioSelectHorizontal()) peq_affect_inspired = models.CharField(initial=None, choices=[('0', '0 = Not at all.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Moderately.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Extremely.')], verbose_name='', widget=widgets.RadioSelectHorizontal()) peq_affect_nervous = models.CharField(initial=None, choices=[('0', '0 = Not at all.'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5 = Moderately.'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10 = Extremely.')], verbose_name='', widget=widgets.RadioSelectHorizontal()) peq_gender = models.CharField(initial=None, choices=[('1', 'Male'), ('2', 'Female')], verbose_name='', widget=widgets.RadioSelect()) peq_age_range = models.CharField(initial=None, choices=[('1', '18-24'), ('2', '25-34'), ('3', '35-44'), ('4', '45-54'), ('5', '55-64'), ('6', '65 and older')], verbose_name='') peq_work_experience = models.IntegerField(verbose_name='', min=0) peq_education = models.CharField(initial=None, choices=[('1', 'Less than high school'), ('2', 'High school graduate'), ('3', 'Some college'), ('4', '2 year degree'), ('5', '4 year degree'), ('6', 'Graduate degree')], verbose_name='')