from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) import random doc = '\n Survey of demographics, lying aversion and trust attitudes\n' class Constants(BaseConstants): name_in_url = 'demographics' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): lying_low = models.IntegerField(choices=[50, 100], widget=widgets.RadioSelectHorizontal) lying_high = models.IntegerField(choices=[50, 100], widget=widgets.RadioSelectHorizontal) draw = models.StringField() trust_sender = models.StringField(choices=['More or less agree', 'More or less disagree'], widget=widgets.RadioSelect) trust_receiver = models.StringField(choices=['More or less agree', 'More or less disagree'], widget=widgets.RadioSelect) age = models.IntegerField(min=18) study = models.StringField( choices=['Economics', 'Social Sciences (Non-economics)', 'Natural Sciences', 'Humanities', 'Applied Sciences', 'Other'], widget=widgets.RadioSelect) gender = models.StringField(choices=['Male', 'Female', 'Prefer not to answer'], widget=widgets.RadioSelect) def set_payoff(self): self.draw = random.choice(['low', 'high']) if self.draw == 'low': self.payoff = 50 + self.lying_low else: self.payoff = 50 + self.lying_high