from otree.api import * import random c = Currency doc = """ 湖师大教科院心理系 YanLab实验 """ class Constants(BaseConstants): name_in_url = 'my_simple_survey' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass # 五点量表计分 def make_q(label): return models.IntegerField(label=label, choices=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], widget=widgets.RadioSelectHorizontal) def make_word(label): return models.StringField(label=label) class Player(BasePlayer): age = models.IntegerField(label='请输入你的年龄:') gender = models.IntegerField(label='请输入你的性别:', choices=[[1, '男'], [2, '女']]) bank = models.StringField(label='如需支付被试费,请输入你的支付宝账号:') q1_H = make_q('1.你认为材料呈现的是社会阶梯中哪一级人群的生活?(1代表社会底层,10代表社会顶层)') q2_H = make_word('2.请用三个词语描述处于该社会地位的人群的生活') q3_H = make_q('3.与处于该社会地位的人相比,你认为自己在梯子的什么位置?(1代表社会底层,10代表社会顶层)') q4_H = make_q('4.在刚才比较的过程中,你感觉自己是有地位,富有的。(1代表无地位贫穷,10代表有地位富有)') q1_C = make_q('1.你认为你处于社会阶梯中的哪一级?(1代表社会底层,10代表社会顶层)') q2_C = make_word('2.请用三个词语描述你所处社会地位的人群的生活') q3_C = make_q('3.你感觉自己是有地位,富有的。(1代表无地位贫穷,10代表有地位富有)') q1_L = make_q('1.你认为材料呈现的是社会阶梯中哪一级人群的生活?(1代表社会底层,10代表社会顶层)') q2_L = make_word('2.请用三个词语描述处于该社会地位的人群的生活') q3_L = make_q('3.与处于该社会地位的人相比,你认为自己在梯子的什么位置?(1代表社会底层,10代表社会顶层)') q4_L = make_q('4.在刚才比较的过程中,你感觉自己是有地位,富有的。(1代表无地位贫穷,10代表有地位富有)') zShop1 = models.StringField(label='(1)你需要自费预定酒店,短期入住,你会选择哪一种呢?', choices=[[1, '699元豪华酒店(2米大床江景房,2人餐食,面积50-60㎡)'], [2, '198元快捷连锁酒店(1.8米大床房,无餐食,面积30㎡) 已满,勿选'], [3, '80元快捷宾馆(1.5米床房,无餐食,面积15㎡)']], widget=widgets.RadioSelect) zShop2 = models.StringField(label='(2)你需要自费购买笔记本电脑,你会选择哪一种呢?', choices=[[1, '14999元(第十代Intel i9处理器,16GB内存,GTX 1660显卡)'], [2, '7999元(第十代Intel i7处理器,8GB内存,4G Intel核心显卡) 缺货,勿选'], [3, '3599元(第十代Intel i5处理器,4GB内存,NVIDIA显卡)']], widget=widgets.RadioSelect) zShop3 = models.StringField(label='(3)你需要自费预约打车,短途出行,你会选择哪一种呢?', choices=[[1, '80元专车出行(提供茶水服务,提前等候,豪华宝马轿车)'], [2, '45元快车出行(不提供茶水服务,提前等候,舒适型丰田轿车) 暂无,勿选'], [3, '15元拼车出行(不提供茶水服务,不提前等候,经济型大众轿车)']], widget=widgets.RadioSelect) zShop4 = models.StringField(label='(4)你需要自费购买台灯,你会选择哪一种呢?', choices=[[1, '129元(五档调光,可用200小时,可360度灵活转动)'], [2, '58元(三档调光,可用40小时,可180度转动) 缺货,勿选'], [3, '19元(一档调光,可用10小时,不可转动)']], widget=widgets.RadioSelect) zShop5 = models.StringField(label='(5)你需要自费购买演唱会门票,你会选择哪一种呢?', choices=[[1, '1600元(内场票,座位间距大,提供茶水)'], [2, '700元(中场票,座位间距小,提供茶水) 已满,勿选'], [3, '380元(外场票,座位间距小,不提供茶水)']], widget=widgets.RadioSelect) zShop6 = models.StringField(label='(6)你需要自费购买键盘,你会选择哪一种呢?', choices=[[1, '1299元(茶轴,可定制单键RGB灯效,104键)'], [2, '799元(青轴,RGB背光,84键) 缺货,勿选'], [3, '159元(黑轴,无背光,68键)']], widget=widgets.RadioSelect) zShop7 = models.StringField(label='(7)你需要自费预定酒店,长期入住,你会选择哪一种呢?', choices=[[1, '699元豪华酒店(2米大床江景房,2人餐食,面积50-60㎡)'], [2, '198元快捷连锁酒店(1.8米大床房,无餐食,面积30㎡) 已满,勿选'], [3, '80元快捷宾馆(1.5米床房,无餐食,面积15㎡)']], widget=widgets.RadioSelect) zShop8 = models.StringField(label='(8)你需要自费购买落地灯,你会选择哪一种呢?', choices=[[1, '288元(可调节七彩灯光,可连接蓝牙播放音乐,可声控开关)'], [2, '158元(可调节三色灯光,可连接蓝牙播放音乐,无声控开关) 缺货,勿选'], [3, '69元(白光,不可连接蓝牙播放音乐,无声控开关)']], widget=widgets.RadioSelect) zShop9 = models.StringField(label='(9)你需要自费预约打车,长途出行,你会选择哪一种呢?', choices=[[1, '80元专车出行(提供茶水服务,提前等候,豪华宝马轿车)'], [2, '45元快车出行(不提供茶水服务,提前等候,舒适型丰田轿车) 暂无,勿选'], [3, '15元拼车出行(不提供茶水服务,不提前等候,车型为经济型大众轿车)']], widget=widgets.RadioSelect) Shop1 = models.StringField(label='(1)你需要自费预定酒店,短期入住,你会选择哪一种呢?', choices=[[1, '699元豪华酒店(2米大床江景房,2人餐食,面积50-60㎡)'], [2, '198元快捷连锁酒店(1.8米大床房,无餐食,面积30㎡)'], [3, '80元快捷宾馆(1.5米床房,无餐食,面积15㎡)']], widget=widgets.RadioSelect) Shop2 = models.StringField(label='(2)你需要自费购买笔记本电脑,你会选择哪一种呢?', choices=[[1, '14999元(第十代Intel i9处理器,16GB内存,GTX 1660显卡)'], [2, '7999元(第十代Intel i7处理器,8GB内存,4G Intel核心显卡)'], [3, '3599元(第十代Intel i5处理器,4GB内存,NVIDIA显卡)']], widget=widgets.RadioSelect) Shop3 = models.StringField(label='(3)你需要自费预约打车,短途出行,你会选择哪一种呢?', choices=[[1, '80元专车出行(提供茶水服务,提前等候,豪华宝马轿车)'], [2, '45元快车出行(不提供茶水服务,提前等候,舒适型丰田轿车)'], [3, '15元拼车出行(不提供茶水服务,不提前等候,经济型大众轿车)']], widget=widgets.RadioSelect) Shop4 = models.StringField(label='(4)你需要自费购买台灯,你会选择哪一种呢?', choices=[[1, '129元(五档调光,可用200小时,可360度灵活转动)'], [2, '58元(三档调光,可用40小时,可180度转动)'], [3, '19元(一档调光,可用10小时,不可转动)']], widget=widgets.RadioSelect) Shop5 = models.StringField(label='(5)你需要自费购买演唱会门票,你会选择哪一种呢?', choices=[[1, '1600元(内场票,座位间距大,提供茶水)'], [2, '700元(中场票,座位间距小,提供茶水) '], [3, '380元(外场票,座位间距小,不提供茶水)']], widget=widgets.RadioSelect) Shop6 = models.StringField(label='(6)你需要自费购买键盘,你会选择哪一种呢?', choices=[[1, '1299元(茶轴,可定制单键RGB灯效,104键)'], [2, '799元(青轴,RGB背光,84键)'], [3, '159元(黑轴,无背光,68键)']], widget=widgets.RadioSelect) Shop7 = models.StringField(label='(7)你需要自费预定酒店,长期入住,你会选择哪一种呢?', choices=[[1, '699元豪华酒店(2米大床江景房,2人餐食,面积50-60㎡)'], [2, '198元快捷连锁酒店(1.8米大床房,无餐食,面积30㎡)'], [3, '80元快捷宾馆(1.5米床房,无餐食,面积15㎡)']], widget=widgets.RadioSelect) Shop8 = models.StringField(label='(8)你需要自费购买落地灯,你会选择哪一种呢?', choices=[[1, '288元(可调节七彩灯光,可连接蓝牙播放音乐,可声控开关)'], [2, '158元(可调节三色灯光,可连接蓝牙播放音乐,无声控开关)'], [3, '69元(白光,不可连接蓝牙播放音乐,无声控开关)']], widget=widgets.RadioSelect) Shop9 = models.StringField(label='(9)你需要自费预约打车,长途出行,你会选择哪一种呢?', choices=[[1, '80元专车出行(提供茶水服务,提前等候,豪华宝马轿车)'], [2, '45元快车出行(不提供茶水服务,提前等候,舒适型丰田轿车)'], [3, '15元拼车出行(不提供茶水服务,不提前等候,经济型大众轿车)']], widget=widgets.RadioSelect) # PAGES class MyPage(Page): form_model = 'player' form_fields = ['age', 'gender'] class SurveyH(Page): timeout_seconds = 180 form_model = 'player' form_fields = ['q1_H', 'q2_H', 'q3_H', 'q4_H'] class SurveyC(Page): timeout_seconds = 180 form_model = 'player' form_fields = ['q1_C', 'q2_C', 'q3_C'] class SurveyL(Page): timeout_seconds = 180 form_model = 'player' form_fields = ['q1_L', 'q2_L', 'q3_L', 'q4_L'] class Shopping(Page): timeout_seconds = 360 form_model = 'player' form_fields = ['zShop1', 'zShop2', 'zShop3', 'zShop4', 'zShop5', 'zShop6', 'zShop7', 'zShop8', 'zShop9'] class Shopping2(Page): timeout_seconds = 360 form_model = 'player' form_fields = ['Shop1', 'Shop2', 'Shop3', 'Shop4', 'Shop5', 'Shop6', 'Shop7', 'Shop8', 'Shop9'] class Results(Page): form_model = 'player' form_fields = ['bank'] class ExpEnd(Page): pass def seqSelect(): import random seq = [SurveyH, SurveyC] random.shuffle(seq) return seq def page_seq(): seq = seqSelect() page_sequence = [MyPage, seq[0], Shopping, Shopping2, Results, ExpEnd] return page_sequence page_sequence = page_seq()