from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) doc = '' class Constants(BaseConstants): name_in_url = 'Experiment' players_per_group = None num_rounds = 1 base_pay = 1 salary = 90 bonus = 50 penalty = 50 class Subsession(BaseSubsession): def active(self): import itertools earnings = itertools.cycle(['High', 'High', 'High', 'High', 'Low']) for p in self.get_players(): p.earning = next(earnings) def inactive(self): import itertools earnings = itertools.cycle(['Low', 'Low', 'Low', 'Low', 'High']) for p in self.get_players(): p.earning = next(earnings) def audit(self): import itertools audits = itertools.cycle(['Yes', 'No']) for p in self.get_players(): p.audit = next(audits) class Group(BaseGroup): pass class Player(BasePlayer): effort = models.IntegerField(choices=[[40, 'More active manager (Personal cost = 40 Lira)'], [10, 'Less active manager (Personal cost = 10 Lira)']], label='Please indicate whether you choose to be a more active or less active manager:', widget=widgets.RadioSelect) effort_string = models.StringField() earning = models.StringField() strategy_low_earning = models.StringField(choices=[['High earnings', 'High earnings'], ['Low earnings', 'Low earnings']], label='Please indicate the amount of earnings you want to report to corporate headquarters:', widget=widgets.RadioSelect) payoff_lira = models.IntegerField() penalty = models.IntegerField(initial=0) bonus = models.IntegerField(initial=0) audit = models.StringField() condition = models.StringField() condition_2 = models.StringField() payoff_condition = models.StringField()