from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) import numpy as np from otreeutils.surveys import create_player_model_for_survey, generate_likert_field, generate_likert_table author = 'Huanren Zhang' doc = """ survey questions """ class Constants(BaseConstants): name_in_url = 'wlsbax' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): def creating_session(self): for p in self.get_players(): p.treatment = np.random.choice(['H','L','both']) class Group(BaseGroup): pass class Player(BasePlayer): treatment = models.StringField() WTP_H = models.PositiveIntegerField(null=True,blank=True) WTP_L = models.PositiveIntegerField(null=True,blank=True) def WTP_H_error_message(self,value): if (self.treatment!='L') and (value is None): return "You must input a value." def WTP_L_error_message(self,value): if (self.treatment!='H') and (value is None): return "You must input a value."