from ._builtin import Page, WaitPage from otree.api import Currency as c, currency_range from .models import Constants import statistics import math #平時のポイント決定 class GameTrialInfo(Page): pass class Game0(Page): timeout_seconds = 20 form_model = 'player' form_fields = ['ans0A', 'ans0B', 'ans0C', 'ans0D', 'ans0E', 'ans0F', 'ans0G', 'ans0H', 'ans0I', 'ans0J', 'ans0K', 'ans0L', 'ans0M', 'ans0N', 'ans0O', 'ans0P', 'ans0Q', 'ans0R', 'ans0S', 'ans0T', 'ans0U', 'ans0V', 'ans0W', 'ans0X', 'ans0Y', 'ans0Z' ] def vars_for_template(self): return dict( ans0A_label = '{}を打ってください。'.format(self.player.que0A), ans0B_label = '{}を打ってください。'.format(self.player.que0B), ans0C_label = '{}を打ってください。'.format(self.player.que0C), ans0D_label = '{}を打ってください。'.format(self.player.que0D), ans0E_label = '{}を打ってください。'.format(self.player.que0E), ans0F_label = '{}を打ってください。'.format(self.player.que0F), ans0G_label = '{}を打ってください。'.format(self.player.que0G), ans0H_label = '{}を打ってください。'.format(self.player.que0H), ans0I_label = '{}を打ってください。'.format(self.player.que0I), ans0J_label = '{}を打ってください。'.format(self.player.que0J), ans0K_label = '{}を打ってください。'.format(self.player.que0K), ans0L_label = '{}を打ってください。'.format(self.player.que0L), ans0M_label = '{}を打ってください。'.format(self.player.que0M), ans0N_label = '{}を打ってください。'.format(self.player.que0N), ans0O_label = '{}を打ってください。'.format(self.player.que0O), ans0P_label = '{}を打ってください。'.format(self.player.que0P), ans0Q_label = '{}を打ってください。'.format(self.player.que0Q), ans0R_label = '{}を打ってください。'.format(self.player.que0R), ans0S_label = '{}を打ってください。'.format(self.player.que0S), ans0T_label = '{}を打ってください。'.format(self.player.que0T), ans0U_label = '{}を打ってください。'.format(self.player.que0U), ans0V_label = '{}を打ってください。'.format(self.player.que0V), ans0W_label = '{}を打ってください。'.format(self.player.que0W), ans0X_label = '{}を打ってください。'.format(self.player.que0X), ans0Y_label = '{}を打ってください。'.format(self.player.que0Y), ans0Z_label = '{}を打ってください。'.format(self.player.que0Z), ) class ResultsWait0(WaitPage): after_all_players_arrive = 'set_earning0' class Game0Results(Page): form_model = 'player' form_fields = ['feelings0_1'] def vars_for_template(self): return dict(earning0 = self.player.earning0) #ラウンド1 class NextRound1(Page): pass class GroupWaiting1(WaitPage): pass class Victim1Q1(Page): form_model = 'group' form_fields = ['veto1'] def is_displayed(self): return self.player.id_in_group == 1 class Victim1Q1_2(Page): form_model = 'player' form_fields = ['feelings1_1'] def is_displayed(self): return self.player.id_in_group == 1 class Victim1Q2(Page): form_model = 'player' form_fields = ['feelings1_1'] def is_displayed(self): return self.player.id_in_group == 2 class Victim1Q3(Page): form_model = 'player' form_fields = ['feelings1_1'] def is_displayed(self): return self.player.id_in_group == 3 class GroupWaitingForVeto1(WaitPage): pass class Game1agreeInfo(Page): def is_displayed(self): return self.group.veto1 == 1 class Game1disagreeInfo(Page): def is_displayed(self): return self.group.veto1 == 2 class Game1(Page): timeout_seconds = 20 form_model = 'player' form_fields = ['ans1A', 'ans1B', 'ans1C', 'ans1D', 'ans1E', 'ans1F', 'ans1G', 'ans1H', 'ans1I', 'ans1J', 'ans1K', 'ans1L', 'ans1M', 'ans1N', 'ans1O', 'ans1P', 'ans1Q', 'ans1R', 'ans1S', 'ans1T', 'ans1U', 'ans1V', 'ans1W', 'ans1X', 'ans1Y', 'ans1Z' ] def vars_for_template(self): return dict( ans1A_label = '{}を打ってください。'.format(self.player.que1A), ans1B_label = '{}を打ってください。'.format(self.player.que1B), ans1C_label = '{}を打ってください。'.format(self.player.que1C), ans1D_label = '{}を打ってください。'.format(self.player.que1D), ans1E_label = '{}を打ってください。'.format(self.player.que1E), ans1F_label = '{}を打ってください。'.format(self.player.que1F), ans1G_label = '{}を打ってください。'.format(self.player.que1G), ans1H_label = '{}を打ってください。'.format(self.player.que1H), ans1I_label = '{}を打ってください。'.format(self.player.que1I), ans1J_label = '{}を打ってください。'.format(self.player.que1J), ans1K_label = '{}を打ってください。'.format(self.player.que1K), ans1L_label = '{}を打ってください。'.format(self.player.que1L), ans1M_label = '{}を打ってください。'.format(self.player.que1M), ans1N_label = '{}を打ってください。'.format(self.player.que1N), ans1O_label = '{}を打ってください。'.format(self.player.que1O), ans1P_label = '{}を打ってください。'.format(self.player.que1P), ans1Q_label = '{}を打ってください。'.format(self.player.que1Q), ans1R_label = '{}を打ってください。'.format(self.player.que1R), ans1S_label = '{}を打ってください。'.format(self.player.que1S), ans1T_label = '{}を打ってください。'.format(self.player.que1T), ans1U_label = '{}を打ってください。'.format(self.player.que1U), ans1V_label = '{}を打ってください。'.format(self.player.que1V), ans1W_label = '{}を打ってください。'.format(self.player.que1W), ans1X_label = '{}を打ってください。'.format(self.player.que1X), ans1Y_label = '{}を打ってください。'.format(self.player.que1Y), ans1Z_label = '{}を打ってください。'.format(self.player.que1Z), ) class ResultsWait1(WaitPage): after_all_players_arrive = 'set_earning1' class Game1benefitInfo(Page): def is_displayed(self): return self.group.veto1 == 1 class Game1nobenefitInfo(Page): def is_displayed(self): return self.group.veto1 == 2 class Game1b(Page): timeout_seconds = 20 form_model = 'player' form_fields = ['ans1bA', 'ans1bB', 'ans1bC', 'ans1bD', 'ans1bE', 'ans1bF', 'ans1bG', 'ans1bH', 'ans1bI', 'ans1bJ', 'ans1bK', 'ans1bL', 'ans1bM', 'ans1bN', 'ans1bO', 'ans1bP', 'ans1bQ', 'ans1bR', 'ans1bS', 'ans1bT', 'ans1bU', 'ans1bV', 'ans1bW', 'ans1bX', 'ans1bY', 'ans1bZ' ] def vars_for_template(self): return dict( ans1bA_label = '{}を打ってください。'.format(self.player.que1bA), ans1bB_label = '{}を打ってください。'.format(self.player.que1bB), ans1bC_label = '{}を打ってください。'.format(self.player.que1bC), ans1bD_label = '{}を打ってください。'.format(self.player.que1bD), ans1bE_label = '{}を打ってください。'.format(self.player.que1bE), ans1bF_label = '{}を打ってください。'.format(self.player.que1bF), ans1bG_label = '{}を打ってください。'.format(self.player.que1bG), ans1bH_label = '{}を打ってください。'.format(self.player.que1bH), ans1bI_label = '{}を打ってください。'.format(self.player.que1bI), ans1bJ_label = '{}を打ってください。'.format(self.player.que1bJ), ans1bK_label = '{}を打ってください。'.format(self.player.que1bK), ans1bL_label = '{}を打ってください。'.format(self.player.que1bL), ans1bM_label = '{}を打ってください。'.format(self.player.que1bM), ans1bN_label = '{}を打ってください。'.format(self.player.que1bN), ans1bO_label = '{}を打ってください。'.format(self.player.que1bO), ans1bP_label = '{}を打ってください。'.format(self.player.que1bP), ans1bQ_label = '{}を打ってください。'.format(self.player.que1bQ), ans1bR_label = '{}を打ってください。'.format(self.player.que1bR), ans1bS_label = '{}を打ってください。'.format(self.player.que1bS), ans1bT_label = '{}を打ってください。'.format(self.player.que1bT), ans1bU_label = '{}を打ってください。'.format(self.player.que1bU), ans1bV_label = '{}を打ってください。'.format(self.player.que1bV), ans1bW_label = '{}を打ってください。'.format(self.player.que1bW), ans1bX_label = '{}を打ってください。'.format(self.player.que1bX), ans1bY_label = '{}を打ってください。'.format(self.player.que1bY), ans1bZ_label = '{}を打ってください。'.format(self.player.que1bZ), ) def is_displayed(self): return self.group.veto1 == 1 class ResultsWait1b(WaitPage): after_all_players_arrive = 'set_earning1b' def is_displayed(self): return self.group.veto1 ==1 class Game1n(Page): timeout_seconds = 20 form_model = 'player' form_fields = ['ans1nA', 'ans1nB', 'ans1nC', 'ans1nD', 'ans1nE', 'ans1nF', 'ans1nG', 'ans1nH', 'ans1nI', 'ans1nJ', 'ans1nK', 'ans1nL', 'ans1nM', 'ans1nN', 'ans1nO', 'ans1nP', 'ans1nQ', 'ans1nR', 'ans1nS', 'ans1nT', 'ans1nU', 'ans1nV', 'ans1nW', 'ans1nX', 'ans1nY', 'ans1nZ' ] def vars_for_template(self): return dict( ans1nA_label = '{}を打ってください。'.format(self.player.que1nA), ans1nB_label = '{}を打ってください。'.format(self.player.que1nB), ans1nC_label = '{}を打ってください。'.format(self.player.que1nC), ans1nD_label = '{}を打ってください。'.format(self.player.que1nD), ans1nE_label = '{}を打ってください。'.format(self.player.que1nE), ans1nF_label = '{}を打ってください。'.format(self.player.que1nF), ans1nG_label = '{}を打ってください。'.format(self.player.que1nG), ans1nH_label = '{}を打ってください。'.format(self.player.que1nH), ans1nI_label = '{}を打ってください。'.format(self.player.que1nI), ans1nJ_label = '{}を打ってください。'.format(self.player.que1nJ), ans1nK_label = '{}を打ってください。'.format(self.player.que1nK), ans1nL_label = '{}を打ってください。'.format(self.player.que1nL), ans1nM_label = '{}を打ってください。'.format(self.player.que1nM), ans1nN_label = '{}を打ってください。'.format(self.player.que1nN), ans1nO_label = '{}を打ってください。'.format(self.player.que1nO), ans1nP_label = '{}を打ってください。'.format(self.player.que1nP), ans1nQ_label = '{}を打ってください。'.format(self.player.que1nQ), ans1nR_label = '{}を打ってください。'.format(self.player.que1nR), ans1nS_label = '{}を打ってください。'.format(self.player.que1nS), ans1nT_label = '{}を打ってください。'.format(self.player.que1nT), ans1nU_label = '{}を打ってください。'.format(self.player.que1nU), ans1nV_label = '{}を打ってください。'.format(self.player.que1nV), ans1nW_label = '{}を打ってください。'.format(self.player.que1nW), ans1nX_label = '{}を打ってください。'.format(self.player.que1nX), ans1nY_label = '{}を打ってください。'.format(self.player.que1nY), ans1nZ_label = '{}を打ってください。'.format(self.player.que1nZ), ) def is_displayed(self): return self.group.veto1 == 2 class ResultsWait1n(WaitPage): after_all_players_arrive = 'set_earning1n' def is_displayed(self): return self.group.veto1 ==2 class ResultsWaitPage1b(WaitPage): after_all_players_arrive = 'set_payoffs1b' def is_displayed(self): return self.group.veto1 == 1 class ResultsWaitPage1n(WaitPage): after_all_players_arrive = 'set_payoffs1n' def is_displayed(self): return self.group.veto1 == 2 class Results1(Page): form_model = 'player' form_fields = ['feelings1_2'] def vars_for_template(self): return dict(payoff1 = self.player.payoff1) #ラウンド2 class NextRound2(Page): pass class GroupWaiting2(WaitPage): pass class Victim2Q1(Page): form_model = 'player' form_fields = ['feelings2_1'] def is_displayed(self): return self.player.id_in_group == 1 class Victim2Q2(Page): form_model = 'group' form_fields = ['veto2'] def is_displayed(self): return self.player.id_in_group == 2 class Victim2Q2_2(Page): form_model = 'player' form_fields = ['feelings2_1'] def is_displayed(self): return self.player.id_in_group == 2 class Victim2Q3(Page): form_model = 'player' form_fields = ['feelings2_1'] def is_displayed(self): return self.player.id_in_group == 3 class GroupWaitingForVeto2(WaitPage): pass class Game2agreeInfo(Page): def is_displayed(self): return self.group.veto2 == 1 class Game2disagreeInfo(Page): def is_displayed(self): return self.group.veto2 == 2 class Game2(Page): timeout_seconds = 20 form_model = 'player' form_fields = ['ans2A', 'ans2B', 'ans2C', 'ans2D', 'ans2E', 'ans2F', 'ans2G', 'ans2H', 'ans2I', 'ans2J', 'ans2K', 'ans2L', 'ans2M', 'ans2N', 'ans2O', 'ans2P', 'ans2Q', 'ans2R', 'ans2S', 'ans2T', 'ans2U', 'ans2V', 'ans2W', 'ans2X', 'ans2Y', 'ans2Z' ] def vars_for_template(self): return dict( ans2A_label = '{}を打ってください。'.format(self.player.que2A), ans2B_label = '{}を打ってください。'.format(self.player.que2B), ans2C_label = '{}を打ってください。'.format(self.player.que2C), ans2D_label = '{}を打ってください。'.format(self.player.que2D), ans2E_label = '{}を打ってください。'.format(self.player.que2E), ans2F_label = '{}を打ってください。'.format(self.player.que2F), ans2G_label = '{}を打ってください。'.format(self.player.que2G), ans2H_label = '{}を打ってください。'.format(self.player.que2H), ans2I_label = '{}を打ってください。'.format(self.player.que2I), ans2J_label = '{}を打ってください。'.format(self.player.que2J), ans2K_label = '{}を打ってください。'.format(self.player.que2K), ans2L_label = '{}を打ってください。'.format(self.player.que2L), ans2M_label = '{}を打ってください。'.format(self.player.que2M), ans2N_label = '{}を打ってください。'.format(self.player.que2N), ans2O_label = '{}を打ってください。'.format(self.player.que2O), ans2P_label = '{}を打ってください。'.format(self.player.que2P), ans2Q_label = '{}を打ってください。'.format(self.player.que2Q), ans2R_label = '{}を打ってください。'.format(self.player.que2R), ans2S_label = '{}を打ってください。'.format(self.player.que2S), ans2T_label = '{}を打ってください。'.format(self.player.que2T), ans2U_label = '{}を打ってください。'.format(self.player.que2U), ans2V_label = '{}を打ってください。'.format(self.player.que2V), ans2W_label = '{}を打ってください。'.format(self.player.que2W), ans2X_label = '{}を打ってください。'.format(self.player.que2X), ans2Y_label = '{}を打ってください。'.format(self.player.que2Y), ans2Z_label = '{}を打ってください。'.format(self.player.que2Z), ) class ResultsWait2(WaitPage): after_all_players_arrive = 'set_earning2' class Game2benefitInfo(Page): def is_displayed(self): return self.group.veto2 == 1 class Game2nobenefitInfo(Page): def is_displayed(self): return self.group.veto2 == 2 class Game2b(Page): timeout_seconds = 20 form_model = 'player' form_fields = ['ans2bA', 'ans2bB', 'ans2bC', 'ans2bD', 'ans2bE', 'ans2bF', 'ans2bG', 'ans2bH', 'ans2bI', 'ans2bJ', 'ans2bK', 'ans2bL', 'ans2bM', 'ans2bN', 'ans2bO', 'ans2bP', 'ans2bQ', 'ans2bR', 'ans2bS', 'ans2bT', 'ans2bU', 'ans2bV', 'ans2bW', 'ans2bX', 'ans2bY', 'ans2bZ' ] def vars_for_template(self): return dict( ans2bA_label = '{}を打ってください。'.format(self.player.que2bA), ans2bB_label = '{}を打ってください。'.format(self.player.que2bB), ans2bC_label = '{}を打ってください。'.format(self.player.que2bC), ans2bD_label = '{}を打ってください。'.format(self.player.que2bD), ans2bE_label = '{}を打ってください。'.format(self.player.que2bE), ans2bF_label = '{}を打ってください。'.format(self.player.que2bF), ans2bG_label = '{}を打ってください。'.format(self.player.que2bG), ans2bH_label = '{}を打ってください。'.format(self.player.que2bH), ans2bI_label = '{}を打ってください。'.format(self.player.que2bI), ans2bJ_label = '{}を打ってください。'.format(self.player.que2bJ), ans2bK_label = '{}を打ってください。'.format(self.player.que2bK), ans2bL_label = '{}を打ってください。'.format(self.player.que2bL), ans2bM_label = '{}を打ってください。'.format(self.player.que2bM), ans2bN_label = '{}を打ってください。'.format(self.player.que2bN), ans2bO_label = '{}を打ってください。'.format(self.player.que2bO), ans2bP_label = '{}を打ってください。'.format(self.player.que2bP), ans2bQ_label = '{}を打ってください。'.format(self.player.que2bQ), ans2bR_label = '{}を打ってください。'.format(self.player.que2bR), ans2bS_label = '{}を打ってください。'.format(self.player.que2bS), ans2bT_label = '{}を打ってください。'.format(self.player.que2bT), ans2bU_label = '{}を打ってください。'.format(self.player.que2bU), ans2bV_label = '{}を打ってください。'.format(self.player.que2bV), ans2bW_label = '{}を打ってください。'.format(self.player.que2bW), ans2bX_label = '{}を打ってください。'.format(self.player.que2bX), ans2bY_label = '{}を打ってください。'.format(self.player.que2bY), ans2bZ_label = '{}を打ってください。'.format(self.player.que2bZ), ) def is_displayed(self): return self.group.veto2 == 1 class ResultsWait2b(WaitPage): after_all_players_arrive = 'set_earning2b' def is_displayed(self): return self.group.veto1 ==1 class Game2n(Page): timeout_seconds = 20 form_model = 'player' form_fields = ['ans2nA', 'ans2nB', 'ans2nC', 'ans2nD', 'ans2nE', 'ans2nF', 'ans2nG', 'ans2nH', 'ans2nI', 'ans2nJ', 'ans2nK', 'ans2nL', 'ans2nM', 'ans2nN', 'ans2nO', 'ans2nP', 'ans2nQ', 'ans2nR', 'ans2nS', 'ans2nT', 'ans2nU', 'ans2nV', 'ans2nW', 'ans2nX', 'ans2nY', 'ans2nZ' ] def vars_for_template(self): return dict( ans2nA_label = '{}を打ってください。'.format(self.player.que2nA), ans2nB_label = '{}を打ってください。'.format(self.player.que2nB), ans2nC_label = '{}を打ってください。'.format(self.player.que2nC), ans2nD_label = '{}を打ってください。'.format(self.player.que2nD), ans2nE_label = '{}を打ってください。'.format(self.player.que2nE), ans2nF_label = '{}を打ってください。'.format(self.player.que2nF), ans2nG_label = '{}を打ってください。'.format(self.player.que2nG), ans2nH_label = '{}を打ってください。'.format(self.player.que2nH), ans2nI_label = '{}を打ってください。'.format(self.player.que2nI), ans2nJ_label = '{}を打ってください。'.format(self.player.que2nJ), ans2nK_label = '{}を打ってください。'.format(self.player.que2nK), ans2nL_label = '{}を打ってください。'.format(self.player.que2nL), ans2nM_label = '{}を打ってください。'.format(self.player.que2nM), ans2nN_label = '{}を打ってください。'.format(self.player.que2nN), ans2nO_label = '{}を打ってください。'.format(self.player.que2nO), ans2nP_label = '{}を打ってください。'.format(self.player.que2nP), ans2nQ_label = '{}を打ってください。'.format(self.player.que2nQ), ans2nR_label = '{}を打ってください。'.format(self.player.que2nR), ans2nS_label = '{}を打ってください。'.format(self.player.que2nS), ans2nT_label = '{}を打ってください。'.format(self.player.que2nT), ans2nU_label = '{}を打ってください。'.format(self.player.que2nU), ans2nV_label = '{}を打ってください。'.format(self.player.que2nV), ans2nW_label = '{}を打ってください。'.format(self.player.que2nW), ans2nX_label = '{}を打ってください。'.format(self.player.que2nX), ans2nY_label = '{}を打ってください。'.format(self.player.que2nY), ans2nZ_label = '{}を打ってください。'.format(self.player.que2nZ), ) def is_displayed(self): return self.group.veto2 == 2 class ResultsWait2n(WaitPage): after_all_players_arrive = 'set_earning2n' def is_displayed(self): return self.group.veto1 ==2 class ResultsWaitPage2b(WaitPage): after_all_players_arrive = 'set_payoffs2b' def is_displayed(self): return self.group.veto2 == 1 class ResultsWaitPage2n(WaitPage): after_all_players_arrive = 'set_payoffs2n' def is_displayed(self): return self.group.veto2 == 2 class Results2(Page): form_model = 'player' form_fields = ['feelings2_2'] def vars_for_template(self): return dict(payoff2 = self.player.payoff2, payoff1_2 = self.player.payoff1_2) #ラウンド3 class NextRound3(Page): pass class GroupWaiting3(WaitPage): wait_for_all_groups = True class Victim3Q1(Page): form_model = 'player' form_fields = ['feelings3_1'] def is_displayed(self): return self.player.id_in_group == 1 class Victim3Q2(Page): form_model = 'player' form_fields = ['feelings3_1'] def is_displayed(self): return self.player.id_in_group == 2 class Victim3Q3(Page): form_model = 'group' form_fields = ['veto3'] def is_displayed(self): return self.player.id_in_group == 3 class Victim3Q3_2(Page): form_model = 'player' form_fields = ['feelings3_1'] def is_displayed(self): return self.player.id_in_group == 3 class GroupWaitingForVeto3(WaitPage): pass class Game3agreeInfo(Page): def is_displayed(self): return self.group.veto3 == 1 class Game3disagreeInfo(Page): def is_displayed(self): return self.group.veto3 == 2 class Game3(Page): timeout_seconds = 20 form_model = 'player' form_fields = ['ans3A', 'ans3B', 'ans3C', 'ans3D', 'ans3E', 'ans3F', 'ans3G', 'ans3H', 'ans3I', 'ans3J', 'ans3K', 'ans3L', 'ans3M', 'ans3N', 'ans3O', 'ans3P', 'ans3Q', 'ans3R', 'ans3S', 'ans3T', 'ans3U', 'ans3V', 'ans3W', 'ans3X', 'ans3Y', 'ans3Z' ] def vars_for_template(self): return dict( ans3A_label = '{}を打ってください。'.format(self.player.que3A), ans3B_label = '{}を打ってください。'.format(self.player.que3B), ans3C_label = '{}を打ってください。'.format(self.player.que3C), ans3D_label = '{}を打ってください。'.format(self.player.que3D), ans3E_label = '{}を打ってください。'.format(self.player.que3E), ans3F_label = '{}を打ってください。'.format(self.player.que3F), ans3G_label = '{}を打ってください。'.format(self.player.que3G), ans3H_label = '{}を打ってください。'.format(self.player.que3H), ans3I_label = '{}を打ってください。'.format(self.player.que3I), ans3J_label = '{}を打ってください。'.format(self.player.que3J), ans3K_label = '{}を打ってください。'.format(self.player.que3K), ans3L_label = '{}を打ってください。'.format(self.player.que3L), ans3M_label = '{}を打ってください。'.format(self.player.que3M), ans3N_label = '{}を打ってください。'.format(self.player.que3N), ans3O_label = '{}を打ってください。'.format(self.player.que3O), ans3P_label = '{}を打ってください。'.format(self.player.que3P), ans3Q_label = '{}を打ってください。'.format(self.player.que3Q), ans3R_label = '{}を打ってください。'.format(self.player.que3R), ans3S_label = '{}を打ってください。'.format(self.player.que3S), ans3T_label = '{}を打ってください。'.format(self.player.que3T), ans3U_label = '{}を打ってください。'.format(self.player.que3U), ans3V_label = '{}を打ってください。'.format(self.player.que3V), ans3W_label = '{}を打ってください。'.format(self.player.que3W), ans3X_label = '{}を打ってください。'.format(self.player.que3X), ans3Y_label = '{}を打ってください。'.format(self.player.que3Y), ans3Z_label = '{}を打ってください。'.format(self.player.que3Z), ) class ResultsWait3(WaitPage): after_all_players_arrive = 'set_earning3' class Game3benefitInfo(Page): def is_displayed(self): return self.group.veto3 == 1 class Game3nobenefitInfo(Page): def is_displayed(self): return self.group.veto3 == 2 class Game3b(Page): timeout_seconds = 20 form_model = 'player' form_fields = ['ans3bA', 'ans3bB', 'ans3bC', 'ans3bD', 'ans3bE', 'ans3bF', 'ans3bG', 'ans3bH', 'ans3bI', 'ans3bJ', 'ans3bK', 'ans3bL', 'ans3bM', 'ans3bN', 'ans3bO', 'ans3bP', 'ans3bQ', 'ans3bR', 'ans3bS', 'ans3bT', 'ans3bU', 'ans3bV', 'ans3bW', 'ans3bX', 'ans3bY', 'ans3bZ' ] def vars_for_template(self): return dict( ans3bA_label = '{}を打ってください。'.format(self.player.que3bA), ans3bB_label = '{}を打ってください。'.format(self.player.que3bB), ans3bC_label = '{}を打ってください。'.format(self.player.que3bC), ans3bD_label = '{}を打ってください。'.format(self.player.que3bD), ans3bE_label = '{}を打ってください。'.format(self.player.que3bE), ans3bF_label = '{}を打ってください。'.format(self.player.que3bF), ans3bG_label = '{}を打ってください。'.format(self.player.que3bG), ans3bH_label = '{}を打ってください。'.format(self.player.que3bH), ans3bI_label = '{}を打ってください。'.format(self.player.que3bI), ans3bJ_label = '{}を打ってください。'.format(self.player.que3bJ), ans3bK_label = '{}を打ってください。'.format(self.player.que3bK), ans3bL_label = '{}を打ってください。'.format(self.player.que3bL), ans3bM_label = '{}を打ってください。'.format(self.player.que3bM), ans3bN_label = '{}を打ってください。'.format(self.player.que3bN), ans3bO_label = '{}を打ってください。'.format(self.player.que3bO), ans3bP_label = '{}を打ってください。'.format(self.player.que3bP), ans3bQ_label = '{}を打ってください。'.format(self.player.que3bQ), ans3bR_label = '{}を打ってください。'.format(self.player.que3bR), ans3bS_label = '{}を打ってください。'.format(self.player.que3bS), ans3bT_label = '{}を打ってください。'.format(self.player.que3bT), ans3bU_label = '{}を打ってください。'.format(self.player.que3bU), ans3bV_label = '{}を打ってください。'.format(self.player.que3bV), ans3bW_label = '{}を打ってください。'.format(self.player.que3bW), ans3bX_label = '{}を打ってください。'.format(self.player.que3bX), ans3bY_label = '{}を打ってください。'.format(self.player.que3bY), ans3bZ_label = '{}を打ってください。'.format(self.player.que3bZ), ) def is_displayed(self): return self.group.veto3 == 1 class ResultsWait3b(WaitPage): after_all_players_arrive = 'set_earning3b' def is_displayed(self): return self.group.veto1 ==1 class Game3n(Page): timeout_seconds = 20 form_model = 'player' form_fields = ['ans3nA', 'ans3nB', 'ans3nC', 'ans3nD', 'ans3nE', 'ans3nF', 'ans3nG', 'ans3nH', 'ans3nI', 'ans3nJ', 'ans3nK', 'ans3nL', 'ans3nM', 'ans3nN', 'ans3nO', 'ans3nP', 'ans3nQ', 'ans3nR', 'ans3nS', 'ans3nT', 'ans3nU', 'ans3nV', 'ans3nW', 'ans3nX', 'ans3nY', 'ans3nZ' ] def vars_for_template(self): return dict( ans3nA_label = '{}を打ってください。'.format(self.player.que3nA), ans3nB_label = '{}を打ってください。'.format(self.player.que3nB), ans3nC_label = '{}を打ってください。'.format(self.player.que3nC), ans3nD_label = '{}を打ってください。'.format(self.player.que3nD), ans3nE_label = '{}を打ってください。'.format(self.player.que3nE), ans3nF_label = '{}を打ってください。'.format(self.player.que3nF), ans3nG_label = '{}を打ってください。'.format(self.player.que3nG), ans3nH_label = '{}を打ってください。'.format(self.player.que3nH), ans3nI_label = '{}を打ってください。'.format(self.player.que3nI), ans3nJ_label = '{}を打ってください。'.format(self.player.que3nJ), ans3nK_label = '{}を打ってください。'.format(self.player.que3nK), ans3nL_label = '{}を打ってください。'.format(self.player.que3nL), ans3nM_label = '{}を打ってください。'.format(self.player.que3nM), ans3nN_label = '{}を打ってください。'.format(self.player.que3nN), ans3nO_label = '{}を打ってください。'.format(self.player.que3nO), ans3nP_label = '{}を打ってください。'.format(self.player.que3nP), ans3nQ_label = '{}を打ってください。'.format(self.player.que3nQ), ans3nR_label = '{}を打ってください。'.format(self.player.que3nR), ans3nS_label = '{}を打ってください。'.format(self.player.que3nS), ans3nT_label = '{}を打ってください。'.format(self.player.que3nT), ans3nU_label = '{}を打ってください。'.format(self.player.que3nU), ans3nV_label = '{}を打ってください。'.format(self.player.que3nV), ans3nW_label = '{}を打ってください。'.format(self.player.que3nW), ans3nX_label = '{}を打ってください。'.format(self.player.que3nX), ans3nY_label = '{}を打ってください。'.format(self.player.que3nY), ans3nZ_label = '{}を打ってください。'.format(self.player.que3nZ), ) def is_displayed(self): return self.group.veto3 == 2 class ResultsWait3n(WaitPage): after_all_players_arrive = 'set_earning3n' def is_displayed(self): return self.group.veto1 ==2 class ResultsWaitPage3b(WaitPage): after_all_players_arrive = 'set_payoffs3b' def is_displayed(self): return self.group.veto3 == 1 class ResultsWaitPage3n(WaitPage): after_all_players_arrive = 'set_payoffs3n' def is_displayed(self): return self.group.veto3 == 2 class Results3(Page): form_model = 'player' form_fields = ['feelings3_2'] def vars_for_teplate(self): return dict(payoff3 = self.player.payoff3, payoff1_3 = self.player.payoff1_3) page_sequence = [GameTrialInfo, Game0, ResultsWait0, Game0Results, NextRound1, GroupWaiting1, Victim1Q1, Victim1Q1_2, Victim1Q2, Victim1Q3, GroupWaitingForVeto1, Game1agreeInfo, Game1disagreeInfo, Game1, ResultsWait1, Game1benefitInfo, Game1nobenefitInfo, Game1b, ResultsWait1b, Game1n, ResultsWait1n, ResultsWaitPage1b, ResultsWaitPage1n, Results1, NextRound2, GroupWaiting2, Victim2Q1, Victim2Q2, Victim2Q2_2, Victim2Q3, GroupWaitingForVeto2, Game2agreeInfo, Game2disagreeInfo, Game2, ResultsWait2, Game2benefitInfo, Game2nobenefitInfo, Game2b, ResultsWait2b, Game2n, ResultsWait2n, ResultsWaitPage2b, ResultsWaitPage2n, Results2, NextRound3, GroupWaiting3, Victim3Q1, Victim3Q2, Victim3Q3, Victim3Q3_2, GroupWaitingForVeto3, Game3agreeInfo, Game3disagreeInfo, Game3, ResultsWait3, Game3benefitInfo, Game3nobenefitInfo, Game3b, ResultsWait3b, Game3n, ResultsWait3n, ResultsWaitPage3b, ResultsWaitPage3n, Results3]