from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) doc = '' class C(BaseConstants): NAME_IN_URL = 'Survey_court_israel' PLAYERS_PER_GROUP = None NUM_ROUNDS = 1 class Subsession(BaseSubsession): def creating_session(self): import random for player in self.get_players(): player.specific_decision = random.choice( ['equal_jew', 'equal_arab', 'speech_relig', 'speech_secular', 'Reasonableness_rigth', 'Reasonableness_left', 'CG']) print(self.session.config['name']) if self.session.config['name']=='IsraelCourtCombined' : conf=random.choice(['std','IsraelCourtProspective']) if conf == 'IsraelCourtProspective': player.specific_decision = 'IsraelCourtProspective' print(f'change to {player.specific_decision}') class Group(BaseGroup): pass def double_list(l): return [[i,i] for i in l ] choice_support_list = ['1-strongly support', '2-somewhat support', '3-slightly support', '4-slightly oppose', '5-somewhat oppose','6-strongly oppose'] choices_list={'court_decision':['1-Generally to the left','2-Generally to the right','3-Case by case basis' ], 'equal_treatment_arab':choice_support_list } class Player(BasePlayer): choice_past_list = (['1-benefited a great deal','1-benefited a great deal'], ['2-benefited somewhat','2-benefited somewhat'], ['3-benefited slightly','3-benefited slightly'], ['4-not really influenced','4-not really influenced'], ['5-been hurt slightly','5-been hurt slightly'], ['6-been hurt somewhat','6-been hurt somewhat'], ['7-been hurt a great deal','7-been hurt a great deal']) court_decision = models.StringField(choices=double_list(choices_list['court_decision']) , label='Judging by its recent decisions, do you think the Israeli Supreme Court is generally to the left, generally to the right, or is it making decisions more on a case-by-case basis?', widget=widgets.RadioSelect) equal_treatment_arab = models.StringField(choices=double_list(choices_list['equal_treatment_arab']),label='Arab Israelis',widget=widgets.RadioSelect) equal_treatment_immigrant = models.StringField(choices=double_list(choice_support_list), label='Immigrants',widget=widgets.RadioSelect) equal_treatment_women = models.StringField(choices=double_list(choice_support_list), label='Women',widget=widgets.RadioSelect) equal_treatment_lgbt = models.StringField(choices=double_list(choice_support_list), label='Individuals in same sex relationship',widget=widgets.RadioSelect) equal_treatment_relig = models.StringField(choices=double_list(choice_support_list), label='Religious and secular jews',widget=widgets.RadioSelect) specific_decision_quality=models.StringField(choices=double_list(choice_support_list),label='On the following scale of 1-6 please indicate what you think of this decision ',default='None',widget=widgets.RadioSelect) specific_decision=models.StringField() influence_society = models.StringField(choices=choice_past_list, label='In general, how do you think SOCIETY has been influenced by decisions of the Supreme Court? ', widget=widgets.RadioSelect) influence_like_you = models.StringField(choices=choice_past_list, label='Specifically, how do you think PEOPLE LIKE YOU have been influenced by decisions of the Israeli Supreme Court? ', widget=widgets.RadioSelect) def my_function(player: Player): pass