from otree.api import * import random doc = """ Your app description """ class C(BaseConstants): NAME_IN_URL = 'YabuQ' PLAYERS_PER_GROUP = None TASKS = ["A","B"] NUM_ROUNDS = len(TASKS) class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): def BQ(label): return models.IntegerField( choices=[[0,'あてはまらない'],[1,'あまりあてはまらない'],[2,'少しあてはまる'],[3,'あてはまる']], label=label, widget=widgets.RadioSelect ) def YQ(label): return models.IntegerField( choices=[[1,'あてはまらない'],[2,'あまりあてはまらない'],[3,'どちらでもない'],[4,'少しあてはまる'],[5,'あてはまる']], label=label, widget=widgets.RadioSelect ) def KQ(label): return models.IntegerField( choices=[[1,'あてはまらない'],[2,'あまりあてはまらない'],[3,'どちらでもない'],[4,'少しあてはまる'],[5,'あてはまる']], label=label, widget=widgets.RadioSelect ) age =models.IntegerField(label='あなたの年齢をお選びください', choices=[[18,'18'],[19,'19'],[20,'20'],[21,'21'],[22,'22'],[23,'23'],[24,'24'],[25,'25'],[26,'26'],[27,'27'],[28,'28'],[29,'29'], [30,'30'],[31,'31'],[32,'32'],[33,'33'],[34,'34'],[35,'35'],[36,'36'],[37,'37'],[38,'38'],[39,'39'], [40,'40'],[41,'41'],[42,'42'],[43,'43'],[44,'44'],[45,'45'],[46,'46'],[47,'47'],[48,'48'],[49,'49'], [50,'50'],[51,'51'],[52,'52'],[53,'53'],[54,'54'],[55,'55'],[56,'56'],[57,'57'],[58,'58'],[59,'59'], [60,'60'],[61,'61'],[62,'62'],[63,'63'],[64,'64'],[65,'65'],[66,'66'],[67,'67'],[68,'68'],[69,'69'], [70,'70'],[71,'71'],[72,'72'],[73,'73'],[74,'74'],[75,'75'],[76,'76'],[77,'77'],[78,'78'],[79,'79'], [80,'80'],[81,'81'],[82,'82'],[83,'83'],[84,'84'],[85,'85'],[86,'86'],[87,'87'],[88,'88'],[89,'89'], [90,'90'],[91,'91'],[92,'92'],[93,'93'],[94,'94'],[95,'95'],[96,'96'],[97,'97'],[98,'98'],[99,'99']] ) sex=models.StringField(label='あなたの性別をお選びください', choices=[[0,'女性'],[1,'男性'],[2,'その他']] ) YQ1=YQ('人と話すときにはできるだけ自分の存在をアピールしたい') YQ2=YQ('自分が注目されていないと、つい人の気を引きたくなる') YQ3=YQ('大勢の人が集まる場では、自分を目立たせようとはりきる方だ') YQ4=YQ('高い信頼を得るため、自分の能力は積極的にアピールしたい') YQ5=YQ('初対面の人にはまず自分の魅力を印象づけようとする') YQ6=YQ('人と仕事をするとき、自分の良い点を知ってもらうように張り切る') YQ7=YQ('目上の人から一目おかれるため、チャンスは有効に使いたい ') YQ8=YQ('責任ある立場につくのは、皆に自分を印象づけるチャンスだ') YQ9=YQ('皆から注目され,愛される有名人になりたいと思うことがある') YQ10=YQ('意見を言うとき、みんなに反対されないかと気になる') YQ11=YQ('目立つ行動をとるとき、周囲から変な目で見られないか気になる') YQ12=YQ('自分の意見が少しでも批判されるとうろたえてしまう ') YQ13=YQ('不愉快な表情をされると、あわてて相手の機嫌をとる方だ') YQ14=YQ('場違いなことをして笑われないよう、いつも気を配る') YQ15=YQ('優れた人々の中にいると、自分だけが孤立していないか気になる') YQ16=YQ('人に文句言うときも、相手の反感を買わないように注意する') YQ17=YQ('相手との関係がまずくなりそうな議論はできるだけ避けたい') YQ18=YQ('人から敵視されないよう、人間関係には気を付けている') BQ1=BQ('たとえ何かよくないことが私の身に起ころうとしていても,怖くなったり神経質になったりすることはほとんどない ') BQ2=BQ('私は、欲しいものを手に入れるためには格別に努力する') BQ3=BQ('何かがうまくいっているときは、それを続けることがとても楽しいと思う') BQ4=BQ('面白そうだと思えば、私はいつも何か新しいものを試したいと考えている') BQ5=BQ('私は,欲しいものを手に入れたとき,興奮し,活気づけられる') BQ6=BQ('非難されたり怒られたりすると,私はかなり傷つく ') BQ7=BQ('欲しいものがあると,私はたいていそれを手に入れるために全力を挙げる ') BQ8=BQ('楽しいかもしれないから、というだけの理由で何かをすることがよくある ') BQ9=BQ(' 欲しいものを手に入れるチャンスを見つけると,すぐに動き出す') BQ10=BQ('誰かが私のことを怒っていると考えたり,知ったりすると,私はかなり心配になったり動揺したりする') BQ11=BQ('何か好きなことをするチャンスをみつけると,私はすぐに興奮する') BQ12=BQ('私はしばしば軽はずみで行動する ') BQ13=BQ('何かよくないことが起ころうとしていると考えると、私はたいていくよくよ悩む') BQ14=BQ('よいことが私の身に起こると,そのことは,私に強い影響を与える ') BQ15=BQ('何か重要なことをあまりうまくできなかったと考えると不安になる') BQ16=BQ('私は、興奮や新しい刺激を切望している ') BQ17=BQ('私は、何かを追い求めているときには徹底的にやる') BQ18=BQ('私は、友達と比べると不安の種はとても少ない') BQ19=BQ('競争に勝ったら、私は興奮するだろう ') BQ20=BQ('私は、間違いを犯すことを心配している') KQ1_G=KQ('きまりが悪い') KQ2_G=KQ('体裁が悪い') KQ3_G=KQ('恥じる') KQ4_G=KQ('自己嫌悪') KQ5_G=KQ('ばつが悪い') KQ6_G=KQ('くやしい') KQ7_G=KQ('ゆるせない') KQ8_G=KQ('頭にくる') KQ9_G=KQ('ばかばかしい') KQ10_G=KQ('腹立たしい') KQ11_G=KQ('はにかむ') KQ12_G=KQ('くすぐったい') KQ13_G=KQ('照れる') KQ14_G=KQ('恥じらう') KQ15_G=KQ('気分がいい') KQ16_G=KQ('誇らしい') KQ17_G=KQ('満足である') KQ18_G=KQ('当然である') KQ19_G=KQ('うれしい') KQ20_G=KQ('ここちよい') KQ1_P=KQ('きまりが悪い') KQ2_P=KQ('体裁(世間体)が悪い') KQ3_P=KQ('恥じる') KQ4_P=KQ('自己嫌悪') KQ5_P=KQ('気まずい') KQ6_P=KQ('くやしい') KQ7_P=KQ('ゆるせない') KQ8_P=KQ('頭にくる') KQ9_P=KQ('ばかばかしい') KQ10_P=KQ('腹立たしい') KQ11_P=KQ('はにかむ') KQ12_P=KQ('くすぐったい') KQ13_P=KQ('照れる') KQ14_P=KQ('恥じらう') KQ15_P=KQ('気分がいい') KQ16_P=KQ('誇らしい') KQ17_P=KQ('満足である') KQ18_P=KQ('当然である') KQ19_P=KQ('うれしい') KQ20_P=KQ('ここちよい') def creating_session(subsession:Subsession): if subsession.round_number == 1: for p in subsession.get_players(): round_numbers=list(range(1,C.NUM_ROUNDS+1)) random.shuffle(round_numbers) p.participant.vars['task_rounds']=dict(zip(C.TASKS,round_numbers)) # PAGES class BISBASPage(Page): form_model='player' form_fields=['BQ1','BQ2','BQ3','BQ4','BQ5','BQ6','BQ7','BQ8','BQ9','BQ10','BQ11','BQ12','BQ13','BQ14','BQ15','BQ16','BQ17','BQ18','BQ19','BQ20'] def is_displayed(player): return player.round_number == 1 class ShouninPage(Page): form_model='player' form_fields=['YQ1','YQ2','YQ3','YQ4','YQ5','YQ6','YQ7','YQ8','YQ9','YQ10','YQ11','YQ12','YQ13','YQ14','YQ15','YQ16','YQ17','YQ18'] def is_displayed(player): return player.round_number == 1 class GoodPage(Page): form_model='player' form_fields=['KQ1_G','KQ2_G','KQ3_G','KQ4_G','KQ5_G','KQ6_G','KQ7_G','KQ8_G','KQ9_G','KQ10_G','KQ11_G','KQ12_G','KQ13_G','KQ14_G','KQ15_G','KQ16_G','KQ17_G','KQ18_G','KQ19_G','KQ20_G'] @staticmethod def is_displayed(player): return player.round_number == player.participant.vars['task_rounds']['A'] class PoorPage(Page): form_model='player' form_fields=['KQ1_P','KQ2_P','KQ3_P','KQ4_P','KQ5_P','KQ6_P','KQ7_P','KQ8_P','KQ9_P','KQ10_P','KQ11_P','KQ12_P','KQ13_P','KQ14_P','KQ15_P','KQ16_P','KQ17_P','KQ18_P','KQ19_P','KQ20_P'] @staticmethod def is_displayed(player): return player.round_number == player.participant.vars['task_rounds']['B'] class Intro(Page): pass @staticmethod def is_displayed(player): return player.round_number == 1 class Demographic(Page): form_model='player' form_fields=['age','sex'] @staticmethod def is_displayed(player): return player.round_number == 2 class End(Page): @staticmethod def is_displayed(player): return player.round_number == 2 page_sequence = [Intro, BISBASPage, ShouninPage, GoodPage, PoorPage, Demographic, End]