from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) import random import itertools from statistics import median class Subsession(BaseSubsession): def creating_session(self): assert len(self.get_players()) % 6 == 0, 'The number of players should a multiple of 6' if self.round_number == 1: treatment_indicators = itertools.cycle(['no_treatment', 'group_treatment', 'group_treatment']) colours = itertools.cycle(['saffron', 'green']) for p in self.get_players(): p.participant.vars['treatment_indicator'] = next(treatment_indicators) if p.participant.vars['treatment_indicator'] == 'group_treatment': p.participant.vars['colour'] = next(colours) print(p.participant.vars['treatment_indicator'], p.participant.vars['colour']) else: p.participant.vars['colour'] = 'white' print(p.participant.vars['treatment_indicator'], p.participant.vars['colour']) class Constants(BaseConstants): name_in_url = 'survey_v3' players_per_group = None num_rounds = 1 class Group(BaseGroup): pass class Player(BasePlayer): subject_id = models.IntegerField( min=1, max=30, label='Subject ID' ) name = models.StringField(label='What is your name?') def set_all_in_vars(self): self.participant.vars['name'] = self.name