from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage, models from .models import Constants class Introduction2(Page): def before_next_page(self): import time self.participant.vars['expiry'] = time.time() + 3 * 60 class trainingPage(Page): form_model = 'player' form_fields = ['trtotalWords', 'trtotalPoints', 'trtotalLetters', 'goalPoints'] def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() if self.timeout_happened: self.player.goalPoints = 15; def js_vars(self): return dict( jsaveboardQ1=self.player.saveBoardQ1, jsaveboardQ2=self.player.saveBoardQ2, jsaveboardQ3=self.player.saveBoardQ3, jsaveboardQ4=self.player.saveBoardQ4, jhandQ1=self.player.handQ1, jhandQ2=self.player.handQ2, jhandQ3=self.player.handQ3, jhandQ4=self.player.handQ4, jrackQ1=self.player.rackQ1, jrackQ2=self.player.rackQ2, jrackQ3=self.player.rackQ3, jrackQ4=self.player.rackQ4, jtotalPoints=self.player.totalPoints, jtotalWords=self.player.totalWords, jtotalLetters=self.player.totalLetters, jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4 ) class understanding(Page): form_model = 'player' form_fields = ['Q1', 'Q2', 'Q3', 'Q4', 'Q5'] def Q1_error_message(self, value): print('value is', value) if not value: return 'Es scheint als haben Sie hier etwas missverstanden, bitte überprüfen Sie Ihre Aussage.' def Q2_error_message(self, value): print('value is', value) if not value: return 'Es scheint als haben Sie hier etwas missverstanden, bitte überprüfen Sie Ihre Aussage.' def Q3_error_message(self, value): print('value is', value) if not value: return 'Es scheint als haben Sie hier etwas missverstanden, bitte überprüfen Sie Ihre Aussage.' def Q4_error_message(self, value): print('value is', value) if not value: return 'Es scheint als haben Sie hier etwas missverstanden, bitte überprüfen Sie Ihre Aussage.' def Q5_error_message(self, value): print('value is', value) if not value: return 'Es scheint als haben Sie hier etwas missverstanden, bitte überprüfen Sie Ihre Aussage.' def before_next_page(self): import time # user has 5 minutes to complete as many pages as possible self.participant.vars['expiry'] = time.time() + 12 * 60 class PlanningPageWF(Page): def is_displayed(self): return (self.player.id_in_group % 4 == 0 or self.player.id_in_group % 4 == 2) form_model = 'player' form_fields = ['estimatedLetters_WF1', 'estimatedLetters_WF2', 'estimatedLetters_WF3', 'estimatedLetters_WF4'] def error_message(self, values): print('values is', values) if values['estimatedLetters_WF1'] + values['estimatedLetters_WF2'] + values['estimatedLetters_WF3'] + values[ 'estimatedLetters_WF4'] >= 87: return 'Die Summe der zu verwendenden Buchstaben darf 86 nicht überschreiten.' def before_next_page(self): import time # user has 5 minutes to complete as many pages as possible self.participant.vars['expiry'] = time.time() + 12 * 60 def js_vars(self): return dict( jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4, jtrTotalWords=self.player.trtotalWords, jtrTotalPoints=self.player.trtotalPoints, jGoalPoints=self.player.goalPoints, jtrTotalLetters=self.player.trtotalLetters ) class PlanningPageAG1(Page): def is_displayed(self): return (self.player.id_in_group % 4 == 1 or self.player.id_in_group % 4 == 3) form_model = 'player' form_fields = ['estimatedLetters_WF1'] def error_message(self, values): print('values is', values) if values['estimatedLetters_WF1'] >= 87: return 'Die Summe der zu verwendenden Buchstaben darf 86 nicht überschreiten.' def before_next_page(self): import time # user has 5 minutes to complete as many pages as possible self.participant.vars['expiry'] = time.time() + 3 * 60 def js_vars(self): return dict( jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4, jtrTotalWords=self.player.trtotalWords, jtrTotalPoints=self.player.trtotalPoints, jGoalPoints=self.player.goalPoints, jtrTotalLetters=self.player.trtotalLetters ) class PlanningPageAG2(Page): def is_displayed(self): return (self.player.id_in_group % 4 == 1 or self.player.id_in_group % 4 == 3) form_model = 'player' form_fields = ['estimatedLetters_WF2'] def error_message(self, values): print('values is', values) if self.player.lettersPlayedQ1 + values['estimatedLetters_WF2'] >= 87: return 'Die Summe der zu verwendenden Buchstaben darf 86 nicht überschreiten.' def before_next_page(self): import time # user has 5 minutes to complete as many pages as possible self.participant.vars['expiry'] = time.time() + 3 * 60 def js_vars(self): return dict( jPointsQ1=self.player.pointsQ1, jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4, jplayedLetters1=self.player.lettersPlayedQ1, jtrTotalWords=self.player.trtotalWords, jtrTotalPoints=self.player.trtotalPoints, jGoalPoints=self.player.goalPoints, jtrTotalLetters=self.player.trtotalLetters ) class PlanningPageAG3(Page): def is_displayed(self): return (self.player.id_in_group % 4 == 1 or self.player.id_in_group % 4 == 3) form_model = 'player' form_fields = ['estimatedLetters_WF3'] def error_message(self, values): print('values is', values) if self.player.lettersPlayedQ1 + self.player.lettersPlayedQ2 + values['estimatedLetters_WF3'] >= 87: return 'Die Summe der zu verwendenden Buchstaben darf 86 nicht überschreiten.' def before_next_page(self): import time # user has 5 minutes to complete as many pages as possible self.participant.vars['expiry'] = time.time() + 3 * 60 def js_vars(self): return dict( jPointsQ1=self.player.pointsQ1, jPointsQ2=self.player.pointsQ2, jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4, jplayedLetters1=self.player.lettersPlayedQ1, jplayedLetters2=self.player.lettersPlayedQ2, jtrTotalWords=self.player.trtotalWords, jtrTotalPoints=self.player.trtotalPoints, jGoalPoints=self.player.goalPoints, jtrTotalLetters=self.player.trtotalLetters ) class PlanningPageAG4(Page): def is_displayed(self): return (self.player.id_in_group % 4 == 1 or self.player.id_in_group % 4 == 3) form_model = 'player' form_fields = ['estimatedLetters_WF4'] def error_message(self, values): print('values is', values) if self.player.lettersPlayedQ1 + self.player.lettersPlayedQ2 + self.player.lettersPlayedQ3 + values[ 'estimatedLetters_WF4'] >= 87: return 'Die Summe der zu verwendenden Buchstaben darf 86 nicht überschreiten.' def before_next_page(self): import time # user has 5 minutes to complete as many pages as possible self.participant.vars['expiry'] = time.time() + 3 * 60 def js_vars(self): return dict( jPointsQ1=self.player.pointsQ1, jPointsQ2=self.player.pointsQ2, jPointsQ3=self.player.pointsQ3, jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4, jplayedLetters1=self.player.lettersPlayedQ1, jplayedLetters2=self.player.lettersPlayedQ2, jplayedLetters3=self.player.lettersPlayedQ3, jtrTotalWords=self.player.trtotalWords, jtrTotalPoints=self.player.trtotalPoints, jGoalPoints=self.player.goalPoints, jtrTotalLetters=self.player.trtotalLetters ) # class scrabble(Page): # def is_displayed(self): # return self.player.id_in_group%2 ==1 # # timeout_seconds = 1000 # # form_model = 'player' # form_fields = [ 'totalWords', 'totalPoints', # 'score_word_1', 'score_word_2','score_word_3','score_word_4','score_word_5','score_word_6', 'score_word_7','score_word_8','score_word_9','score_word_10', # 'score_word_11','score_word_12','score_word_13','score_word_14','score_word_15','score_word_16', 'score_word_17','score_word_18','score_word_19','score_word_20', # 'score_word_21','score_word_22','score_word_23','score_word_24','score_word_25','score_word_26', 'score_word_27','score_word_28','score_word_29','score_word_30', # 'score_word_31','score_word_32','score_word_33','score_word_34','score_word_35','score_word_36', 'score_word_37','score_word_38','score_word_39','score_word_40', # 'score_word_41','score_word_42','score_word_43','score_word_44','score_word_45','score_word_46', 'score_word_47','score_word_48','score_word_49','score_word_50', # 'word_1', 'word_2', 'word_3', 'word_4', 'word_5', 'word_6', 'word_7','word_8', 'word_9', 'word_10', 'word_11', 'word_12', 'word_13', 'word_14', 'word_15', # 'word_16', 'word_17', 'word_18', 'word_19', 'word_20', 'word_21', 'word_22', 'word_23', 'word_24', 'word_25', 'word_26', 'word_27', 'word_28', 'word_29', # 'word_30', 'word_31', 'word_32', 'word_33', 'word_34', 'word_35', 'word_36', 'word_37', 'word_38', 'word_39', 'word_40', 'word_41', 'word_42', 'word_43', # 'word_44', 'word_45', 'word_46', 'word_47', 'word_48', 'word_49', 'word_50', # 'time_word_1','time_word_2','time_word_3','time_word_4','time_word_5','time_word_6','time_word_7','time_word_8','time_word_9','time_word_10','time_word_11', # 'time_word_12','time_word_13','time_word_14','time_word_15','time_word_16','time_word_17','time_word_18','time_word_19','time_word_20','time_word_21', # 'time_word_22','time_word_23','time_word_24','time_word_25','time_word_26','time_word_27','time_word_28','time_word_29','time_word_30','time_word_31', # 'time_word_32','time_word_33','time_word_34','time_word_35','time_word_36','time_word_37','time_word_38','time_word_39','time_word_40','time_word_41', # 'time_word_42','time_word_43','time_word_44','time_word_45','time_word_46','time_word_47','time_word_48','time_word_49','time_word_50'] # # class scrabbleWater(Page): # def is_displayed(self): # return self.player.id_in_group%2 ==1 # # timeout_seconds = 1000 # # form_model = 'player' # form_fields = [ 'totalWords', 'totalPoints', 'saveBoard1', # 'score_word_1', 'score_word_2','score_word_3','score_word_4','score_word_5','score_word_6', 'score_word_7','score_word_8','score_word_9','score_word_10', # 'score_word_11','score_word_12','score_word_13','score_word_14','score_word_15','score_word_16', 'score_word_17','score_word_18','score_word_19','score_word_20', # 'score_word_21','score_word_22','score_word_23','score_word_24','score_word_25','score_word_26', 'score_word_27','score_word_28','score_word_29','score_word_30', # 'score_word_31','score_word_32','score_word_33','score_word_34','score_word_35','score_word_36', 'score_word_37','score_word_38','score_word_39','score_word_40', # 'score_word_41','score_word_42','score_word_43','score_word_44','score_word_45','score_word_46', 'score_word_47','score_word_48','score_word_49','score_word_50', # 'word_1', 'word_2', 'word_3', 'word_4', 'word_5', 'word_6', 'word_7','word_8', 'word_9', 'word_10', 'word_11', 'word_12', 'word_13', 'word_14', 'word_15', # 'word_16', 'word_17', 'word_18', 'word_19', 'word_20', 'word_21', 'word_22', 'word_23', 'word_24', 'word_25', 'word_26', 'word_27', 'word_28', 'word_29', # 'word_30', 'word_31', 'word_32', 'word_33', 'word_34', 'word_35', 'word_36', 'word_37', 'word_38', 'word_39', 'word_40', 'word_41', 'word_42', 'word_43', # 'word_44', 'word_45', 'word_46', 'word_47', 'word_48', 'word_49', 'word_50', # 'time_word_1','time_word_2','time_word_3','time_word_4','time_word_5','time_word_6','time_word_7','time_word_8','time_word_9','time_word_10','time_word_11', # 'time_word_12','time_word_13','time_word_14','time_word_15','time_word_16','time_word_17','time_word_18','time_word_19','time_word_20','time_word_21', # 'time_word_22','time_word_23','time_word_24','time_word_25','time_word_26','time_word_27','time_word_28','time_word_29','time_word_30','time_word_31', # 'time_word_32','time_word_33','time_word_34','time_word_35','time_word_36','time_word_37','time_word_38','time_word_39','time_word_40','time_word_41', # 'time_word_42','time_word_43','time_word_44','time_word_45','time_word_46','time_word_47','time_word_48','time_word_49','time_word_50'] # # class scrabbleNext(Page): # def is_displayed(self): # return self.player.id_in_group%2 ==1 # # timeout_seconds = 1000 # # def js_vars(self): # return dict( # board1=self.player.saveBoard1, # board2=self.player.saveBoard2, # board3=self.player.saveBoard3, # board4=self.player.saveBoard4, # hand1=self.player.handQ1, # hand2=self.player.handQ2, # hand3=self.player.handQ3, # hand4=self.player.handQ4, # rack1=self.player.rackQ1, # rack2=self.player.rackQ2, # rack3=self.player.rackQ3, # rack4=self.player.rackQ4, # totalPoints=self.player.totalPoints, # totalWords=self.player.totalWords # ) # # form_model = 'player' # form_fields = [ 'totalWords', 'totalPoints', 'pointsQ1', 'pointsQ2', 'pointsQ3', 'pointsQ4', 'timeQ1', 'timeQ2', 'timeQ3', 'timeQ4', 'saveBoard1', 'saveBoard2', 'saveBoard3', 'saveBoard4', 'handQ1', 'handQ2', 'handQ3', 'handQ4', # 'score_word_1', 'score_word_2','score_word_3','score_word_4','score_word_5','score_word_6', 'score_word_7','score_word_8','score_word_9','score_word_10', # 'score_word_11','score_word_12','score_word_13','score_word_14','score_word_15','score_word_16', 'score_word_17','score_word_18','score_word_19','score_word_20', # 'score_word_21','score_word_22','score_word_23','score_word_24','score_word_25','score_word_26', 'score_word_27','score_word_28','score_word_29','score_word_30', # 'score_word_31','score_word_32','score_word_33','score_word_34','score_word_35','score_word_36', 'score_word_37','score_word_38','score_word_39','score_word_40', # 'score_word_41','score_word_42','score_word_43','score_word_44','score_word_45','score_word_46', 'score_word_47','score_word_48','score_word_49','score_word_50', # 'word_1', 'word_2', 'word_3', 'word_4', 'word_5', 'word_6', 'word_7','word_8', 'word_9', 'word_10', 'word_11', 'word_12', 'word_13', 'word_14', 'word_15', # 'word_16', 'word_17', 'word_18', 'word_19', 'word_20', 'word_21', 'word_22', 'word_23', 'word_24', 'word_25', 'word_26', 'word_27', 'word_28', 'word_29', # 'word_30', 'word_31', 'word_32', 'word_33', 'word_34', 'word_35', 'word_36', 'word_37', 'word_38', 'word_39', 'word_40', 'word_41', 'word_42', 'word_43', # 'word_44', 'word_45', 'word_46', 'word_47', 'word_48', 'word_49', 'word_50', # 'time_word_1','time_word_2','time_word_3','time_word_4','time_word_5','time_word_6','time_word_7','time_word_8','time_word_9','time_word_10','time_word_11', # 'time_word_12','time_word_13','time_word_14','time_word_15','time_word_16','time_word_17','time_word_18','time_word_19','time_word_20','time_word_21', # 'time_word_22','time_word_23','time_word_24','time_word_25','time_word_26','time_word_27','time_word_28','time_word_29','time_word_30','time_word_31', # 'time_word_32','time_word_33','time_word_34','time_word_35','time_word_36','time_word_37','time_word_38','time_word_39','time_word_40','time_word_41', # 'time_word_42','time_word_43','time_word_44','time_word_45','time_word_46','time_word_47','time_word_48','time_word_49','time_word_50'] class WF_NI_1(Page): def is_displayed(self): return self.player.id_in_group % 4 == 0 def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def js_vars(self): return dict( jsaveboardQ1=self.player.saveBoardQ1, jsaveboardQ2=self.player.saveBoardQ2, jsaveboardQ3=self.player.saveBoardQ3, jsaveboardQ4=self.player.saveBoardQ4, jhandQ1=self.player.handQ1, jhandQ2=self.player.handQ2, jhandQ3=self.player.handQ3, jhandQ4=self.player.handQ4, jrackQ1=self.player.rackQ1, jrackQ2=self.player.rackQ2, jrackQ3=self.player.rackQ3, jrackQ4=self.player.rackQ4, jtotalPoints=self.player.totalPoints, jtotalWords=self.player.totalWords, jtotalLetters=self.player.totalLetters, jGoalPoints=self.player.goalPoints, jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4 ) form_model = 'player' form_fields = ['lettersPlayedQ1', 'lettersPlayedQ2', 'lettersPlayedQ3', 'lettersPlayedQ4', 'totalWords', 'totalPoints', 'totalLetters', 'pointsQ1', 'pointsQ2', 'pointsQ3', 'pointsQ4', 'timeQ1', 'timeQ2', 'timeQ3', 'timeQ4', 'saveBoardQ1', 'saveBoardQ2', 'saveBoardQ3', 'saveBoardQ4', 'handQ1', 'handQ2', 'handQ3', 'handQ4', 'rackQ1', 'rackQ2', 'rackQ3', 'rackQ4', 'score_word_1', 'score_word_2', 'score_word_3', 'score_word_4', 'score_word_5', 'score_word_6', 'score_word_7', 'score_word_8', 'score_word_9', 'score_word_10', 'score_word_11', 'score_word_12', 'score_word_13', 'score_word_14', 'score_word_15', 'score_word_16', 'score_word_17', 'score_word_18', 'score_word_19', 'score_word_20', 'word_1', 'word_2', 'word_3', 'word_4', 'word_5', 'word_6', 'word_7', 'word_8', 'word_9', 'word_10', 'word_11', 'word_12', 'word_13', 'word_14', 'word_15', 'word_16', 'word_17', 'word_18', 'word_19', 'word_20', 'time_word_1', 'time_word_2', 'time_word_3', 'time_word_4', 'time_word_5', 'time_word_6', 'time_word_7', 'time_word_8', 'time_word_9', 'time_word_10', 'time_word_11', 'time_word_12', 'time_word_13', 'time_word_14', 'time_word_15', 'time_word_16', 'time_word_17', 'time_word_18', 'time_word_19', 'time_word_20'] class WF_NI_2(Page): def is_displayed(self): return self.player.id_in_group % 4 == 0 def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def js_vars(self): return dict( jsaveboardQ1=self.player.saveBoardQ1, jsaveboardQ2=self.player.saveBoardQ2, jsaveboardQ3=self.player.saveBoardQ3, jsaveboardQ4=self.player.saveBoardQ4, jhandQ1=self.player.handQ1, jhandQ2=self.player.handQ2, jhandQ3=self.player.handQ3, jhandQ4=self.player.handQ4, jrackQ1=self.player.rackQ1, jrackQ2=self.player.rackQ2, jrackQ3=self.player.rackQ3, jrackQ4=self.player.rackQ4, jtotalPoints=self.player.totalPoints, jtotalWords=self.player.totalWords, jtotalLetters=self.player.totalLetters, jGoalPoints=self.player.goalPoints, jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4 ) form_model = 'player' form_fields = ['lettersPlayedQ2', 'lettersPlayedQ3', 'lettersPlayedQ4', 'totalWords', 'totalPoints', 'totalLetters', 'pointsQ2', 'pointsQ3', 'pointsQ4', 'timeQ2', 'timeQ3', 'timeQ4', 'saveBoardQ2', 'saveBoardQ3', 'saveBoardQ4', 'handQ2', 'handQ3', 'handQ4', 'rackQ2', 'rackQ3', 'rackQ4', 'score_word_21', 'score_word_22', 'score_word_23', 'score_word_24', 'score_word_25', 'score_word_26', 'score_word_27', 'score_word_28', 'score_word_29', 'score_word_30', 'score_word_31', 'score_word_32', 'score_word_33', 'score_word_34', 'score_word_35', 'score_word_36', 'score_word_37', 'score_word_38', 'score_word_39', 'score_word_40', 'word_21', 'word_22', 'word_23', 'word_24', 'word_25', 'word_26', 'word_27', 'word_28', 'word_29', 'word_30', 'word_31', 'word_32', 'word_33', 'word_34', 'word_35', 'word_36', 'word_37', 'word_38', 'word_39', 'word_40', 'time_word_21', 'time_word_22', 'time_word_23', 'time_word_24', 'time_word_25', 'time_word_26', 'time_word_27', 'time_word_28', 'time_word_29', 'time_word_30', 'time_word_31', 'time_word_32', 'time_word_33', 'time_word_34', 'time_word_35', 'time_word_36', 'time_word_37', 'time_word_38', 'time_word_39', 'time_word_40'] class WF_NI_3(Page): def is_displayed(self): return self.player.id_in_group % 4 == 0 def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def js_vars(self): return dict( jsaveboardQ1=self.player.saveBoardQ1, jsaveboardQ2=self.player.saveBoardQ2, jsaveboardQ3=self.player.saveBoardQ3, jsaveboardQ4=self.player.saveBoardQ4, jhandQ1=self.player.handQ1, jhandQ2=self.player.handQ2, jhandQ3=self.player.handQ3, jhandQ4=self.player.handQ4, jrackQ1=self.player.rackQ1, jrackQ2=self.player.rackQ2, jrackQ3=self.player.rackQ3, jrackQ4=self.player.rackQ4, jtotalPoints=self.player.totalPoints, jtotalWords=self.player.totalWords, jtotalLetters=self.player.totalLetters, jGoalPoints=self.player.goalPoints, jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4 ) form_model = 'player' form_fields = ['lettersPlayedQ3', 'lettersPlayedQ4', 'totalWords', 'totalPoints', 'totalLetters', 'pointsQ3', 'pointsQ4', 'timeQ3', 'timeQ4', 'saveBoardQ3', 'saveBoardQ4', 'handQ3', 'handQ4', 'rackQ3', 'rackQ4', 'score_word_41', 'score_word_42', 'score_word_43', 'score_word_44', 'score_word_45', 'score_word_46', 'score_word_47', 'score_word_48', 'score_word_49', 'score_word_50', 'score_word_51', 'score_word_52', 'score_word_53', 'score_word_54', 'score_word_55', 'score_word_56', 'score_word_57', 'score_word_58', 'score_word_59', 'word_41', 'word_42', 'word_43', 'word_44', 'word_45', 'word_46', 'word_47', 'word_48', 'word_49', 'word_50', 'word_51', 'word_52', 'word_53', 'word_54', 'word_55', 'word_56', 'word_57', 'word_58', 'word_59', 'time_word_41', 'time_word_42', 'time_word_43', 'time_word_44', 'time_word_45', 'time_word_46', 'time_word_47', 'time_word_48', 'time_word_49', 'time_word_50', 'time_word_51', 'time_word_52', 'time_word_53', 'time_word_54', 'time_word_55', 'time_word_56', 'time_word_57', 'time_word_58', 'time_word_59'] class WF_NI_4(Page): def is_displayed(self): return self.player.id_in_group % 4 == 0 def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def js_vars(self): return dict( jsaveboardQ1=self.player.saveBoardQ1, jsaveboardQ2=self.player.saveBoardQ2, jsaveboardQ3=self.player.saveBoardQ3, jsaveboardQ4=self.player.saveBoardQ4, jhandQ1=self.player.handQ1, jhandQ2=self.player.handQ2, jhandQ3=self.player.handQ3, jhandQ4=self.player.handQ4, jrackQ1=self.player.rackQ1, jrackQ2=self.player.rackQ2, jrackQ3=self.player.rackQ3, jrackQ4=self.player.rackQ4, jtotalPoints=self.player.totalPoints, jtotalWords=self.player.totalWords, jtotalLetters=self.player.totalLetters, jGoalPoints=self.player.goalPoints, jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4 ) form_model = 'player' form_fields = ['lettersPlayedQ4', 'totalWords', 'totalPoints', 'totalLetters', 'pointsQ4', 'timeQ4', 'saveBoardQ4', 'handQ4', 'rackQ4', 'score_word_61', 'score_word_62', 'score_word_63', 'score_word_64', 'score_word_65', 'score_word_66', 'score_word_67', 'score_word_68', 'score_word_69', 'score_word_70', 'score_word_71', 'score_word_72', 'score_word_73', 'score_word_74', 'score_word_75', 'score_word_76', 'score_word_77', 'score_word_78', 'score_word_79', 'score_word_80', 'word_61', 'word_62', 'word_63', 'word_64', 'word_65', 'word_66', 'word_67', 'word_68', 'word_69', 'word_70', 'word_71', 'word_72', 'word_73', 'word_74', 'word_75', 'word_76', 'word_77', 'word_78', 'word_79', 'word_80', 'time_word_61', 'time_word_62', 'time_word_63', 'time_word_64', 'time_word_65', 'time_word_66', 'time_word_67', 'time_word_68', 'time_word_69', 'time_word_70', 'time_word_71', 'time_word_72', 'time_word_73', 'time_word_74', 'time_word_75', 'time_word_76', 'time_word_77', 'time_word_78', 'time_word_79', 'time_word_80'] class AG_NI_1(Page): def is_displayed(self): return self.player.id_in_group % 4 == 1 def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def before_next_page(self): if self.timeout_happened: self.player.timeQ1 = "180"; def js_vars(self): return dict( jsaveboardQ1=self.player.saveBoardQ1, jsaveboardQ2=self.player.saveBoardQ2, jsaveboardQ3=self.player.saveBoardQ3, jsaveboardQ4=self.player.saveBoardQ4, jhandQ1=self.player.handQ1, jhandQ2=self.player.handQ2, jhandQ3=self.player.handQ3, jhandQ4=self.player.handQ4, jrackQ1=self.player.rackQ1, jrackQ2=self.player.rackQ2, jrackQ3=self.player.rackQ3, jrackQ4=self.player.rackQ4, jtotalPoints=self.player.totalPoints, jtotalWords=self.player.totalWords, jtotalLetters=self.player.totalLetters, jGoalPoints=self.player.goalPoints, jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4 ) form_model = 'player' form_fields = ['lettersPlayedQ1', 'lettersPlayedQ2', 'lettersPlayedQ3', 'lettersPlayedQ4', 'totalWords', 'totalPoints', 'totalLetters', 'pointsQ1', 'pointsQ2', 'pointsQ3', 'pointsQ4', 'timeQ1', 'timeQ2', 'timeQ3', 'timeQ4', 'saveBoardQ1', 'saveBoardQ2', 'saveBoardQ3', 'saveBoardQ4', 'handQ1', 'handQ2', 'handQ3', 'handQ4', 'rackQ1', 'rackQ2', 'rackQ3', 'rackQ4', 'score_word_1', 'score_word_2', 'score_word_3', 'score_word_4', 'score_word_5', 'score_word_6', 'score_word_7', 'score_word_8', 'score_word_9', 'score_word_10', 'score_word_11', 'score_word_12', 'score_word_13', 'score_word_14', 'score_word_15', 'score_word_16', 'score_word_17', 'score_word_18', 'score_word_19', 'score_word_20', 'word_1', 'word_2', 'word_3', 'word_4', 'word_5', 'word_6', 'word_7', 'word_8', 'word_9', 'word_10', 'word_11', 'word_12', 'word_13', 'word_14', 'word_15', 'word_16', 'word_17', 'word_18', 'word_19', 'word_20', 'time_word_1', 'time_word_2', 'time_word_3', 'time_word_4', 'time_word_5', 'time_word_6', 'time_word_7', 'time_word_8', 'time_word_9', 'time_word_10', 'time_word_11', 'time_word_12', 'time_word_13', 'time_word_14', 'time_word_15', 'time_word_16', 'time_word_17', 'time_word_18', 'time_word_19', 'time_word_20'] class AG_NI_2(Page): def is_displayed(self): return self.player.id_in_group % 4 == 1 def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def before_next_page(self): if self.timeout_happened: self.player.timeQ2 = "180"; def js_vars(self): return dict( jsaveboardQ1=self.player.saveBoardQ1, jsaveboardQ2=self.player.saveBoardQ2, jsaveboardQ3=self.player.saveBoardQ3, jsaveboardQ4=self.player.saveBoardQ4, jhandQ1=self.player.handQ1, jhandQ2=self.player.handQ2, jhandQ3=self.player.handQ3, jhandQ4=self.player.handQ4, jrackQ1=self.player.rackQ1, jrackQ2=self.player.rackQ2, jrackQ3=self.player.rackQ3, jrackQ4=self.player.rackQ4, jtotalPoints=self.player.totalPoints, jtotalWords=self.player.totalWords, jtotalLetters=self.player.totalLetters, jGoalPoints=self.player.goalPoints, jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4, jPointsQ1=self.player.pointsQ1 ) form_model = 'player' form_fields = ['lettersPlayedQ2', 'lettersPlayedQ3', 'lettersPlayedQ4', 'totalWords', 'totalPoints', 'totalLetters', 'pointsQ2', 'pointsQ3', 'pointsQ4', 'timeQ2', 'timeQ3', 'timeQ4', 'saveBoardQ2', 'saveBoardQ3', 'saveBoardQ4', 'handQ2', 'handQ3', 'handQ4', 'rackQ2', 'rackQ3', 'rackQ4', 'score_word_21', 'score_word_22', 'score_word_23', 'score_word_24', 'score_word_25', 'score_word_26', 'score_word_27', 'score_word_28', 'score_word_29', 'score_word_30', 'score_word_31', 'score_word_32', 'score_word_33', 'score_word_34', 'score_word_35', 'score_word_36', 'score_word_37', 'score_word_38', 'score_word_39', 'score_word_40', 'word_21', 'word_22', 'word_23', 'word_24', 'word_25', 'word_26', 'word_27', 'word_28', 'word_29', 'word_30', 'word_31', 'word_32', 'word_33', 'word_34', 'word_35', 'word_36', 'word_37', 'word_38', 'word_39', 'word_40', 'time_word_21', 'time_word_22', 'time_word_23', 'time_word_24', 'time_word_25', 'time_word_26', 'time_word_27', 'time_word_28', 'time_word_29', 'time_word_30', 'time_word_31', 'time_word_32', 'time_word_33', 'time_word_34', 'time_word_35', 'time_word_36', 'time_word_37', 'time_word_38', 'time_word_39', 'time_word_40'] class AG_NI_3(Page): def is_displayed(self): return self.player.id_in_group % 4 == 1 def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def before_next_page(self): if self.timeout_happened: self.player.timeQ3 = "180"; def js_vars(self): return dict( jsaveboardQ1=self.player.saveBoardQ1, jsaveboardQ2=self.player.saveBoardQ2, jsaveboardQ3=self.player.saveBoardQ3, jsaveboardQ4=self.player.saveBoardQ4, jhandQ1=self.player.handQ1, jhandQ2=self.player.handQ2, jhandQ3=self.player.handQ3, jhandQ4=self.player.handQ4, jrackQ1=self.player.rackQ1, jrackQ2=self.player.rackQ2, jrackQ3=self.player.rackQ3, jrackQ4=self.player.rackQ4, jtotalPoints=self.player.totalPoints, jtotalWords=self.player.totalWords, jtotalLetters=self.player.totalLetters, jGoalPoints=self.player.goalPoints, jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4 ) form_model = 'player' form_fields = ['lettersPlayedQ3', 'lettersPlayedQ4', 'totalWords', 'totalPoints', 'totalLetters', 'pointsQ3', 'pointsQ4', 'timeQ3', 'timeQ4', 'saveBoardQ3', 'saveBoardQ4', 'handQ3', 'handQ4', 'rackQ3', 'rackQ4', 'score_word_41', 'score_word_42', 'score_word_43', 'score_word_44', 'score_word_45', 'score_word_46', 'score_word_47', 'score_word_48', 'score_word_49', 'score_word_50', 'score_word_51', 'score_word_52', 'score_word_53', 'score_word_54', 'score_word_55', 'score_word_56', 'score_word_57', 'score_word_58', 'score_word_59', 'word_41', 'word_42', 'word_43', 'word_44', 'word_45', 'word_46', 'word_47', 'word_48', 'word_49', 'word_50', 'word_51', 'word_52', 'word_53', 'word_54', 'word_55', 'word_56', 'word_57', 'word_58', 'word_59', 'time_word_41', 'time_word_42', 'time_word_43', 'time_word_44', 'time_word_45', 'time_word_46', 'time_word_47', 'time_word_48', 'time_word_49', 'time_word_50', 'time_word_51', 'time_word_52', 'time_word_53', 'time_word_54', 'time_word_55', 'time_word_56', 'time_word_57', 'time_word_58', 'time_word_59'] class AG_NI_4(Page): def is_displayed(self): return self.player.id_in_group % 4 == 1 def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def before_next_page(self): if self.timeout_happened: self.player.timeQ4 = "180"; def js_vars(self): return dict( jsaveboardQ1=self.player.saveBoardQ1, jsaveboardQ2=self.player.saveBoardQ2, jsaveboardQ3=self.player.saveBoardQ3, jsaveboardQ4=self.player.saveBoardQ4, jhandQ1=self.player.handQ1, jhandQ2=self.player.handQ2, jhandQ3=self.player.handQ3, jhandQ4=self.player.handQ4, jrackQ1=self.player.rackQ1, jrackQ2=self.player.rackQ2, jrackQ3=self.player.rackQ3, jrackQ4=self.player.rackQ4, jtotalPoints=self.player.totalPoints, jtotalWords=self.player.totalWords, jtotalLetters=self.player.totalLetters, jGoalPoints=self.player.goalPoints, jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4 ) form_model = 'player' form_fields = ['lettersPlayedQ4', 'totalWords', 'totalPoints', 'totalLetters', 'pointsQ4', 'timeQ4', 'saveBoardQ4', 'handQ4', 'rackQ4', 'score_word_61', 'score_word_62', 'score_word_63', 'score_word_64', 'score_word_65', 'score_word_66', 'score_word_67', 'score_word_68', 'score_word_69', 'score_word_70', 'score_word_71', 'score_word_72', 'score_word_73', 'score_word_74', 'score_word_75', 'score_word_76', 'score_word_77', 'score_word_78', 'score_word_79', 'score_word_80', 'word_61', 'word_62', 'word_63', 'word_64', 'word_65', 'word_66', 'word_67', 'word_68', 'word_69', 'word_70', 'word_71', 'word_72', 'word_73', 'word_74', 'word_75', 'word_76', 'word_77', 'word_78', 'word_79', 'word_80', 'time_word_61', 'time_word_62', 'time_word_63', 'time_word_64', 'time_word_65', 'time_word_66', 'time_word_67', 'time_word_68', 'time_word_69', 'time_word_70', 'time_word_71', 'time_word_72', 'time_word_73', 'time_word_74', 'time_word_75', 'time_word_76', 'time_word_77', 'time_word_78', 'time_word_79', 'time_word_80'] class WF_HI_1(Page): def is_displayed(self): return self.player.id_in_group % 4 == 2 def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def js_vars(self): return dict( jsaveboardQ1=self.player.saveBoardQ1, jsaveboardQ2=self.player.saveBoardQ2, jsaveboardQ3=self.player.saveBoardQ3, jsaveboardQ4=self.player.saveBoardQ4, jhandQ1=self.player.handQ1, jhandQ2=self.player.handQ2, jhandQ3=self.player.handQ3, jhandQ4=self.player.handQ4, jrackQ1=self.player.rackQ1, jrackQ2=self.player.rackQ2, jrackQ3=self.player.rackQ3, jrackQ4=self.player.rackQ4, jtotalPoints=self.player.totalPoints, jtotalWords=self.player.totalWords, jtotalLetters=self.player.totalLetters, jGoalPoints=self.player.goalPoints, jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4 ) form_model = 'player' form_fields = ['lettersPlayedQ1', 'lettersPlayedQ2', 'lettersPlayedQ3', 'lettersPlayedQ4', 'totalWords', 'totalPoints', 'totalLetters', 'pointsQ1', 'pointsQ2', 'pointsQ3', 'pointsQ4', 'timeQ1', 'timeQ2', 'timeQ3', 'timeQ4', 'saveBoardQ1', 'saveBoardQ2', 'saveBoardQ3', 'saveBoardQ4', 'handQ1', 'handQ2', 'handQ3', 'handQ4', 'rackQ1', 'rackQ2', 'rackQ3', 'rackQ4', 'score_word_1', 'score_word_2', 'score_word_3', 'score_word_4', 'score_word_5', 'score_word_6', 'score_word_7', 'score_word_8', 'score_word_9', 'score_word_10', 'score_word_11', 'score_word_12', 'score_word_13', 'score_word_14', 'score_word_15', 'score_word_16', 'score_word_17', 'score_word_18', 'score_word_19', 'score_word_20', 'word_1', 'word_2', 'word_3', 'word_4', 'word_5', 'word_6', 'word_7', 'word_8', 'word_9', 'word_10', 'word_11', 'word_12', 'word_13', 'word_14', 'word_15', 'word_16', 'word_17', 'word_18', 'word_19', 'word_20', 'time_word_1', 'time_word_2', 'time_word_3', 'time_word_4', 'time_word_5', 'time_word_6', 'time_word_7', 'time_word_8', 'time_word_9', 'time_word_10', 'time_word_11', 'time_word_12', 'time_word_13', 'time_word_14', 'time_word_15', 'time_word_16', 'time_word_17', 'time_word_18', 'time_word_19', 'time_word_20'] class WF_HI_2(Page): def is_displayed(self): return self.player.id_in_group % 4 == 2 def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def js_vars(self): return dict( jsaveboardQ1=self.player.saveBoardQ1, jsaveboardQ2=self.player.saveBoardQ2, jsaveboardQ3=self.player.saveBoardQ3, jsaveboardQ4=self.player.saveBoardQ4, jhandQ1=self.player.handQ1, jhandQ2=self.player.handQ2, jhandQ3=self.player.handQ3, jhandQ4=self.player.handQ4, jrackQ1=self.player.rackQ1, jrackQ2=self.player.rackQ2, jrackQ3=self.player.rackQ3, jrackQ4=self.player.rackQ4, jtotalPoints=self.player.totalPoints, jtotalWords=self.player.totalWords, jtotalLetters=self.player.totalLetters, jGoalPoints=self.player.goalPoints, jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4 ) form_model = 'player' form_fields = ['lettersPlayedQ2', 'lettersPlayedQ3', 'lettersPlayedQ4', 'totalWords', 'totalPoints', 'totalLetters', 'pointsQ2', 'pointsQ3', 'pointsQ4', 'timeQ2', 'timeQ3', 'timeQ4', 'saveBoardQ2', 'saveBoardQ3', 'saveBoardQ4', 'handQ2', 'handQ3', 'handQ4', 'rackQ2', 'rackQ3', 'rackQ4', 'score_word_21', 'score_word_22', 'score_word_23', 'score_word_24', 'score_word_25', 'score_word_26', 'score_word_27', 'score_word_28', 'score_word_29', 'score_word_30', 'score_word_31', 'score_word_32', 'score_word_33', 'score_word_34', 'score_word_35', 'score_word_36', 'score_word_37', 'score_word_38', 'score_word_39', 'score_word_40', 'word_21', 'word_22', 'word_23', 'word_24', 'word_25', 'word_26', 'word_27', 'word_28', 'word_29', 'word_30', 'word_31', 'word_32', 'word_33', 'word_34', 'word_35', 'word_36', 'word_37', 'word_38', 'word_39', 'word_40', 'time_word_21', 'time_word_22', 'time_word_23', 'time_word_24', 'time_word_25', 'time_word_26', 'time_word_27', 'time_word_28', 'time_word_29', 'time_word_30', 'time_word_31', 'time_word_32', 'time_word_33', 'time_word_34', 'time_word_35', 'time_word_36', 'time_word_37', 'time_word_38', 'time_word_39', 'time_word_40'] class WF_HI_3(Page): def is_displayed(self): return self.player.id_in_group % 4 == 2 def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def js_vars(self): return dict( jsaveboardQ1=self.player.saveBoardQ1, jsaveboardQ2=self.player.saveBoardQ2, jsaveboardQ3=self.player.saveBoardQ3, jsaveboardQ4=self.player.saveBoardQ4, jhandQ1=self.player.handQ1, jhandQ2=self.player.handQ2, jhandQ3=self.player.handQ3, jhandQ4=self.player.handQ4, jrackQ1=self.player.rackQ1, jrackQ2=self.player.rackQ2, jrackQ3=self.player.rackQ3, jrackQ4=self.player.rackQ4, jtotalPoints=self.player.totalPoints, jtotalWords=self.player.totalWords, jtotalLetters=self.player.totalLetters, jGoalPoints=self.player.goalPoints, jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4 ) form_model = 'player' form_fields = ['lettersPlayedQ3', 'lettersPlayedQ4', 'totalWords', 'totalPoints', 'totalLetters', 'pointsQ3', 'pointsQ4', 'timeQ3', 'timeQ4', 'saveBoardQ3', 'saveBoardQ4', 'handQ3', 'handQ4', 'rackQ3', 'rackQ4', 'score_word_41', 'score_word_42', 'score_word_43', 'score_word_44', 'score_word_45', 'score_word_46', 'score_word_47', 'score_word_48', 'score_word_49', 'score_word_50', 'score_word_51', 'score_word_52', 'score_word_53', 'score_word_54', 'score_word_55', 'score_word_56', 'score_word_57', 'score_word_58', 'score_word_59', 'word_41', 'word_42', 'word_43', 'word_44', 'word_45', 'word_46', 'word_47', 'word_48', 'word_49', 'word_50', 'word_51', 'word_52', 'word_53', 'word_54', 'word_55', 'word_56', 'word_57', 'word_58', 'word_59', 'time_word_41', 'time_word_42', 'time_word_43', 'time_word_44', 'time_word_45', 'time_word_46', 'time_word_47', 'time_word_48', 'time_word_49', 'time_word_50', 'time_word_51', 'time_word_52', 'time_word_53', 'time_word_54', 'time_word_55', 'time_word_56', 'time_word_57', 'time_word_58', 'time_word_59'] class WF_HI_4(Page): def is_displayed(self): return self.player.id_in_group % 4 == 2 def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def js_vars(self): return dict( jsaveboardQ1=self.player.saveBoardQ1, jsaveboardQ2=self.player.saveBoardQ2, jsaveboardQ3=self.player.saveBoardQ3, jsaveboardQ4=self.player.saveBoardQ4, jhandQ1=self.player.handQ1, jhandQ2=self.player.handQ2, jhandQ3=self.player.handQ3, jhandQ4=self.player.handQ4, jrackQ1=self.player.rackQ1, jrackQ2=self.player.rackQ2, jrackQ3=self.player.rackQ3, jrackQ4=self.player.rackQ4, jtotalPoints=self.player.totalPoints, jtotalWords=self.player.totalWords, jtotalLetters=self.player.totalLetters, jGoalPoints=self.player.goalPoints, jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4 ) form_model = 'player' form_fields = ['lettersPlayedQ4', 'totalWords', 'totalPoints', 'totalLetters', 'pointsQ4', 'timeQ4', 'saveBoardQ4', 'handQ4', 'rackQ4', 'score_word_61', 'score_word_62', 'score_word_63', 'score_word_64', 'score_word_65', 'score_word_66', 'score_word_67', 'score_word_68', 'score_word_69', 'score_word_70', 'score_word_71', 'score_word_72', 'score_word_73', 'score_word_74', 'score_word_75', 'score_word_76', 'score_word_77', 'score_word_78', 'score_word_79', 'score_word_80', 'word_61', 'word_62', 'word_63', 'word_64', 'word_65', 'word_66', 'word_67', 'word_68', 'word_69', 'word_70', 'word_71', 'word_72', 'word_73', 'word_74', 'word_75', 'word_76', 'word_77', 'word_78', 'word_79', 'word_80', 'time_word_61', 'time_word_62', 'time_word_63', 'time_word_64', 'time_word_65', 'time_word_66', 'time_word_67', 'time_word_68', 'time_word_69', 'time_word_70', 'time_word_71', 'time_word_72', 'time_word_73', 'time_word_74', 'time_word_75', 'time_word_76', 'time_word_77', 'time_word_78', 'time_word_79', 'time_word_80'] class AG_HI_1(Page): def is_displayed(self): return self.player.id_in_group % 4 == 3 def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def before_next_page(self): if self.timeout_happened: self.player.timeQ1 = "180"; def js_vars(self): return dict( jsaveboardQ1=self.player.saveBoardQ1, jsaveboardQ2=self.player.saveBoardQ2, jsaveboardQ3=self.player.saveBoardQ3, jsaveboardQ4=self.player.saveBoardQ4, jhandQ1=self.player.handQ1, jhandQ2=self.player.handQ2, jhandQ3=self.player.handQ3, jhandQ4=self.player.handQ4, jrackQ1=self.player.rackQ1, jrackQ2=self.player.rackQ2, jrackQ3=self.player.rackQ3, jrackQ4=self.player.rackQ4, jtotalPoints=self.player.totalPoints, jtotalWords=self.player.totalWords, jtotalLetters=self.player.totalLetters, jGoalPoints=self.player.goalPoints, jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4 ) form_model = 'player' form_fields = ['lettersPlayedQ1', 'lettersPlayedQ2', 'lettersPlayedQ3', 'lettersPlayedQ4', 'totalWords', 'totalPoints', 'totalLetters', 'pointsQ1', 'pointsQ2', 'pointsQ3', 'pointsQ4', 'timeQ1', 'timeQ2', 'timeQ3', 'timeQ4', 'saveBoardQ1', 'saveBoardQ2', 'saveBoardQ3', 'saveBoardQ4', 'handQ1', 'handQ2', 'handQ3', 'handQ4', 'rackQ1', 'rackQ2', 'rackQ3', 'rackQ4', 'score_word_1', 'score_word_2', 'score_word_3', 'score_word_4', 'score_word_5', 'score_word_6', 'score_word_7', 'score_word_8', 'score_word_9', 'score_word_10', 'score_word_11', 'score_word_12', 'score_word_13', 'score_word_14', 'score_word_15', 'score_word_16', 'score_word_17', 'score_word_18', 'score_word_19', 'score_word_20', 'word_1', 'word_2', 'word_3', 'word_4', 'word_5', 'word_6', 'word_7', 'word_8', 'word_9', 'word_10', 'word_11', 'word_12', 'word_13', 'word_14', 'word_15', 'word_16', 'word_17', 'word_18', 'word_19', 'word_20', 'time_word_1', 'time_word_2', 'time_word_3', 'time_word_4', 'time_word_5', 'time_word_6', 'time_word_7', 'time_word_8', 'time_word_9', 'time_word_10', 'time_word_11', 'time_word_12', 'time_word_13', 'time_word_14', 'time_word_15', 'time_word_16', 'time_word_17', 'time_word_18', 'time_word_19', 'time_word_20'] class AG_HI_2(Page): def is_displayed(self): return self.player.id_in_group % 4 == 3 def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def before_next_page(self): if self.timeout_happened: self.player.timeQ2 = "180"; def js_vars(self): return dict( jsaveboardQ1=self.player.saveBoardQ1, jsaveboardQ2=self.player.saveBoardQ2, jsaveboardQ3=self.player.saveBoardQ3, jsaveboardQ4=self.player.saveBoardQ4, jhandQ1=self.player.handQ1, jhandQ2=self.player.handQ2, jhandQ3=self.player.handQ3, jhandQ4=self.player.handQ4, jrackQ1=self.player.rackQ1, jrackQ2=self.player.rackQ2, jrackQ3=self.player.rackQ3, jrackQ4=self.player.rackQ4, jtotalPoints=self.player.totalPoints, jtotalWords=self.player.totalWords, jtotalLetters=self.player.totalLetters, jGoalPoints=self.player.goalPoints, jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4 ) form_model = 'player' form_fields = ['lettersPlayedQ2', 'lettersPlayedQ3', 'lettersPlayedQ4', 'totalWords', 'totalPoints', 'totalLetters', 'pointsQ2', 'pointsQ3', 'pointsQ4', 'timeQ2', 'timeQ3', 'timeQ4', 'saveBoardQ2', 'saveBoardQ3', 'saveBoardQ4', 'handQ2', 'handQ3', 'handQ4', 'rackQ2', 'rackQ3', 'rackQ4', 'score_word_21', 'score_word_22', 'score_word_23', 'score_word_24', 'score_word_25', 'score_word_26', 'score_word_27', 'score_word_28', 'score_word_29', 'score_word_30', 'score_word_31', 'score_word_32', 'score_word_33', 'score_word_34', 'score_word_35', 'score_word_36', 'score_word_37', 'score_word_38', 'score_word_39', 'score_word_40', 'word_21', 'word_22', 'word_23', 'word_24', 'word_25', 'word_26', 'word_27', 'word_28', 'word_29', 'word_30', 'word_31', 'word_32', 'word_33', 'word_34', 'word_35', 'word_36', 'word_37', 'word_38', 'word_39', 'word_40', 'time_word_21', 'time_word_22', 'time_word_23', 'time_word_24', 'time_word_25', 'time_word_26', 'time_word_27', 'time_word_28', 'time_word_29', 'time_word_30', 'time_word_31', 'time_word_32', 'time_word_33', 'time_word_34', 'time_word_35', 'time_word_36', 'time_word_37', 'time_word_38', 'time_word_39', 'time_word_40'] class AG_HI_3(Page): def is_displayed(self): return self.player.id_in_group % 4 == 3 def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def before_next_page(self): if self.timeout_happened: self.player.timeQ3 = "180"; def js_vars(self): return dict( jsaveboardQ1=self.player.saveBoardQ1, jsaveboardQ2=self.player.saveBoardQ2, jsaveboardQ3=self.player.saveBoardQ3, jsaveboardQ4=self.player.saveBoardQ4, jhandQ1=self.player.handQ1, jhandQ2=self.player.handQ2, jhandQ3=self.player.handQ3, jhandQ4=self.player.handQ4, jrackQ1=self.player.rackQ1, jrackQ2=self.player.rackQ2, jrackQ3=self.player.rackQ3, jrackQ4=self.player.rackQ4, jtotalPoints=self.player.totalPoints, jtotalWords=self.player.totalWords, jtotalLetters=self.player.totalLetters, jGoalPoints=self.player.goalPoints, jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4 ) form_model = 'player' form_fields = ['lettersPlayedQ3', 'lettersPlayedQ4', 'totalWords', 'totalPoints', 'totalLetters', 'pointsQ3', 'pointsQ4', 'timeQ3', 'timeQ4', 'saveBoardQ3', 'saveBoardQ4', 'handQ3', 'handQ4', 'rackQ3', 'rackQ4', 'score_word_41', 'score_word_42', 'score_word_43', 'score_word_44', 'score_word_45', 'score_word_46', 'score_word_47', 'score_word_48', 'score_word_49', 'score_word_50', 'score_word_51', 'score_word_52', 'score_word_53', 'score_word_54', 'score_word_55', 'score_word_56', 'score_word_57', 'score_word_58', 'score_word_59', 'word_41', 'word_42', 'word_43', 'word_44', 'word_45', 'word_46', 'word_47', 'word_48', 'word_49', 'word_50', 'word_51', 'word_52', 'word_53', 'word_54', 'word_55', 'word_56', 'word_57', 'word_58', 'word_59', 'time_word_41', 'time_word_42', 'time_word_43', 'time_word_44', 'time_word_45', 'time_word_46', 'time_word_47', 'time_word_48', 'time_word_49', 'time_word_50', 'time_word_51', 'time_word_52', 'time_word_53', 'time_word_54', 'time_word_55', 'time_word_56', 'time_word_57', 'time_word_58', 'time_word_59'] class AG_HI_4(Page): def is_displayed(self): return self.player.id_in_group % 4 == 3 def get_timeout_seconds(self): import time return self.participant.vars['expiry'] - time.time() def before_next_page(self): if self.timeout_happened: self.player.timeQ4 = "180"; def js_vars(self): return dict( jsaveboardQ1=self.player.saveBoardQ1, jsaveboardQ2=self.player.saveBoardQ2, jsaveboardQ3=self.player.saveBoardQ3, jsaveboardQ4=self.player.saveBoardQ4, jhandQ1=self.player.handQ1, jhandQ2=self.player.handQ2, jhandQ3=self.player.handQ3, jhandQ4=self.player.handQ4, jrackQ1=self.player.rackQ1, jrackQ2=self.player.rackQ2, jrackQ3=self.player.rackQ3, jrackQ4=self.player.rackQ4, jtotalPoints=self.player.totalPoints, jtotalWords=self.player.totalWords, jtotalLetters=self.player.totalLetters, jGoalPoints=self.player.goalPoints, jestimatedLetters1=self.player.estimatedLetters_WF1, jestimatedLetters2=self.player.estimatedLetters_WF2, jestimatedLetters3=self.player.estimatedLetters_WF3, jestimatedLetters4=self.player.estimatedLetters_WF4 ) form_model = 'player' form_fields = ['lettersPlayedQ4', 'totalWords', 'totalPoints', 'totalLetters', 'pointsQ4', 'timeQ4', 'saveBoardQ4', 'handQ4', 'rackQ4', 'score_word_61', 'score_word_62', 'score_word_63', 'score_word_64', 'score_word_65', 'score_word_66', 'score_word_67', 'score_word_68', 'score_word_69', 'score_word_70', 'score_word_71', 'score_word_72', 'score_word_73', 'score_word_74', 'score_word_75', 'score_word_76', 'score_word_77', 'score_word_78', 'score_word_79', 'score_word_80', 'word_61', 'word_62', 'word_63', 'word_64', 'word_65', 'word_66', 'word_67', 'word_68', 'word_69', 'word_70', 'word_71', 'word_72', 'word_73', 'word_74', 'word_75', 'word_76', 'word_77', 'word_78', 'word_79', 'word_80', 'time_word_61', 'time_word_62', 'time_word_63', 'time_word_64', 'time_word_65', 'time_word_66', 'time_word_67', 'time_word_68', 'time_word_69', 'time_word_70', 'time_word_71', 'time_word_72', 'time_word_73', 'time_word_74', 'time_word_75', 'time_word_76', 'time_word_77', 'time_word_78', 'time_word_79', 'time_word_80'] class Demographics(Page): form_model = 'player' form_fields = ['age', 'gender', 'lang', 'edu', 'work', 'pm_exp', 'pl_exp'] class CognitiveReflectionTest(Page): form_model = 'player' form_fields = ['crt_bat', 'crt_widget', 'crt_lake'] class Introduction(Page): def before_next_page(self): import time self.participant.vars['expiry'] = time.time() + 3 * 60; class expl_AG_NI(Page): def is_displayed(self): return self.player.id_in_group % 4 == 1 def before_next_page(self): import time self.participant.vars['expiry'] = time.time() + 3 * 60; def js_vars(self): return dict( jGoalPoints=self.player.goalPoints ) class expl_AG_HI(Page): def is_displayed(self): return self.player.id_in_group % 4 == 3 def before_next_page(self): import time self.participant.vars['expiry'] = time.time() + 3 * 60; def js_vars(self): return dict( jGoalPoints=self.player.goalPoints ) class expl_WF_NI(Page): def is_displayed(self): return self.player.id_in_group % 4 == 0 def before_next_page(self): import time self.participant.vars['expiry'] = time.time() + 3 * 60; def js_vars(self): return dict( jGoalPoints=self.player.goalPoints ) class expl_WF_HI(Page): def is_displayed(self): return self.player.id_in_group % 4 == 2 def before_next_page(self): import time self.participant.vars['expiry'] = time.time() + 3 * 60; def js_vars(self): return dict( jGoalPoints=self.player.goalPoints ) class expl_training(Page): def before_next_page(self): import time self.participant.vars['expiry'] = time.time() + 3 * 60; page_sequence = [ # Intro for all Introduction, Demographics, Introduction2, understanding, expl_training, trainingPage, expl_AG_NI, expl_AG_HI, expl_WF_HI, expl_WF_NI, PlanningPageWF, PlanningPageAG1, # Waterfall No Interdependency WF_NI_1, WF_NI_2, WF_NI_3, WF_NI_4, # Agile No/High Interdependency AG_NI_1, AG_HI_1, PlanningPageAG2, AG_NI_2, AG_HI_2, PlanningPageAG3, AG_NI_3, AG_HI_3, PlanningPageAG4, AG_NI_4, AG_HI_4, # Waterfall High Interdependency WF_HI_1, WF_HI_2, WF_HI_3, WF_HI_4, ] # Introduction, Demographics,