from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) doc = '' class Constants(BaseConstants): name_in_url = 'SRI' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): def creating_session(self): import random # randomize to treatments for player in self.get_players(): player.treatment_id = random.choice(['positive', 'negative']) class Group(BaseGroup): pass class Player(BasePlayer): treatment_id = models.StringField() age = models.IntegerField(max=125, min=5) gender = models.StringField(choices=[['Male', 'Male'], ['Female', 'Female'], ['Other', 'Other']], widget=widgets.RadioSelect) csr1 = models.StringField(choices=[['1', 'Correct'], ['0', 'Incorrect']], widget=widgets.RadioSelect) csr2 = models.StringField(choices=[['1', 'Correct'], ['0', 'Incorrect']], widget=widgets.RadioSelect) csr3 = models.StringField(choices=[['1', 'Correct'], ['0', 'Incorrect']], widget=widgets.RadioSelect) csr4 = models.StringField(choices=[['1', 'Correct'], ['0', 'Incorrect']], widget=widgets.RadioSelect) csr5 = models.StringField(choices=[['1', 'Correct'], ['0', 'Incorrect']], widget=widgets.RadioSelect) short_price = models.CurrencyField(min=0) long_price = models.CurrencyField(min=0) allocation = models.CurrencyField(min=0) q1 = models.IntegerField(choices=[[1, 'Strongly Disagree'], [2, 'Disagree'], [3, 'Slightly Disagree'], [4, 'Neutral'], [5, 'Slightly Agree'], [6, 'Agree'], [7, 'Strongly Agree']], widget=widgets.RadioSelect) q2 = models.IntegerField(choices=[[1, 'Strongly Disagree'], [2, 'Disagree'], [3, 'Slightly Disagree'], [4, 'Neutral'], [5, 'Slightly Agree'], [6, 'Agree'], [7, 'Strongly Agree']], widget=widgets.RadioSelect) q3 = models.IntegerField(choices=[[1, 'Strongly Disagree'], [2, 'Disagree'], [3, 'Slightly Disagree'], [4, 'Neutral'], [5, 'Slightly Agree'], [6, 'Agree'], [7, 'Strongly Agree']], widget=widgets.RadioSelect) q4 = models.IntegerField(choices=[[1, 'Strongly Disagree'], [2, 'Disagree'], [3, 'Slightly Disagree'], [4, 'Neutral'], [5, 'Slightly Agree'], [6, 'Agree'], [7, 'Strongly Agree']], widget=widgets.RadioSelect) q5 = models.IntegerField(choices=[[1, 'Yes'], [0, 'No']], widget=widgets.RadioSelect) q6 = models.IntegerField(choices=[[1, 'Yes'], [0, 'No']], widget=widgets.RadioSelect)