from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) import random class Constants(BaseConstants): name_in_url = 'SLM' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): def creating_session(self): import itertools treatment = itertools.cycle(['LabelOff', 'LabelOn']) updown = ['up', 'down'] for p in self.get_players(): p.treatment = next(treatment) for p in self.get_players(): p.stock_price = random.choice(updown) class Group(BaseGroup): pass class Player(BasePlayer): treatment = models.StringField() stock_price = models.StringField() income = models.FloatField() cfs = models.IntegerField( label='', choices=[[1, 'S1'], [2, 'S2'], [3, 'S3'], [4, 'S4']], widget=widgets.RadioSelect, ) cfo = models.IntegerField( label='', choices=[[1, 'S1'], [2, 'S2'], [3, 'S3'], [4, 'S4']], widget=widgets.RadioSelect, ) reason_self = models.StringField(label="") reason_other = models.StringField(label="")