from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) import random class Constants(BaseConstants): name_in_url = 'surveyB' players_per_group = 2 num_rounds = 1 class Subsession(BaseSubsession): def creating_session(self): for p in self.get_players(): p1_list = [p.p1_1, p.p1_2, p.p1_3] random.shuffle(p1_list) p.p1_1 = p1_list[0] p.p1_2 = p1_list[1] p.p1_3 = p1_list[2] p2_list = [p.p2_1, p.p2_2, p.p2_3] random.shuffle(p2_list) p.p2_1 = p2_list[0] p.p2_2 = p2_list[1] p.p2_3 = p2_list[2] p3_list = [p.p3_1, p.p3_2, p.p3_3] random.shuffle(p3_list) p.p3_1 = p3_list[0] p.p3_2 = p3_list[1] p.p3_3 = p3_list[2] p4_list = [p.p4_1, p.p4_2, p.p4_3] random.shuffle(p4_list) p.p4_1 = p4_list[0] p.p4_2 = p4_list[1] p.p4_3 = p4_list[2] class Group(BaseGroup): pass class Player(BasePlayer): age = models.IntegerField(label='あなたの年齢を教えてください。答えたくない場合は0と記入してください。') gender = models.StringField( choices=['男性', '女性', '答えたくない'], label='あなたの性別を教えてください。', widget=widgets.RadioSelect ) one = models.StringField( choices=['A', 'B', 'C'], label='A~Cからひとつ選んでください。', widget=widgets.RadioSelect ) two = models.StringField( choices=['A', 'B', 'C'], label='A~Cからひとつ選んでください。', widget=widgets.RadioSelect ) three = models.StringField( choices=['A', 'B', 'C'], label='A~Cからひとつ選んでください。', widget=widgets.RadioSelect ) four = models.StringField( choices=['A', 'B', 'C'], label='A~Cからひとつ選んでください。', widget=widgets.RadioSelect ) Q1 = models.StringField( choices=['A', 'B', 'C'], label='いちばん印象に残っている商品はどれですか。', widget=widgets.RadioSelect ) Q2 = models.StringField( choices=['1', '2', '3', '4', '5'], label='Aの商品に対する好感度を教えてください。1がより低度、5がより高度を表します。', widget=widgets.RadioSelect ) Q3 = models.StringField( choices=['1', '2', '3', '4', '5'], label='Bの商品に対する好感度を教えてください。1がより低度、5がより高度を表します。', widget=widgets.RadioSelect ) Q4 = models.StringField( choices=['1', '2', '3', '4', '5'], label='Cの商品に対する好感度を教えてください。1がより低度、5がより高度を表します。', widget=widgets.RadioSelect ) Q5 = models.StringField( choices=['A', 'B', 'C'], label='いちばん印象に残っている商品はどれですか。', widget=widgets.RadioSelect ) Q6 = models.StringField( choices=['1', '2', '3', '4', '5'], label='Aの商品に対する好感度を教えてください。1がより低度、5がより高度を表します。', widget=widgets.RadioSelect ) Q7 = models.StringField( choices=['1', '2', '3', '4', '5'], label='Bの商品に対する好感度を教えてください。1がより低度、5がより高度を表します。', widget=widgets.RadioSelect ) Q8 = models.StringField( choices=['1', '2', '3', '4', '5'], label='Cの商品に対する好感度を教えてください。1がより低度、5がより高度を表します。', widget=widgets.RadioSelect ) Question = models.StringField( choices=['ブランド', '価格', '性能'], label='あなたが商品を選ぶとき、最も重視するものは次のうちどれですか。', widget=widgets.RadioSelect ) p1_1 = models.StringField(initial='/static/survey2/product1_1.png') p1_2 = models.StringField(initial='/static/survey2/product1_2.png') p1_3 = models.StringField(initial='/static/survey2/product1_3.png') p2_1 = models.StringField(initial='/static/survey2/product2_1.png') p2_2 = models.StringField(initial='/static/survey2/product2_2.png') p2_3 = models.StringField(initial='/static/survey2/product2_3.png') p3_1 = models.StringField(initial='/static/survey2/product3_1.png') p3_2 = models.StringField(initial='/static/survey2/product3_2.PNG') p3_3 = models.StringField(initial='/static/survey2/product3_3.PNG') p4_1 = models.StringField(initial='/static/survey2/product4_1.PNG') p4_2 = models.StringField(initial='/static/survey2/product4_2.PNG') p4_3 = models.StringField(initial='/static/survey2/product4_3.PNG') # 画像シャッフル用関数