from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) doc = '' class Constants(BaseConstants): name_in_url = 'Introduction' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): def creating_session(self): import itertools treatment_group = itertools.cycle(['yearly_edu', 'yearly', 'quarterly_edu', 'quarterly']) for p in self.get_players(): p.treatment_group = next(treatment_group) class Group(BaseGroup): pass class Player(BasePlayer): timeframe = models.StringField(choices=[['3months', '3 Monate'], ['6months', '6 Monate'], ['12months', '12 Monate'], ['24months', '24 Monate']], widget=widgets.RadioSelect) portfolio_growth = models.StringField(choices=[['likemarket', 'Entsprechend der Marktperformance der nächsten Periode'], ['zeropercent', '0 %']], widget=widgets.RadioSelect) cash_growth = models.StringField(choices=[['likemarket', 'Entsprechend der Marktperformance der nächsten Periode'], ['zeropercent', '0 %']], widget=widgets.RadioSelect) final_payout = models.StringField(choices=[['20', '20 € Amazon Gutschein'], ['40', '40 € Amazon Gutschein'], ['depends', '20, 30 oder 40€ Amazon Gutschein in Abhängigkeit des Endwert meines Kapitals']], widget=widgets.RadioSelect) first_round = models.StringField(choices=[['invested', 'Ich bin mit meinem Startkapital bereits in den Markt investiert'], ['not_invested', 'Ich bin mit meinem Startkapital nicht in den Markt investiert']], widget=widgets.RadioSelect) age = models.IntegerField(choices=[[36, '18 bis 36 Jahre'], [47, '37 bis 47 Jahre'], [59, '48 bis 59 Jahre'], [100, 'Älter als 59 Jahre'], [0, 'Das möchte ich nicht beantworten']]) gender = models.StringField(choices=[['male', 'Männlich'], ['female', 'Weiblich'], ['diverse', 'Divers'], ['0', 'Das möchte ich nicht beantworten']]) loss_tolerance = models.IntegerField(choices=[[10, '10 %'], [20, '20 %'], [30, '30 %'], [40, '40 %'], [50, '50 %'], [60, 'Mehr als 50 %'], [0, 'Das möchte ich nicht beantworten']]) advisor = models.BooleanField(choices=[[True, 'Ja'], [False, 'Nein']], widget=widgets.RadioSelectHorizontal) wealth_manager = models.BooleanField(choices=[[True, 'Ja'], [False, 'Nein']], widget=widgets.RadioSelectHorizontal) online_broker = models.BooleanField(choices=[[True, 'Ja'], [False, 'Nein']], widget=widgets.RadioSelectHorizontal) net_monthly_income = models.IntegerField(choices=[[2500, '0 bis 2.500€'], [4000, '2.501 bis 4.000€'], [5500, '4.001 bis 5.500€'], [8000, 'Mehr als 5.500€'], [0, 'Das möchte ich nicht beantworten']]) available_wealth = models.IntegerField(choices=[[20000, '0 bis 20.000€'], [50000, '20.001 bis 50.000€'], [150000, '50.001 bis. 150.000€'], [500000, 'Mehr als 150.000€'], [0, 'Das möchte ich nicht beantworten']]) treatment_group = models.StringField()