from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) author = 'Markus Eyting and Tim Klausmann' doc = """ snack, charity, hypo """ class Constants(BaseConstants): name_in_url = 'coins' players_per_group = None num_rounds = 1 offers = [["Milka Choco Cookies", "Milka Choco Minis"], ["Seebruecke e.V.", "Greenpeace e.V."], ["Lehrstuhl Hiwi", "Werkstudent"] ] class Subsession(BaseSubsession): def creating_session(self): # randomize to treatments import itertools treat = itertools.cycle(['control', 'coin', 'think']) for player in self.get_players(): player.treat = next(treat) class Group(BaseGroup): pass class Player(BasePlayer): Code = models.StringField() treat = models.StringField() offer_1_pre = models.StringField(widget=widgets.HiddenInput(), verbose_name='') offer_2_pre = models.StringField(widget=widgets.HiddenInput(), verbose_name='') snackdecision_pre = models.StringField(blank = True) offer_1 = models.StringField(widget=widgets.HiddenInput(), verbose_name='') offer_2 = models.StringField(widget=widgets.HiddenInput(), verbose_name='') snackdecision = models.StringField(blank = True) charityoffer1_pre = models.StringField(widget=widgets.HiddenInput(), verbose_name='') charityoffer2_pre = models.StringField(widget=widgets.HiddenInput(), verbose_name='') charitydecision_pre = models.StringField(blank = True) charityoffer1 = models.StringField(widget=widgets.HiddenInput(), verbose_name='') charityoffer2 = models.StringField(widget=widgets.HiddenInput(), verbose_name='') charitydecision = models.StringField(blank = True) joboffer1_pre = models.StringField(widget=widgets.HiddenInput(), verbose_name='') joboffer2_pre = models.StringField(widget=widgets.HiddenInput(), verbose_name='') jobdecision_pre = models.StringField(blank = True) joboffer1 = models.StringField(widget=widgets.HiddenInput(), verbose_name='') joboffer2 = models.StringField(widget=widgets.HiddenInput(), verbose_name='') jobdecision = models.StringField(blank = True) happysnacks = models.IntegerField( choices=[1, 2, 3, 4, 5, 6, 7], label='Wie glücklich sind Sie mit Ihrer Entscheidung zwischen den beiden Snacks?', widget=widgets.RadioSelectHorizontal ) happycharity = models.IntegerField( choices=[1, 2, 3, 4, 5, 6, 7], label='Wie glücklich sind Sie mit Ihrer Entscheidung bzgl. der Spende die wir für Sie leisten?', # hier "-wahl" oder nicht, glück zum outcome oder der decision? widget=widgets.RadioSelectHorizontal ) happyjobs = models.IntegerField( choices=[1, 2, 3, 4, 5, 6, 7], label='Wie glücklich sind Sie mit Ihrer Entscheidung bzgl. Ihres hypothetischen neuen Jobs?', widget=widgets.RadioSelectHorizontal ) diffsnacks = models.IntegerField( choices=[1, 2, 3, 4, 5, 6, 7], label='Wie schwer fiel Ihnen die Snack-Wahl?', widget=widgets.RadioSelectHorizontal ) diffcharity = models.IntegerField( choices=[1, 2, 3, 4, 5, 6, 7], label='Wie schwer fiel Ihnen die Wahl zwischen den beiden einer gemeinnützigen Organisation?', widget=widgets.RadioSelectHorizontal ) diffjobs = models.IntegerField( choices=[1, 2, 3, 4, 5, 6, 7], label='Wie schwer fiel Ihnen die Job-Wahl?', widget=widgets.RadioSelectHorizontal )