from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import time class General(Page): pass class Welcome2(Page): pass class Task1(Page): pass class Start(Page): def is_displayed(self): return self.round_number == 1 def before_next_page(self): self.participant.vars['expiry'] = time.time() + 300 ########################## TASK 1 QUESTIONS ######################### class Question1(Page): form_model = 'player' form_fields = ['q1_t1'] #subject input question 1 task 1 #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q1_t1 == Constants.total_q1_t1: self.player.correct_q1_t1 = 1 elif self.player.q1_t1 != Constants.total_q1_t1: self.player.correct_q1_t1 = 0 class Question2(Page): form_model = 'player' form_fields = ['q2_t1'] #subject input question 2 task 1 #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q2_t1 == Constants.total_q2_t1: self.player.correct_q2_t1 = 1 elif self.player.q2_t1 != Constants.total_q2_t1: self.player.correct_q2_t1 = 0 class Question3(Page): form_model = 'player' form_fields = ['q3_t1'] #subject input question 3 task 1 #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q3_t1 == Constants.total_q3_t1: self.player.correct_q3_t1 = 1 elif self.player.q3_t1 != Constants.total_q3_t1: self.player.correct_q3_t1 = 0 class Question4(Page): form_model = 'player' form_fields = ['q4_t1'] #subject input question 4 task 1 #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q4_t1 == Constants.total_q4_t1: self.player.correct_q4_t1 = 1 elif self.player.q4_t1 != Constants.total_q4_t1: self.player.correct_q4_t1 = 0 class Question5(Page): form_model = 'player' form_fields = ['q5_t1'] #subject input question 5 task 1 #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q5_t1 == Constants.total_q5_t1: self.player.correct_q5_t1 = 1 elif self.player.q5_t1 != Constants.total_q5_t1: self.player.correct_q5_t1 = 0 class Question6(Page): form_model = 'player' form_fields = ['q6_t1'] #subject input question 6 task 1 #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q6_t1 == Constants.total_q6_t1: self.player.correct_q6_t1 = 1 elif self.player.q6_t1 != Constants.total_q6_t1: self.player.correct_q6_t1 = 0 class Question7(Page): form_model = 'player' form_fields = ['q7_t1'] #subject input question 7 task 1 #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q7_t1 == Constants.total_q7_t1: self.player.correct_q7_t1 = 1 elif self.player.q7_t1 != Constants.total_q7_t1: self.player.correct_q7_t1 = 0 class Question8(Page): form_model = 'player' form_fields = ['q8_t1'] #subject input question 8 task 1 #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q8_t1 == Constants.total_q8_t1: self.player.correct_q8_t1 = 1 elif self.player.q8_t1 != Constants.total_q8_t1: self.player.correct_q8_t1 = 0 class Question9(Page): form_model = 'player' form_fields = ['q9_t1'] #subject input question 9 task 1 #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q9_t1 == Constants.total_q9_t1: self.player.correct_q9_t1 = 1 elif self.player.q9_t1 != Constants.total_q9_t1: self.player.correct_q9_t1 = 0 class Question10(Page): form_model = 'player' form_fields = ['q10_t1'] #subject input question 10 task 1 #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q10_t1 == Constants.total_q10_t1: self.player.correct_q10_t1 = 1 elif self.player.q10_t1 != Constants.total_q10_t1: self.player.correct_q10_t1 = 0 class Question11(Page): form_model = 'player' form_fields = ['q11_t1'] #subject input question 11 task 1 #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q11_t1 == Constants.total_q11_t1: self.player.correct_q11_t1 = 1 elif self.player.q11_t1 != Constants.total_q11_t1: self.player.correct_q11_t1 = 0 class Question12(Page): form_model = 'player' form_fields = ['q12_t1'] #subject input question 12 task 1 #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q12_t1 == Constants.total_q12_t1: self.player.correct_q12_t1 = 1 elif self.player.q12_t1 != Constants.total_q12_t1: self.player.correct_q12_t1 = 0 class Question13(Page): form_model = 'player' form_fields = ['q13_t1'] #subject input question 13 task 1 #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q13_t1 == Constants.total_q13_t1: self.player.correct_q13_t1 = 1 elif self.player.q13_t1 != Constants.total_q13_t1: self.player.correct_q13_t1 = 0 class Question14(Page): form_model = 'player' form_fields = ['q14_t1'] #subject input question 14 task 1 #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q14_t1 == Constants.total_q14_t1: self.player.correct_q14_t1 = 1 elif self.player.q14_t1 != Constants.total_q14_t1: self.player.correct_q14_t1 = 0 class Question15(Page): form_model = 'player' form_fields = ['q15_t1'] #subject input question 15 task 1 #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q15_t1 == Constants.total_q15_t1: self.player.correct_q15_t1 = 1 elif self.player.q15_t1 != Constants.total_q15_t1: self.player.correct_q15_t1 = 0 class Question16(Page): form_model = 'player' form_fields = ['q16_t1'] #subject input question 16 task 1 #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q16_t1 == Constants.total_q16_t1: self.player.correct_q16_t1 = 1 elif self.player.q16_t1 != Constants.total_q16_t1: self.player.correct_q16_t1 = 0 class Question17(Page): form_model = 'player' form_fields = ['q17_t1'] #subject input question 17 task 1 #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q17_t1 == Constants.total_q17_t1: self.player.correct_q17_t1 = 1 elif self.player.q17_t1 != Constants.total_q17_t1: self.player.correct_q17_t1 = 0 class Question18(Page): form_model = 'player' form_fields = ['q18_t1'] #subject input question 18 task 1 #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q18_t1 == Constants.total_q18_t1: self.player.correct_q18_t1 = 1 elif self.player.q18_t1 != Constants.total_q18_t1: self.player.correct_q18_t1 = 0 class Question19(Page): form_model = 'player' form_fields = ['q19_t1'] #subject input question 19 task 1 #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q19_t1 == Constants.total_q19_t1: self.player.correct_q19_t1 = 1 elif self.player.q19_t1 != Constants.total_q19_t1: self.player.correct_q19_t1 = 0 class Question20(Page): form_model = 'player' form_fields = ['q20_t1'] #subject input question 20 task 1 #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q20_t1 == Constants.total_q20_t1: self.player.correct_q20_t1 = 1 elif self.player.q20_t1 != Constants.total_q20_t1: self.player.correct_q20_t1 = 0 class Task2(Page): def before_next_page(self): #payoff task 1 self.player.payoff_task1 = round((self.player.correct_q1_t1 + self.player.correct_q2_t1 + self.player.correct_q3_t1 + self.player.correct_q4_t1 + self.player.correct_q5_t1 + self.player.correct_q6_t1 + self.player.correct_q7_t1 + self.player.correct_q8_t1 + self.player.correct_q9_t1 + self.player.correct_q10_t1 + self.player.correct_q11_t1 + self.player.correct_q12_t1 + self.player.correct_q13_t1 + self.player.correct_q14_t1 + self.player.correct_q15_t1 + self.player.correct_q16_t1 + self.player.correct_q17_t1 + self.player.correct_q18_t1 + self.player.correct_q19_t1 + self.player.correct_q20_t1)*(0.02), 2) #how many they got correct task1 self.player.total_task1 = (self.player.correct_q1_t1 + self.player.correct_q2_t1 + self.player.correct_q3_t1 + self.player.correct_q4_t1 + self.player.correct_q5_t1 + self.player.correct_q6_t1 + self.player.correct_q7_t1 + self.player.correct_q8_t1 + self.player.correct_q9_t1 + self.player.correct_q10_t1 + self.player.correct_q11_t1 + self.player.correct_q12_t1 + self.player.correct_q13_t1 + self.player.correct_q14_t1 + self.player.correct_q15_t1 + self.player.correct_q16_t1 + self.player.correct_q17_t1 + self.player.correct_q18_t1 + self.player.correct_q19_t1 + self.player.correct_q20_t1) #def before_next_page(self): self.group.group_role() ##class Task2p2Bread1(Page): ## ## def is_displayed(self): ## return self.player.roles == 1 ## ##class Task2p2Support2(Page): ## ## def is_displayed(self): ## return self.player.roles == 0 class Task2p2(Page): pass ##class Choice(Page): ## form_model = 'player' ## form_fields = ['choice'] ## ## def before_next_page(self): ## self.group.group_choice() class ChoiceBread(Page): form_model = 'player' form_fields = ['choice'] def is_displayed(self): return self.player.roles == 1 def before_next_page(self): self.group.group_choice() class ChoiceSupporter(Page): form_model = 'player' form_fields = ['choice'] def is_displayed(self): return self.player.roles == 0 def before_next_page(self): self.group.group_choice() ######################## TASK 2 QUESTIONS ############################################################## class Start2(Page): def is_displayed(self): return self.round_number == 1 def before_next_page(self): self.participant.vars['expiry'] = time.time() + 300 class Question1p2(Page): form_model = 'player' form_fields = ['q1_t2'] #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q1_t2 == Constants.total_q1_t2: self.player.correct_q1_t2 = 1 elif self.player.q1_t2 != Constants.total_q1_t2: self.player.correct_q1_t2 = 0 class Question2p2(Page): form_model = 'player' form_fields = ['q2_t2'] #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q2_t2 == Constants.total_q2_t2: self.player.correct_q2_t2 = 1 elif self.player.q2_t2 != Constants.total_q2_t2: self.player.correct_q2_t2 = 0 class Question3p2(Page): form_model = 'player' form_fields = ['q3_t2'] #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q3_t2 == Constants.total_q3_t2: self.player.correct_q3_t2 = 1 elif self.player.q3_t2 != Constants.total_q3_t2: self.player.correct_q3_t2 = 0 class Question4p2(Page): form_model = 'player' form_fields = ['q4_t2'] #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q4_t2 == Constants.total_q4_t2: self.player.correct_q4_t2 = 1 elif self.player.q4_t2 != Constants.total_q4_t2: self.player.correct_q4_t2 = 0 class Question5p2(Page): form_model = 'player' form_fields = ['q5_t2'] #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q5_t2 == Constants.total_q5_t2: self.player.correct_q5_t2 = 1 elif self.player.q5_t2 != Constants.total_q5_t2: self.player.correct_q5_t2 = 0 class Question6p2(Page): form_model = 'player' form_fields = ['q6_t2'] #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q6_t2 == Constants.total_q6_t2: self.player.correct_q6_t2 = 1 elif self.player.q6_t2 != Constants.total_q6_t2: self.player.correct_q6_t2 = 0 class Question7p2(Page): form_model = 'player' form_fields = ['q7_t2'] #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q7_t2 == Constants.total_q7_t2: self.player.correct_q7_t2 = 1 elif self.player.q7_t2 != Constants.total_q7_t2: self.player.correct_q7_t2 = 0 class Question8p2(Page): form_model = 'player' form_fields = ['q8_t2'] #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q8_t2 == Constants.total_q8_t2: self.player.correct_q8_t2 = 1 elif self.player.q8_t2 != Constants.total_q8_t2: self.player.correct_q8_t2 = 0 class Question9p2(Page): form_model = 'player' form_fields = ['q9_t2'] #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q9_t2 == Constants.total_q9_t2: self.player.correct_q9_t2 = 1 elif self.player.q9_t2 != Constants.total_q9_t2: self.player.correct_q9_t2 = 0 class Question10p2(Page): form_model = 'player' form_fields = ['q10_t2'] #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q10_t2 == Constants.total_q10_t2: self.player.correct_q10_t2 = 1 elif self.player.q10_t2 != Constants.total_q10_t2: self.player.correct_q10_t2 = 0 class Question11p2(Page): form_model = 'player' form_fields = ['q11_t2'] #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q11_t2 == Constants.total_q11_t2: self.player.correct_q11_t2 = 1 elif self.player.q11_t2 != Constants.total_q11_t2: self.player.correct_q11_t2 = 0 class Question12p2(Page): form_model = 'player' form_fields = ['q12_t2'] #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q12_t2 == Constants.total_q12_t2: self.player.correct_q12_t2 = 1 elif self.player.q12_t2 != Constants.total_q12_t2: self.player.correct_q12_t2 = 0 class Question13p2(Page): form_model = 'player' form_fields = ['q13_t2'] #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q13_t2 == Constants.total_q13_t2: self.player.correct_q13_t2 = 1 elif self.player.q13_t2 != Constants.total_q13_t2: self.player.correct_q13_t2 = 0 class Question14p2(Page): form_model = 'player' form_fields = ['q14_t2'] #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q14_t2 == Constants.total_q14_t2: self.player.correct_q14_t2 = 1 elif self.player.q14_t2 != Constants.total_q14_t2: self.player.correct_q14_t2 = 0 class Question15p2(Page): form_model = 'player' form_fields = ['q15_t2'] #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q15_t2 == Constants.total_q15_t2: self.player.correct_q15_t2 = 1 elif self.player.q15_t2 != Constants.total_q15_t2: self.player.correct_q15_t2 = 0 class Question16p2(Page): form_model = 'player' form_fields = ['q16_t2'] #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q16_t2 == Constants.total_q16_t2: self.player.correct_q16_t2 = 1 elif self.player.q16_t2 != Constants.total_q16_t2: self.player.correct_q16_t2 = 0 class Question17p2(Page): form_model = 'player' form_fields = ['q17_t2'] #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q17_t2 == Constants.total_q17_t2: self.player.correct_q17_t2 = 1 elif self.player.q17_t2 != Constants.total_q17_t2: self.player.correct_q17_t2 = 0 class Question18p2(Page): form_model = 'player' form_fields = ['q18_t2'] #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q18_t2 == Constants.total_q18_t2: self.player.correct_q18_t2 = 1 elif self.player.q18_t2 != Constants.total_q18_t2: self.player.correct_q18_t2 = 0 class Question19p2(Page): form_model = 'player' form_fields = ['q19_t2'] #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q19_t2 == Constants.total_q19_t2: self.player.correct_q19_t2 = 1 elif self.player.q19_t2 != Constants.total_q19_t2: self.player.correct_q19_t2 = 0 class Question20p2(Page): form_model = 'player' form_fields = ['q20_t2'] #timer def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 3 #determines subject input is correct def before_next_page(self): if self.player.q20_t2 == Constants.total_q20_t2: self.player.correct_q20_t2 = 1 elif self.player.q20_t2 != Constants.total_q20_t2: self.player.correct_q20_t2 = 0 class Continue1(Page): def before_next_page(self): # number the got correct task 2 for payoff self.player.num_task2 = round((self.player.correct_q1_t2 + self.player.correct_q2_t2 + self.player.correct_q3_t2 + self.player.correct_q4_t2 + self.player.correct_q5_t2 + self.player.correct_q6_t2 + self.player.correct_q7_t2 + self.player.correct_q8_t2 + self.player.correct_q9_t2 + self.player.correct_q10_t2 + self.player.correct_q11_t2 + self.player.correct_q12_t2 + self.player.correct_q13_t2 + self.player.correct_q14_t2 + self.player.correct_q15_t2 + self.player.correct_q16_t2 + self.player.correct_q17_t2 + self.player.correct_q18_t2 + self.player.correct_q19_t2 + self.player.correct_q20_t2 ), 2) # number they got correct task 2 for self.player.num_check = (self.player.correct_q1_t2 + self.player.correct_q2_t2 + self.player.correct_q3_t2 + self.player.correct_q4_t2 + self.player.correct_q5_t2 + self.player.correct_q6_t2 + self.player.correct_q7_t2 + self.player.correct_q8_t2 + self.player.correct_q9_t2 + self.player.correct_q10_t2 + self.player.correct_q11_t2 + self.player.correct_q12_t2 + self.player.correct_q13_t2 + self.player.correct_q14_t2 + self.player.correct_q15_t2 + self.player.correct_q16_t2 + self.player.correct_q17_t2 + self.player.correct_q18_t2 + self.player.correct_q19_t2 + self.player.correct_q20_t2 ) class Survey(Page): pass class SurveyQuestions(Page): form_model = 'player' form_fields = ['s1','s2', 's3', 's4', 's5', 's6', 's7','s8'] #survey question class SurveyQuestions2(Page): form_model = 'player' form_fields = [ 's9', 's10', 's11', 's12', 's13','s14', 's15','s16', 's17', 's18', 's19', 's20', 's21', 's22', 's23', 's24', 's25', 's26', 's27',] #survey question ##class ResultsWaitPage(WaitPage): ## wait_for_all_groups = True class DonationRole(Page): form_model = 'player' form_fields = ['donation1', 'donation2'] ## def is_displayed(self): ## return self.player.donate == 1 def error_message(self, values): print('values is', values) if values["donation1"] + values["donation2"] > 3: return 'You can not give more than $3 total.' ##class DonationGender(Page): ## form_model = 'player' ## form_fields = ['donation1', 'donation2'] ## ## def is_displayed(self): ## return self.player.donate == 0 ## ## def error_message(self, values): ## print('values is', values) ## if values["donation1"] + values["donation2"] > 3: ## return 'You can not give more than $3 total.' class ResultsWaitPage(WaitPage): wait_for_all_groups = True title_text = "Please Wait" body_text = "You have completed the whole experiment. We need to wait for other participants' performance to determine your payment, which may take a while. You can do your other stuffs while others finish, but please DO NOT close this page or return the task, or forget to come back to click finish, otherwise we cannot access to your payment. Thanks for your patience!" class Continue(Page): def before_next_page(self): self.group.group_pay() self.group.group_check() class Continue2(Page): def before_next_page(self): self.group.max_value() self.player.max = self.group.max2 #self.player.max = max(numtotal_check) class Continue3(Page): def before_next_page(self): if self.player.choice2 == 1: if Constants.paymentprob <= 20: if self.player.numtotal_check == self.player.max: self.player.payoff_task2 = round((self.player.numtotal_task2 * 0.16)/2, 2) self.player.winner = 1 elif self.player.numtotal_check != self.player.max: self.player.payoff_task2 = 0 self.player.winner = 0 elif Constants.paymentprob > 20: self.player.payoff_task2 = round((self.player.numtotal_task2 * 0.04)/2, 2) self.player.winner = 0 elif self.player.choice2 == 2: if Constants.paymentprob <= 40: if self.player.numtotal_check == self.player.max: self.player.payoff_task2 = round((self.player.numtotal_task2 * 0.16)/2, 2) self.player.winner = 1 elif self.player.numtotal_check != self.player.max: self.player.payoff_task2 = 0 self.player.winner = 0 elif Constants.paymentprob > 40: self.player.payoff_task2 = round((self.player.numtotal_task2 * 0.04)/2, 2) self.player.winner = 0 elif self.player.choice2 == 3: if Constants.paymentprob <= 60: if self.player.numtotal_check == self.player.max: self.player.payoff_task2 = round((self.player.numtotal_task2 * 0.16)/2, 2) self.player.winner = 1 elif self.player.numtotal_check != self.player.max: self.player.payoff_task2 = 0 self.player.winner = 0 elif Constants.paymentprob > 60: self.player.payoff_task2 = round((self.player.numtotal_task2 * 0.04)/2, 2) self.player.winner = 0 elif self.player.choice2 == 4: if Constants.paymentprob <= 80: if self.player.numtotal_check == self.player.max: self.player.payoff_task2 = round((self.player.numtotal_task2 * 0.16)/2, 2) self.player.winner = 1 elif self.player.numtotal_check != self.player.max: self.player.payoff_task2 = 0 self.player.winner = 0 elif Constants.paymentprob > 80: self.player.payoff_task2 = round((self.player.numtotal_task2 * 0.04)/2, 2) self.player.winner = 0 elif self.player.choice2 == 5: if self.player.numtotal_check == self.player.max: self.player.payoff_task2 = round((self.player.numtotal_task2 * 0.16)/2, 2) self.player.winner = 1 elif self.player.numtotal_check != self.player.max: self.player.payoff_task2 = 0 self.player.winner = 0 else: self.player.payoff_task2 = round((self.player.numtotal_task2 * 0.04)/2, 2) self.player.winner = 0 class ResultsWaitPage1(WaitPage): wait_for_all_groups = True class Continue4(Page): form_model = 'player' form_fields = ['s28'] #survey question def before_next_page(self): self.group.group_winner() class Continue5(Page): def before_next_page(self): self.player.final_pay = round(self.player.task2_payoff + self.player.payoff_task1, 2) ##class SurveyQuestions2(Page): ## ## form_model = 'player' ## form_fields = [ 's9', 's10', 's11', 's12', ## 's13','s14', 's15','s16', ## 's17', 's18', 's19', 's20', 's21', ## 's22', 's23', 's24', 's25', 's26', ## 's27', 's28', 's29'] #survey question ## ## def before_next_page(self): ## self.player.final_pay = round(self.player.task2_payoff + self.player.payoff_task1, 2) class Payment(Page): pass page_sequence = [ Welcome2, General, Task1, Start, Question1, Question2, Question3, Question4, Question5, Question6, Question7, Question8, Question9, Question10, Question11, Question12, Question13, Question14, Question15, Question16, Question17, Question18, Question19, Question20, Task2, Task2p2, ChoiceBread, ChoiceSupporter, Start2, Question1p2, Question2p2, Question3p2, Question4p2, Question5p2, Question6p2, Question7p2, Question8p2, Question9p2, Question10p2, Question11p2, Question12p2, Question13p2, Question14p2, Question15p2, Question16p2, Question17p2, Question18p2, Question19p2, Question20p2, Continue1, Survey, SurveyQuestions, SurveyQuestions2, DonationRole, ## DonationGender, ResultsWaitPage, Continue, Continue2, Continue3, ResultsWaitPage1, Continue4, Continue5, Payment ]