from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) import random import string doc = """ 基本情報について教えてください。 """ class Constants(BaseConstants): name_in_url = 'basic_info' players_per_group = None num_rounds = 1 instructions_template = 'basic_info/instructions.html' class Subsession(BaseSubsession): pass class Group(BaseGroup): def set_earnings(self): for p in self.get_players(): p.earning0 = c(0) if p.que0A == p.ans0A: p.earning0 += c(5) if p.que0B == p.ans0B: p.earning0 += c(5) if p.que0C == p.ans0C: p.earning0 += c(5) if p.que0D == p.ans0D: p.earning0 += c(5) if p.que0E == p.ans0E: p.earning0 += c(5) if p.que0F == p.ans0F: p.earning0 += c(5) if p.que0G == p.ans0G: p.earning0 += c(5) if p.que0H == p.ans0H: p.earning0 += c(5) if p.que0I == p.ans0I: p.earning0 += c(5) if p.que0J == p.ans0J: p.earning0 += c(5) if p.que0K == p.ans0K: p.earning0 += c(5) if p.que0L == p.ans0L: p.earning0 += c(5) if p.que0M == p.ans0M: p.earning0 += c(5) if p.que0N == p.ans0N: p.earning0 += c(5) if p.que0O == p.ans0O: p.earning0 += c(5) if p.que0P == p.ans0P: p.earning0 += c(5) if p.que0Q == p.ans0Q: p.earning0 += c(5) if p.que0R == p.ans0R: p.earning0 += c(5) if p.que0S == p.ans0S: p.earning0 += c(5) if p.que0T == p.ans0T: p.earning0 += c(5) if p.que0U == p.ans0U: p.earning0 += c(5) if p.que0V == p.ans0V: p.earning0 += c(5) if p.que0W == p.ans0W: p.earning0 += c(5) if p.que0X == p.ans0X: p.earning0 += c(5) if p.que0Y == p.ans0Y: p.earning0 += c(5) if p.que0Z == p.ans0Z: p.earning0 += c(5) class Player(BasePlayer): age = models.IntegerField( label = '年齢' ) gender = models.StringField( choices=["男性", "女性", "その他"], label = '性別' ) typing = models.IntegerField( choices=[ [1, 'とても苦手'], [2, '苦手'], [3, '普通'], [4, '得意'], [5, 'とても得意'], ], label ='''あなたはタイピングが得意ですか?''' ) device = models.IntegerField( choices=[ [1, 'パソコン'], [2, 'スマホ'], [3, 'タブレット'], [4, 'その他'], ], label='''あなたはどのデバイスでこの実験に参加していますか?''' ) feelings0_1 = models.IntegerField( choices=[ [1, '強く反対'], [2, '反対'], [3, 'どちらでもない'], [4, '賛成'], [5, '強く賛成'], ], label='''もしあなたが犠牲者になったとしても、プロジェクトに賛成しますか?''' ) earning0 = models.CurrencyField() #Questions and Answers 0A to 0Z def randomkey0A(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0A = models.StringField(initial = randomkey0A(5)) def randomkey0B(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0B = models.StringField(initial = randomkey0B(5)) def randomkey0C(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0C = models.StringField(initial = randomkey0C(5)) def randomkey0D(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0D = models.StringField(initial = randomkey0D(5)) def randomkey0E(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0E = models.StringField(initial = randomkey0E(5)) def randomkey0F(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0F = models.StringField(initial = randomkey0F(5)) def randomkey0G(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0G = models.StringField(initial = randomkey0G(5)) def randomkey0H(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0H = models.StringField(initial = randomkey0H(5)) def randomkey0I(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0I = models.StringField(initial = randomkey0I(5)) def randomkey0J(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0J = models.StringField(initial = randomkey0J(5)) def randomkey0K(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0K = models.StringField(initial = randomkey0K(5)) def randomkey0L(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0L = models.StringField(initial = randomkey0L(5)) def randomkey0M(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0M = models.StringField(initial = randomkey0M(5)) def randomkey0N(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0N = models.StringField(initial = randomkey0N(5)) def randomkey0O(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0O = models.StringField(initial = randomkey0O(5)) def randomkey0P(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0P = models.StringField(initial = randomkey0P(5)) def randomkey0Q(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0Q = models.StringField(initial = randomkey0Q(5)) def randomkey0R(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0R = models.StringField(initial = randomkey0R(5)) def randomkey0S(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0S = models.StringField(initial = randomkey0S(5)) def randomkey0T(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0T = models.StringField(initial = randomkey0T(5)) def randomkey0U(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0U = models.StringField(initial = randomkey0U(5)) def randomkey0V(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0V = models.StringField(initial = randomkey0V(5)) def randomkey0W(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0W = models.StringField(initial = randomkey0W(5)) def randomkey0X(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0X = models.StringField(initial = randomkey0X(5)) def randomkey0Y(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0Y = models.StringField(initial = randomkey0Y(5)) def randomkey0Z(n): randlist = [random.choice(string.digits) for i in range(n)] return ''.join(randlist) que0Z = models.StringField(initial = randomkey0Z(5)) #Answer forms ans0A = models.StringField(blank=True, null=True) ans0B = models.StringField(blank=True, null=True) ans0C = models.StringField(blank=True, null=True) ans0D = models.StringField(blank=True, null=True) ans0E = models.StringField(blank=True, null=True) ans0F = models.StringField(blank=True, null=True) ans0G = models.StringField(blank=True, null=True) ans0H = models.StringField(blank=True, null=True) ans0I = models.StringField(blank=True, null=True) ans0J = models.StringField(blank=True, null=True) ans0K = models.StringField(blank=True, null=True) ans0L = models.StringField(blank=True, null=True) ans0M = models.StringField(blank=True, null=True) ans0N = models.StringField(blank=True, null=True) ans0O = models.StringField(blank=True, null=True) ans0P = models.StringField(blank=True, null=True) ans0Q = models.StringField(blank=True, null=True) ans0R = models.StringField(blank=True, null=True) ans0S = models.StringField(blank=True, null=True) ans0T = models.StringField(blank=True, null=True) ans0U = models.StringField(blank=True, null=True) ans0V = models.StringField(blank=True, null=True) ans0W = models.StringField(blank=True, null=True) ans0X = models.StringField(blank=True, null=True) ans0Y = models.StringField(blank=True, null=True) ans0Z = models.StringField(blank=True, null=True) def vars_for_admin_report(): ans0A = [ p.ans0A for p in self.get_players() ] ans0B = [ p.ans0B for p in self.get_players() ] ans0C = [ p.ans0C for p in self.get_players() ] ans0D = [ p.ans0D for p in self.get_players() ] ans0E = [ p.ans0E for p in self.get_players() ] ans0F = [ p.ans0F for p in self.get_players() ] ans0G = [ p.ans0G for p in self.get_players() ] ans0H = [ p.ans0H for p in self.get_players() ] ans0I = [ p.ans0I for p in self.get_players() ] ans0J = [ p.ans0J for p in self.get_players() ] ans0K = [ p.ans0K for p in self.get_players() ] ans0L = [ p.ans0L for l in self.get_players() ] ans0M = [ p.ans0M for p in self.get_players() ] ans0N = [ p.ans0N for p in self.get_players() ] ans0O = [ p.ans0O for p in self.get_players() ] ans0P = [ p.ans0P for p in self.get_players() ] ans0Q = [ p.ans0Q for p in self.get_players() ] ans0R = [ p.ans0R for p in self.get_players() ] ans0S = [ p.ans0S for p in self.get_players() ] ans0T = [ p.ans0T for p in self.get_players() ] ans0U = [ p.ans0U for p in self.get_players() ] ans0V = [ p.ans0V for p in self.get_players() ] ans0W = [ p.ans0W for p in self.get_players() ] ans0X = [ p.ans0X for p in self.get_players() ] ans0Y = [ p.ans0Y for p in self.get_players() ] ans0Z = [ p.ans0Z for p in self.get_players() ]