from otree.api import * import random import time author = 'Mike ZhiRen Wu' doc = """ Your app description """ def compare_strings(a, b): size = min(len(a), len(b)) # Finding the minimum length count = 0 # A counter to keep track of same characters for i in range(size): if a[i] == b[i]: count += 1 # Updating the counter when characters are same at an index return count def pay_hard(a): if a == 8: pay = 32 else: pay = a return pay def perfect_hard(a): if a == 8: is_perfect = 1 else: is_perfect = 0 return is_perfect class C(BaseConstants): # Duration of the task Game_Time = 60 NAME_IN_URL = 'economic_decision_making' PLAYERS_PER_GROUP = 2 NUM_ROUNDS = 1 TIMER_TEXT = "Time left:" # transcription task 1-15 StageII_hard1 = 'βαδα.χγη' StageII_hard2 = 'ηιφφχεηη' StageII_hard3 = 'αγφγβιδδ' StageII_hard4 = 'αβα.φιαφ' StageII_hard5 = 'δε.φ.χε.' StageII_hard6 = 'χδη.χχαδ' StageII_hard7 = 'εγη.ηει.' StageII_hard8 = 'ιιδχφεηδ' StageII_hard9 = 'δγγδδβγχ' StageII_hard10 = 'ηχεη.ι.χ' StageII_hard11 = 'χγγη.δαα' StageII_hard12 = 'χαηιηβεδ' StageII_hard13 = 'γγαηαχιε' StageII_hard14 = 'γγιβη.ηφ' StageII_hard15 = 'χδγγ.αχι' StageIII_hard1 = 'ααχφαδγχ' StageIII_hard2 = 'φηιιδγιγ' StageIII_hard3 = 'χβ.χχαγη' StageIII_hard4 = 'γγ.αφιγη' StageIII_hard5 = 'βδγιχεχη' StageIII_hard6 = 'ιεαηδδδχ' StageIII_hard7 = 'αεφαααηη' StageIII_hard8 = 'η.ιγαιηι' StageIII_hard9 = 'γιαειαιχ' StageIII_hard10 = 'ηφ.χαηγη' StageIII_hard11 = 'χηεδεγεβ' StageIII_hard12 = 'αηχαβγφφ' StageIII_hard13 = 'ηιαφφηει' StageIII_hard14 = 'ηδββφεηγ' StageIII_hard15 = 'ηφχβχηαε' StageIII_hard21 = 'χγφιβχχδ' StageIII_hard22 = 'ηβδδηεδγ' StageIII_hard23 = 'φφα.γφ.φ' StageIII_hard24 = 'ι.γηηδηγ' StageIII_hard25 = 'βφχεββφε' StageIII_hard26 = 'εηδχαδδβ' StageIII_hard27 = 'γδ.αδφχφ' StageIII_hard28 = 'διγ.χδγφ' StageIII_hard29 = 'αβηφη.εδ' StageIII_hard30 = 'χηιβγβγε' StageIII_hard31 = 'δβδ.εδιχ' StageIII_hard32 = 'ι.χ.φχβδ' StageIII_hard33 = 'χαγδγηη.' StageIII_hard34 = 'φιφχ.βφε' StageIII_hard35 = 'χα.βδγγε' StageIII_hard41 = 'χεφδχιδχ' StageIII_hard42 = 'δβγδειχδ' StageIII_hard43 = 'χααεαηαε' StageIII_hard44 = 'χ.ααχγχι' StageIII_hard45 = 'φαφιεεγγ' StageIII_hard46 = 'χιβεδειγ' StageIII_hard47 = 'γχφααββα' StageIII_hard48 = 'ηγεδηδβδ' StageIII_hard49 = 'ηγδγηχχ.' StageIII_hard50 = 'ειαγηαε.' StageIII_hard51 = 'χεεβ.χχβ' StageIII_hard52 = 'βιι.ιιφα' StageIII_hard53 = 'δη.ηφδδγ' StageIII_hard54 = 'ηηβεχαεδ' StageIII_hard55 = 'δφβχεγφι' StageIII_hard61 = 'εχδ.εηβδ' StageIII_hard62 = 'η.γγγαβ.' StageIII_hard63 = 'βαχγ.βιχ' StageIII_hard64 = 'αιδηγφ.χ' StageIII_hard65 = 'φβαειε.α' StageIII_hard66 = 'χα.εαγεα' StageIII_hard67 = 'γιιφγβγα' StageIII_hard68 = 'δφδεγαηη' StageIII_hard69 = 'ηδ.χεδγδ' StageIII_hard70 = 'χβχηειχγ' StageIII_hard71 = 'ηιγγχαεχ' StageIII_hard72 = 'βφχβ.χβ.' StageIII_hard73 = 'χηηιααχ.' StageIII_hard74 = 'ιφφαφηβ.' StageIII_hard75 = 'ειβχφδαφ' StageIII_hard81 = 'α.ιδγβα.' StageIII_hard82 = 'εδφηηηεβ' StageIII_hard83 = 'χιδ.ηαβχ' StageIII_hard84 = 'γ.ειδεχα' StageIII_hard85 = 'ηβφηφηηφ' StageIII_hard86 = 'ιδηαεβηχ' StageIII_hard87 = 'δ.ηδφιγε' StageIII_hard88 = 'χαιδχβη.' StageIII_hard89 = 'ηηιγαγδβ' StageIII_hard90 = 'βδαγια.γ' StageIII_hard91 = 'χηφβγεφη' StageIII_hard92 = 'αβ.ιδχφδ' StageIII_hard93 = 'γεε.ιβγχ' StageIII_hard94 = 'δβ.γηφχ.' StageIII_hard95 = 'εγβεδαφχ' class Subsession(BaseSubsession): pass def group_by_arrival_time_method(subsession, waiting_players): if len(waiting_players) >= 2: return waiting_players[:2] for player in waiting_players: if waiting_too_long(player): participant = player.participant participant.enroll = 2 if waiting_too_long(player): # make a single-player group. return [player] class Group(BaseGroup): Message_StageIII_H_R1 = models.StringField() Message_StageIII_H_R2 = models.StringField() Message_StageIII_H_R3 = models.StringField() Message_StageIII_H_R4 = models.StringField() pronoun = models.StringField() pronoun2 = models.StringField() summative_neutral = models.StringField() summative_neutral_1 = models.StringField() summative_neutral_2 = models.StringField() summative_neutral_3 = models.StringField() summative_positive = models.StringField() summative_positive_1 = models.StringField() summative_positive_2 = models.StringField() summative_positive_3 = models.StringField() summative_negative = models.StringField() summative_negative_1 = models.StringField() summative_negative_2 = models.StringField() summative_negative_3 = models.StringField() message_list_a = models.LongStringField() message_list_b = models.LongStringField() message_list_a1 = models.LongStringField() message_list_b1 = models.LongStringField() message_list_a2 = models.LongStringField() message_list_b2 = models.LongStringField() message_list_a3 = models.LongStringField() message_list_b3 = models.LongStringField() message_list_a_new = models.LongStringField() message_list_b_new = models.LongStringField() message_list_a1_new = models.LongStringField() message_list_b1_new = models.LongStringField() message_list_a2_new = models.LongStringField() message_list_b2_new = models.LongStringField() message_list_a3_new = models.LongStringField() message_list_b3_new = models.LongStringField() employee_name = models.StringField() # Counting Number of Pages StageIII_hard_period1_count = models.IntegerField(initial=0) StageIII_hard_period2_count = models.IntegerField(initial=0) StageIII_hard_period3_count = models.IntegerField(initial=0) StageIII_hard_period4_count = models.IntegerField(initial=0) StageIII_hard_period5_count = models.IntegerField(initial=0) # Correct letters for StageIII letters_StageIII_hard1 = models.IntegerField(initial=0) letters_StageIII_hard2 = models.IntegerField(initial=0) letters_StageIII_hard3 = models.IntegerField(initial=0) letters_StageIII_hard4 = models.IntegerField(initial=0) letters_StageIII_hard5 = models.IntegerField(initial=0) letters_StageIII_hard6 = models.IntegerField(initial=0) letters_StageIII_hard7 = models.IntegerField(initial=0) letters_StageIII_hard8 = models.IntegerField(initial=0) letters_StageIII_hard9 = models.IntegerField(initial=0) letters_StageIII_hard10 = models.IntegerField(initial=0) letters_StageIII_hard11 = models.IntegerField(initial=0) letters_StageIII_hard12 = models.IntegerField(initial=0) letters_StageIII_hard13 = models.IntegerField(initial=0) letters_StageIII_hard14 = models.IntegerField(initial=0) letters_StageIII_hard15 = models.IntegerField(initial=0) letters_StageIII_hard21 = models.IntegerField(initial=0) letters_StageIII_hard22 = models.IntegerField(initial=0) letters_StageIII_hard23 = models.IntegerField(initial=0) letters_StageIII_hard24 = models.IntegerField(initial=0) letters_StageIII_hard25 = models.IntegerField(initial=0) letters_StageIII_hard26 = models.IntegerField(initial=0) letters_StageIII_hard27 = models.IntegerField(initial=0) letters_StageIII_hard28 = models.IntegerField(initial=0) letters_StageIII_hard29 = models.IntegerField(initial=0) letters_StageIII_hard30 = models.IntegerField(initial=0) letters_StageIII_hard31 = models.IntegerField(initial=0) letters_StageIII_hard32 = models.IntegerField(initial=0) letters_StageIII_hard33 = models.IntegerField(initial=0) letters_StageIII_hard34 = models.IntegerField(initial=0) letters_StageIII_hard35 = models.IntegerField(initial=0) letters_StageIII_hard41 = models.IntegerField(initial=0) letters_StageIII_hard42 = models.IntegerField(initial=0) letters_StageIII_hard43 = models.IntegerField(initial=0) letters_StageIII_hard44 = models.IntegerField(initial=0) letters_StageIII_hard45 = models.IntegerField(initial=0) letters_StageIII_hard46 = models.IntegerField(initial=0) letters_StageIII_hard47 = models.IntegerField(initial=0) letters_StageIII_hard48 = models.IntegerField(initial=0) letters_StageIII_hard49 = models.IntegerField(initial=0) letters_StageIII_hard50 = models.IntegerField(initial=0) letters_StageIII_hard51 = models.IntegerField(initial=0) letters_StageIII_hard52 = models.IntegerField(initial=0) letters_StageIII_hard53 = models.IntegerField(initial=0) letters_StageIII_hard54 = models.IntegerField(initial=0) letters_StageIII_hard55 = models.IntegerField(initial=0) letters_StageIII_hard61 = models.IntegerField(initial=0) letters_StageIII_hard62 = models.IntegerField(initial=0) letters_StageIII_hard63 = models.IntegerField(initial=0) letters_StageIII_hard64 = models.IntegerField(initial=0) letters_StageIII_hard65 = models.IntegerField(initial=0) letters_StageIII_hard66 = models.IntegerField(initial=0) letters_StageIII_hard67 = models.IntegerField(initial=0) letters_StageIII_hard68 = models.IntegerField(initial=0) letters_StageIII_hard69 = models.IntegerField(initial=0) letters_StageIII_hard70 = models.IntegerField(initial=0) letters_StageIII_hard71 = models.IntegerField(initial=0) letters_StageIII_hard72 = models.IntegerField(initial=0) letters_StageIII_hard73 = models.IntegerField(initial=0) letters_StageIII_hard74 = models.IntegerField(initial=0) letters_StageIII_hard75 = models.IntegerField(initial=0) letters_StageIII_hard81 = models.IntegerField(initial=0) letters_StageIII_hard82 = models.IntegerField(initial=0) letters_StageIII_hard83 = models.IntegerField(initial=0) letters_StageIII_hard84 = models.IntegerField(initial=0) letters_StageIII_hard85 = models.IntegerField(initial=0) letters_StageIII_hard86 = models.IntegerField(initial=0) letters_StageIII_hard87 = models.IntegerField(initial=0) letters_StageIII_hard88 = models.IntegerField(initial=0) letters_StageIII_hard89 = models.IntegerField(initial=0) letters_StageIII_hard90 = models.IntegerField(initial=0) letters_StageIII_hard91 = models.IntegerField(initial=0) letters_StageIII_hard92 = models.IntegerField(initial=0) letters_StageIII_hard93 = models.IntegerField(initial=0) letters_StageIII_hard94 = models.IntegerField(initial=0) letters_StageIII_hard95 = models.IntegerField(initial=0) # Total correct letters in each round total_correct_StageIII_p1 = models.IntegerField(initial=0) total_correct_StageIII_p2 = models.IntegerField(initial=0) total_correct_StageIII_p3 = models.IntegerField(initial=0) total_correct_StageIII_p4 = models.IntegerField(initial=0) total_correct_StageIII_p5 = models.IntegerField(initial=0) # Total perfect transcriptions in each round total_perfect_StageIII_p1 = models.IntegerField(initial=0) total_perfect_StageIII_p2 = models.IntegerField(initial=0) total_perfect_StageIII_p3 = models.IntegerField(initial=0) total_perfect_StageIII_p4 = models.IntegerField(initial=0) total_perfect_StageIII_p5 = models.IntegerField(initial=0) Total_payment_StageIII_R1 = models.FloatField(initial=0) Total_payment_StageIII_R2 = models.FloatField(initial=0) Total_payment_StageIII_R3 = models.FloatField(initial=0) Total_payment_StageIII_R4 = models.FloatField(initial=0) Total_payment_StageIII_R5 = models.FloatField(initial=0) Total_point_StageIII = models.FloatField(initial=0) Total_point = models.FloatField(initial=0) Total_payment = models.FloatField(initial=0) class Player(BasePlayer): # Guess of the performance for round 1 guess_strings = models.IntegerField(min=0) # The Sub Messages Message_StageIII_H_R1_part1 = models.StringField(initial="None") Message_StageIII_H_R1_part2 = models.StringField(initial="None") Message_StageIII_H_R2_part1 = models.StringField(initial="None") Message_StageIII_H_R2_part2 = models.StringField(initial="None") Message_StageIII_H_R3_part1 = models.StringField(initial="None") Message_StageIII_H_R3_part2 = models.StringField(initial="None") Message_StageIII_H_R4_part1 = models.StringField(initial="None") Message_StageIII_H_R4_part2 = models.StringField(initial="None") # Total correct letters in the practice round total_correct_StageII_hard = models.IntegerField(initial=0) # Total perfect transcriptions in the practice round total_perfect_StageII_hard = models.IntegerField(initial=0) Attitude_1 = models.IntegerField(widget=widgets.RadioSelect, choices=[[1, 'Agree strongly'], [2, 'Agree'], [3, 'Disagree'], [4, 'Disagree strongly']]) Attitude_2 = models.IntegerField(widget=widgets.RadioSelect, choices=[[1, 'Agree strongly'], [2, 'Agree'], [3, 'Disagree'], [4, 'Disagree strongly']]) Managerial_1 = models.IntegerField(widget=widgets.RadioSelect, choices=[[1, 'Very important'], [2, 'Important'], [3, 'Somewhat important'], [4, 'Not very important'], [5, 'Not at all important']]) Managerial_2 = models.IntegerField(widget=widgets.RadioSelect, choices=[[1, 'Very important'], [2, 'Important'], [3, 'Somewhat important'], [4, 'Not very important'], [5, 'Not at all important']]) Managerial_3 = models.IntegerField(widget=widgets.RadioSelect, choices=[[1, 'Very important'], [2, 'Important'], [3, 'Somewhat important'], [4, 'Not very important'], [5, 'Not at all important']]) Managerial_4 = models.IntegerField(widget=widgets.RadioSelect, choices=[[1, 'Very important'], [2, 'Important'], [3, 'Somewhat important'], [4, 'Not very important'], [5, 'Not at all important']]) Gender_Guess = models.IntegerField(widget=widgets.RadioSelect, choices=[[1, 'Male'], [2, 'Female'],[3, 'Non-binary / gender diverse']]) Criticism = models.IntegerField(widget=widgets.RadioSelect, choices=[[1, 'Male'], [2, 'Female'],[3, 'No difference']]) Reason = models.LongStringField() Freeform_Feedback = models.LongStringField() Rate_Feedback = models.IntegerField(widget=widgets.RadioSelect, choices=[1, 2, 3, 4, 5]) Rate_Overall_Performance = models.IntegerField(widget=widgets.RadioSelect, choices=[1, 2, 3, 4, 5]) Managerial_Experience = models.IntegerField(widget=widgets.RadioSelect, choices=[[1, 'I have no related experience'],[2, 'Less than 1 year'], [3, 'Around 1-3 years'], [4, 'More than 3 years'], ]) Gender = models.IntegerField(widget=widgets.RadioSelect, choices=[[1, 'Male'], [2, 'Female'], [3, 'Non-binary / gender diverse'], [4, 'Prefer not to say']]) Risk = models.IntegerField(widget=widgets.RadioSelect, choices=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) # Referring to US CPS survey Race = models.IntegerField(widget=widgets.RadioSelect, choices=[[1, 'White '], [2, 'Black or African American'], [3, 'American Indian or Alaska Native'], [4, 'Asian'], [5, 'Native Hawaiian or Other Pacific Islander'], [6, 'Other']]) YOB = models.IntegerField(min=1900) Nationality = models.StringField() # Referring to US CPS survey Education = models.StringField(widget=widgets.RadioSelect, choices=['Less than High School', 'High school completion', "Some colleges or associate's degree", "Bachelor's degree", 'Advanced degree']) # Top 500 popular names for US newborn babies in 2000 Pseudonym_Male = models.StringField(widget=widgets.RadioSelect) Pseudonym_Female = models.StringField(widget=widgets.RadioSelect) Pseudonym_Non_binary = models.StringField(widget=widgets.RadioSelect) # Rating in Stage III Rating_StageII_hard = models.IntegerField(widget=widgets.RadioSelect, choices=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) # Decision Time for the manager's choice (Feedback & Promotion & Rating) DT_StageII_hard = models.FloatField() DT_StageIII_M1 = models.FloatField() DT_StageIII_M2 = models.FloatField() DT_StageIII_M3 = models.FloatField() DT_StageIII_M4 = models.FloatField() # Decision Time for the worker to read the message DT_StageIII_M1_reading = models.FloatField() DT_StageIII_M2_reading = models.FloatField() DT_StageIII_M3_reading = models.FloatField() DT_StageIII_M4_reading = models.FloatField() # Time Stamp DT_StageII_hard_0 = models.FloatField(initial=0) DT_StageII_hard_1 = models.FloatField(initial=0) DT_StageIII_M1_0 = models.FloatField(initial=0) DT_StageIII_M1_1 = models.FloatField(initial=0) DT_StageIII_M2_0 = models.FloatField(initial=0) DT_StageIII_M2_1 = models.FloatField(initial=0) DT_StageIII_M3_0 = models.FloatField(initial=0) DT_StageIII_M3_1 = models.FloatField(initial=0) DT_StageIII_M4_0 = models.FloatField(initial=0) DT_StageIII_M4_1 = models.FloatField(initial=0) DT_StageIII_M1_reading_0 = models.FloatField(initial=0) DT_StageIII_M1_reading_1 = models.FloatField(initial=0) DT_StageIII_M2_reading_0 = models.FloatField(initial=0) DT_StageIII_M2_reading_1 = models.FloatField(initial=0) DT_StageIII_M3_reading_0 = models.FloatField(initial=0) DT_StageIII_M3_reading_1 = models.FloatField(initial=0) DT_StageIII_M4_reading_0 = models.FloatField(initial=0) DT_StageIII_M4_reading_1 = models.FloatField(initial=0) # Counting Number of Pages StageII_hard_count = models.IntegerField(initial=0) # Answer for Practice Round StageII_hard1_answer = models.StringField(blank=True, initial="") StageII_hard2_answer = models.StringField(blank=True, initial="") StageII_hard3_answer = models.StringField(blank=True, initial="") StageII_hard4_answer = models.StringField(blank=True, initial="") StageII_hard5_answer = models.StringField(blank=True, initial="") StageII_hard6_answer = models.StringField(blank=True, initial="") StageII_hard7_answer = models.StringField(blank=True, initial="") StageII_hard8_answer = models.StringField(blank=True, initial="") StageII_hard9_answer = models.StringField(blank=True, initial="") StageII_hard10_answer = models.StringField(blank=True, initial="") StageII_hard11_answer = models.StringField(blank=True, initial="") StageII_hard12_answer = models.StringField(blank=True, initial="") StageII_hard13_answer = models.StringField(blank=True, initial="") StageII_hard14_answer = models.StringField(blank=True, initial="") StageII_hard15_answer = models.StringField(blank=True, initial="") # Time stamp time0_H = models.IntegerField(initial=0) time1_H = models.IntegerField(initial=0) time2_H = models.IntegerField(initial=0) time3_H = models.IntegerField(initial=0) time4_H = models.IntegerField(initial=0) time5_H = models.IntegerField(initial=0) time6_H = models.IntegerField(initial=0) time7_H = models.IntegerField(initial=0) time8_H = models.IntegerField(initial=0) time9_H = models.IntegerField(initial=0) time10_H = models.IntegerField(initial=0) time11_H = models.IntegerField(initial=0) time12_H = models.IntegerField(initial=0) time13_H = models.IntegerField(initial=0) time14_H = models.IntegerField(initial=0) time15_H = models.IntegerField(initial=0) time0_H_StageIII_R1 = models.IntegerField(initial=0) time1_H_StageIII_R1 = models.IntegerField(initial=0) time2_H_StageIII_R1 = models.IntegerField(initial=0) time3_H_StageIII_R1 = models.IntegerField(initial=0) time4_H_StageIII_R1 = models.IntegerField(initial=0) time5_H_StageIII_R1 = models.IntegerField(initial=0) time6_H_StageIII_R1 = models.IntegerField(initial=0) time7_H_StageIII_R1 = models.IntegerField(initial=0) time8_H_StageIII_R1 = models.IntegerField(initial=0) time9_H_StageIII_R1 = models.IntegerField(initial=0) time10_H_StageIII_R1 = models.IntegerField(initial=0) time11_H_StageIII_R1 = models.IntegerField(initial=0) time12_H_StageIII_R1 = models.IntegerField(initial=0) time13_H_StageIII_R1 = models.IntegerField(initial=0) time14_H_StageIII_R1 = models.IntegerField(initial=0) time15_H_StageIII_R1 = models.IntegerField(initial=0) time0_H_StageIII_R2 = models.IntegerField(initial=0) time1_H_StageIII_R2 = models.IntegerField(initial=0) time2_H_StageIII_R2 = models.IntegerField(initial=0) time3_H_StageIII_R2 = models.IntegerField(initial=0) time4_H_StageIII_R2 = models.IntegerField(initial=0) time5_H_StageIII_R2 = models.IntegerField(initial=0) time6_H_StageIII_R2 = models.IntegerField(initial=0) time7_H_StageIII_R2 = models.IntegerField(initial=0) time8_H_StageIII_R2 = models.IntegerField(initial=0) time9_H_StageIII_R2 = models.IntegerField(initial=0) time10_H_StageIII_R2 = models.IntegerField(initial=0) time11_H_StageIII_R2 = models.IntegerField(initial=0) time12_H_StageIII_R2 = models.IntegerField(initial=0) time13_H_StageIII_R2 = models.IntegerField(initial=0) time14_H_StageIII_R2 = models.IntegerField(initial=0) time15_H_StageIII_R2 = models.IntegerField(initial=0) time0_H_StageIII_R3 = models.IntegerField(initial=0) time1_H_StageIII_R3 = models.IntegerField(initial=0) time2_H_StageIII_R3 = models.IntegerField(initial=0) time3_H_StageIII_R3 = models.IntegerField(initial=0) time4_H_StageIII_R3 = models.IntegerField(initial=0) time5_H_StageIII_R3 = models.IntegerField(initial=0) time6_H_StageIII_R3 = models.IntegerField(initial=0) time7_H_StageIII_R3 = models.IntegerField(initial=0) time8_H_StageIII_R3 = models.IntegerField(initial=0) time9_H_StageIII_R3 = models.IntegerField(initial=0) time10_H_StageIII_R3 = models.IntegerField(initial=0) time11_H_StageIII_R3 = models.IntegerField(initial=0) time12_H_StageIII_R3 = models.IntegerField(initial=0) time13_H_StageIII_R3 = models.IntegerField(initial=0) time14_H_StageIII_R3 = models.IntegerField(initial=0) time15_H_StageIII_R3 = models.IntegerField(initial=0) time0_H_StageIII_R4 = models.IntegerField(initial=0) time1_H_StageIII_R4 = models.IntegerField(initial=0) time2_H_StageIII_R4 = models.IntegerField(initial=0) time3_H_StageIII_R4 = models.IntegerField(initial=0) time4_H_StageIII_R4 = models.IntegerField(initial=0) time5_H_StageIII_R4 = models.IntegerField(initial=0) time6_H_StageIII_R4 = models.IntegerField(initial=0) time7_H_StageIII_R4 = models.IntegerField(initial=0) time8_H_StageIII_R4 = models.IntegerField(initial=0) time9_H_StageIII_R4 = models.IntegerField(initial=0) time10_H_StageIII_R4 = models.IntegerField(initial=0) time11_H_StageIII_R4 = models.IntegerField(initial=0) time12_H_StageIII_R4 = models.IntegerField(initial=0) time13_H_StageIII_R4 = models.IntegerField(initial=0) time14_H_StageIII_R4 = models.IntegerField(initial=0) time15_H_StageIII_R4 = models.IntegerField(initial=0) time0_H_StageIII_R5 = models.IntegerField(initial=0) time1_H_StageIII_R5 = models.IntegerField(initial=0) time2_H_StageIII_R5 = models.IntegerField(initial=0) time3_H_StageIII_R5 = models.IntegerField(initial=0) time4_H_StageIII_R5 = models.IntegerField(initial=0) time5_H_StageIII_R5 = models.IntegerField(initial=0) time6_H_StageIII_R5 = models.IntegerField(initial=0) time7_H_StageIII_R5 = models.IntegerField(initial=0) time8_H_StageIII_R5 = models.IntegerField(initial=0) time9_H_StageIII_R5 = models.IntegerField(initial=0) time10_H_StageIII_R5 = models.IntegerField(initial=0) time11_H_StageIII_R5 = models.IntegerField(initial=0) time12_H_StageIII_R5 = models.IntegerField(initial=0) time13_H_StageIII_R5 = models.IntegerField(initial=0) time14_H_StageIII_R5 = models.IntegerField(initial=0) time15_H_StageIII_R5 = models.IntegerField(initial=0) # Create a field to store the data timeSpent_hard1 = models.IntegerField(initial=0) timeSpent_hard2 = models.IntegerField(initial=0) timeSpent_hard3 = models.IntegerField(initial=0) timeSpent_hard4 = models.IntegerField(initial=0) timeSpent_hard5 = models.IntegerField(initial=0) timeSpent_hard6 = models.IntegerField(initial=0) timeSpent_hard7 = models.IntegerField(initial=0) timeSpent_hard8 = models.IntegerField(initial=0) timeSpent_hard9 = models.IntegerField(initial=0) timeSpent_hard10 = models.IntegerField(initial=0) timeSpent_hard11 = models.IntegerField(initial=0) timeSpent_hard12 = models.IntegerField(initial=0) timeSpent_hard13 = models.IntegerField(initial=0) timeSpent_hard14 = models.IntegerField(initial=0) timeSpent_hard15 = models.IntegerField(initial=0) # correct letters for practice rounds letters_hard1 = models.IntegerField(initial=0) letters_hard2 = models.IntegerField(initial=0) letters_hard3 = models.IntegerField(initial=0) letters_hard4 = models.IntegerField(initial=0) letters_hard5 = models.IntegerField(initial=0) letters_hard6 = models.IntegerField(initial=0) letters_hard7 = models.IntegerField(initial=0) letters_hard8 = models.IntegerField(initial=0) letters_hard9 = models.IntegerField(initial=0) letters_hard10 = models.IntegerField(initial=0) letters_hard11 = models.IntegerField(initial=0) letters_hard12 = models.IntegerField(initial=0) letters_hard13 = models.IntegerField(initial=0) letters_hard14 = models.IntegerField(initial=0) letters_hard15 = models.IntegerField(initial=0) # Answer for Stage III StageIII_hard1_answer = models.StringField(blank=True, initial="") StageIII_hard2_answer = models.StringField(blank=True, initial="") StageIII_hard3_answer = models.StringField(blank=True, initial="") StageIII_hard4_answer = models.StringField(blank=True, initial="") StageIII_hard5_answer = models.StringField(blank=True, initial="") StageIII_hard6_answer = models.StringField(blank=True, initial="") StageIII_hard7_answer = models.StringField(blank=True, initial="") StageIII_hard8_answer = models.StringField(blank=True, initial="") StageIII_hard9_answer = models.StringField(blank=True, initial="") StageIII_hard10_answer = models.StringField(blank=True, initial="") StageIII_hard11_answer = models.StringField(blank=True, initial="") StageIII_hard12_answer = models.StringField(blank=True, initial="") StageIII_hard13_answer = models.StringField(blank=True, initial="") StageIII_hard14_answer = models.StringField(blank=True, initial="") StageIII_hard15_answer = models.StringField(blank=True, initial="") StageIII_hard21_answer = models.StringField(blank=True, initial="") StageIII_hard22_answer = models.StringField(blank=True, initial="") StageIII_hard23_answer = models.StringField(blank=True, initial="") StageIII_hard24_answer = models.StringField(blank=True, initial="") StageIII_hard25_answer = models.StringField(blank=True, initial="") StageIII_hard26_answer = models.StringField(blank=True, initial="") StageIII_hard27_answer = models.StringField(blank=True, initial="") StageIII_hard28_answer = models.StringField(blank=True, initial="") StageIII_hard29_answer = models.StringField(blank=True, initial="") StageIII_hard30_answer = models.StringField(blank=True, initial="") StageIII_hard31_answer = models.StringField(blank=True, initial="") StageIII_hard32_answer = models.StringField(blank=True, initial="") StageIII_hard33_answer = models.StringField(blank=True, initial="") StageIII_hard34_answer = models.StringField(blank=True, initial="") StageIII_hard35_answer = models.StringField(blank=True, initial="") StageIII_hard41_answer = models.StringField(blank=True, initial="") StageIII_hard42_answer = models.StringField(blank=True, initial="") StageIII_hard43_answer = models.StringField(blank=True, initial="") StageIII_hard44_answer = models.StringField(blank=True, initial="") StageIII_hard45_answer = models.StringField(blank=True, initial="") StageIII_hard46_answer = models.StringField(blank=True, initial="") StageIII_hard47_answer = models.StringField(blank=True, initial="") StageIII_hard48_answer = models.StringField(blank=True, initial="") StageIII_hard49_answer = models.StringField(blank=True, initial="") StageIII_hard50_answer = models.StringField(blank=True, initial="") StageIII_hard51_answer = models.StringField(blank=True, initial="") StageIII_hard52_answer = models.StringField(blank=True, initial="") StageIII_hard53_answer = models.StringField(blank=True, initial="") StageIII_hard54_answer = models.StringField(blank=True, initial="") StageIII_hard55_answer = models.StringField(blank=True, initial="") StageIII_hard61_answer = models.StringField(blank=True, initial="") StageIII_hard62_answer = models.StringField(blank=True, initial="") StageIII_hard63_answer = models.StringField(blank=True, initial="") StageIII_hard64_answer = models.StringField(blank=True, initial="") StageIII_hard65_answer = models.StringField(blank=True, initial="") StageIII_hard66_answer = models.StringField(blank=True, initial="") StageIII_hard67_answer = models.StringField(blank=True, initial="") StageIII_hard68_answer = models.StringField(blank=True, initial="") StageIII_hard69_answer = models.StringField(blank=True, initial="") StageIII_hard70_answer = models.StringField(blank=True, initial="") StageIII_hard71_answer = models.StringField(blank=True, initial="") StageIII_hard72_answer = models.StringField(blank=True, initial="") StageIII_hard73_answer = models.StringField(blank=True, initial="") StageIII_hard74_answer = models.StringField(blank=True, initial="") StageIII_hard75_answer = models.StringField(blank=True, initial="") StageIII_hard81_answer = models.StringField(blank=True, initial="") StageIII_hard82_answer = models.StringField(blank=True, initial="") StageIII_hard83_answer = models.StringField(blank=True, initial="") StageIII_hard84_answer = models.StringField(blank=True, initial="") StageIII_hard85_answer = models.StringField(blank=True, initial="") StageIII_hard86_answer = models.StringField(blank=True, initial="") StageIII_hard87_answer = models.StringField(blank=True, initial="") StageIII_hard88_answer = models.StringField(blank=True, initial="") StageIII_hard89_answer = models.StringField(blank=True, initial="") StageIII_hard90_answer = models.StringField(blank=True, initial="") StageIII_hard91_answer = models.StringField(blank=True, initial="") StageIII_hard92_answer = models.StringField(blank=True, initial="") StageIII_hard93_answer = models.StringField(blank=True, initial="") StageIII_hard94_answer = models.StringField(blank=True, initial="") StageIII_hard95_answer = models.StringField(blank=True, initial="") # Time spent in stage III timeSpent_StageIII_hard1 = models.IntegerField(initial=0) timeSpent_StageIII_hard2 = models.IntegerField(initial=0) timeSpent_StageIII_hard3 = models.IntegerField(initial=0) timeSpent_StageIII_hard4 = models.IntegerField(initial=0) timeSpent_StageIII_hard5 = models.IntegerField(initial=0) timeSpent_StageIII_hard6 = models.IntegerField(initial=0) timeSpent_StageIII_hard7 = models.IntegerField(initial=0) timeSpent_StageIII_hard8 = models.IntegerField(initial=0) timeSpent_StageIII_hard9 = models.IntegerField(initial=0) timeSpent_StageIII_hard10 = models.IntegerField(initial=0) timeSpent_StageIII_hard11 = models.IntegerField(initial=0) timeSpent_StageIII_hard12 = models.IntegerField(initial=0) timeSpent_StageIII_hard13 = models.IntegerField(initial=0) timeSpent_StageIII_hard14 = models.IntegerField(initial=0) timeSpent_StageIII_hard15 = models.IntegerField(initial=0) timeSpent_StageIII_hard21 = models.IntegerField(initial=0) timeSpent_StageIII_hard22 = models.IntegerField(initial=0) timeSpent_StageIII_hard23 = models.IntegerField(initial=0) timeSpent_StageIII_hard24 = models.IntegerField(initial=0) timeSpent_StageIII_hard25 = models.IntegerField(initial=0) timeSpent_StageIII_hard26 = models.IntegerField(initial=0) timeSpent_StageIII_hard27 = models.IntegerField(initial=0) timeSpent_StageIII_hard28 = models.IntegerField(initial=0) timeSpent_StageIII_hard29 = models.IntegerField(initial=0) timeSpent_StageIII_hard30 = models.IntegerField(initial=0) timeSpent_StageIII_hard31 = models.IntegerField(initial=0) timeSpent_StageIII_hard32 = models.IntegerField(initial=0) timeSpent_StageIII_hard33 = models.IntegerField(initial=0) timeSpent_StageIII_hard34 = models.IntegerField(initial=0) timeSpent_StageIII_hard35 = models.IntegerField(initial=0) timeSpent_StageIII_hard41 = models.IntegerField(initial=0) timeSpent_StageIII_hard42 = models.IntegerField(initial=0) timeSpent_StageIII_hard43 = models.IntegerField(initial=0) timeSpent_StageIII_hard44 = models.IntegerField(initial=0) timeSpent_StageIII_hard45 = models.IntegerField(initial=0) timeSpent_StageIII_hard46 = models.IntegerField(initial=0) timeSpent_StageIII_hard47 = models.IntegerField(initial=0) timeSpent_StageIII_hard48 = models.IntegerField(initial=0) timeSpent_StageIII_hard49 = models.IntegerField(initial=0) timeSpent_StageIII_hard50 = models.IntegerField(initial=0) timeSpent_StageIII_hard51 = models.IntegerField(initial=0) timeSpent_StageIII_hard52 = models.IntegerField(initial=0) timeSpent_StageIII_hard53 = models.IntegerField(initial=0) timeSpent_StageIII_hard54 = models.IntegerField(initial=0) timeSpent_StageIII_hard55 = models.IntegerField(initial=0) timeSpent_StageIII_hard61 = models.IntegerField(initial=0) timeSpent_StageIII_hard62 = models.IntegerField(initial=0) timeSpent_StageIII_hard63 = models.IntegerField(initial=0) timeSpent_StageIII_hard64 = models.IntegerField(initial=0) timeSpent_StageIII_hard65 = models.IntegerField(initial=0) timeSpent_StageIII_hard66 = models.IntegerField(initial=0) timeSpent_StageIII_hard67 = models.IntegerField(initial=0) timeSpent_StageIII_hard68 = models.IntegerField(initial=0) timeSpent_StageIII_hard69 = models.IntegerField(initial=0) timeSpent_StageIII_hard70 = models.IntegerField(initial=0) timeSpent_StageIII_hard71 = models.IntegerField(initial=0) timeSpent_StageIII_hard72 = models.IntegerField(initial=0) timeSpent_StageIII_hard73 = models.IntegerField(initial=0) timeSpent_StageIII_hard74 = models.IntegerField(initial=0) timeSpent_StageIII_hard75 = models.IntegerField(initial=0) timeSpent_StageIII_hard81 = models.IntegerField(initial=0) timeSpent_StageIII_hard82 = models.IntegerField(initial=0) timeSpent_StageIII_hard83 = models.IntegerField(initial=0) timeSpent_StageIII_hard84 = models.IntegerField(initial=0) timeSpent_StageIII_hard85 = models.IntegerField(initial=0) timeSpent_StageIII_hard86 = models.IntegerField(initial=0) timeSpent_StageIII_hard87 = models.IntegerField(initial=0) timeSpent_StageIII_hard88 = models.IntegerField(initial=0) timeSpent_StageIII_hard89 = models.IntegerField(initial=0) timeSpent_StageIII_hard90 = models.IntegerField(initial=0) timeSpent_StageIII_hard91 = models.IntegerField(initial=0) timeSpent_StageIII_hard92 = models.IntegerField(initial=0) timeSpent_StageIII_hard93 = models.IntegerField(initial=0) timeSpent_StageIII_hard94 = models.IntegerField(initial=0) timeSpent_StageIII_hard95 = models.IntegerField(initial=0) # Random Name List def Pseudonym_Male_choices(player: Player): choices = ['James', 'William', 'Lucas', 'Michael', 'Daniel'] random.shuffle(choices) return choices def Pseudonym_Female_choices(player: Player): choices = ['Emma', 'Sarah', 'Elizabeth', 'Megan', 'Katherine'] random.shuffle(choices) return choices def Pseudonym_Non_binary_choices(player: Player): choices = ['Pat', 'Cameron', 'Jordan', 'Jessie', 'Peyton'] random.shuffle(choices) return choices def get_timeout_seconds_a(player: Player): participant = player.participant import time return participant.expiry - time.time() def get_timeout_seconds_c(player: Player): participant = player.participant import time return participant.expiry_c - time.time() def is_displayed_a(player: Player): participant = player.participant return participant.enroll == 1 and get_timeout_seconds_a(player) > 0 def is_displayed_c(player: Player): participant = player.participant return participant.enroll == 1 and get_timeout_seconds_c(player) > 0 and player.id_in_group == 2 def set_payoffs_a(player: Player): player.letters_hard1 = compare_strings(player.StageII_hard1_answer, C.StageII_hard1) player.letters_hard2 = compare_strings(player.StageII_hard2_answer, C.StageII_hard2) player.letters_hard3 = compare_strings(player.StageII_hard3_answer, C.StageII_hard3) player.letters_hard4 = compare_strings(player.StageII_hard4_answer, C.StageII_hard4) player.letters_hard5 = compare_strings(player.StageII_hard5_answer, C.StageII_hard5) player.letters_hard6 = compare_strings(player.StageII_hard6_answer, C.StageII_hard6) player.letters_hard7 = compare_strings(player.StageII_hard7_answer, C.StageII_hard7) player.letters_hard8 = compare_strings(player.StageII_hard8_answer, C.StageII_hard8) player.letters_hard9 = compare_strings(player.StageII_hard9_answer, C.StageII_hard9) player.letters_hard10 = compare_strings(player.StageII_hard10_answer, C.StageII_hard10) player.letters_hard11 = compare_strings(player.StageII_hard11_answer, C.StageII_hard11) player.letters_hard12 = compare_strings(player.StageII_hard12_answer, C.StageII_hard12) player.letters_hard13 = compare_strings(player.StageII_hard13_answer, C.StageII_hard13) player.letters_hard14 = compare_strings(player.StageII_hard14_answer, C.StageII_hard14) player.letters_hard15 = compare_strings(player.StageII_hard15_answer, C.StageII_hard15) player.total_correct_StageII_hard = player.letters_hard1 + player.letters_hard2 + player.letters_hard3 + \ player.letters_hard4 + player.letters_hard5 + player.letters_hard6 + \ player.letters_hard7 + player.letters_hard8 + player.letters_hard9 + \ player.letters_hard10 + player.letters_hard11 + player.letters_hard12 + \ player.letters_hard13 + player.letters_hard14 + player.letters_hard15 player.total_perfect_StageII_hard = perfect_hard(player.letters_hard1) + perfect_hard(player.letters_hard2) + perfect_hard(player.letters_hard3) + \ perfect_hard(player.letters_hard4) + perfect_hard(player.letters_hard5) + perfect_hard(player.letters_hard6) + \ perfect_hard(player.letters_hard7) + perfect_hard(player.letters_hard8) + perfect_hard(player.letters_hard9) + \ perfect_hard(player.letters_hard10) + perfect_hard(player.letters_hard11) + perfect_hard(player.letters_hard12) + \ perfect_hard(player.letters_hard13) + perfect_hard(player.letters_hard14) + perfect_hard(player.letters_hard15) def set_payoffs_c(group: Group): p2 = group.get_player_by_id(2) group.letters_StageIII_hard1 = compare_strings(p2.StageIII_hard1_answer, C.StageIII_hard1) group.letters_StageIII_hard2 = compare_strings(p2.StageIII_hard2_answer, C.StageIII_hard2) group.letters_StageIII_hard3 = compare_strings(p2.StageIII_hard3_answer, C.StageIII_hard3) group.letters_StageIII_hard4 = compare_strings(p2.StageIII_hard4_answer, C.StageIII_hard4) group.letters_StageIII_hard5 = compare_strings(p2.StageIII_hard5_answer, C.StageIII_hard5) group.letters_StageIII_hard6 = compare_strings(p2.StageIII_hard6_answer, C.StageIII_hard6) group.letters_StageIII_hard7 = compare_strings(p2.StageIII_hard7_answer, C.StageIII_hard7) group.letters_StageIII_hard8 = compare_strings(p2.StageIII_hard8_answer, C.StageIII_hard8) group.letters_StageIII_hard9 = compare_strings(p2.StageIII_hard9_answer, C.StageIII_hard9) group.letters_StageIII_hard10 = compare_strings(p2.StageIII_hard10_answer, C.StageIII_hard10) group.letters_StageIII_hard11 = compare_strings(p2.StageIII_hard11_answer, C.StageIII_hard11) group.letters_StageIII_hard12 = compare_strings(p2.StageIII_hard12_answer, C.StageIII_hard12) group.letters_StageIII_hard13 = compare_strings(p2.StageIII_hard13_answer, C.StageIII_hard13) group.letters_StageIII_hard14 = compare_strings(p2.StageIII_hard14_answer, C.StageIII_hard14) group.letters_StageIII_hard15 = compare_strings(p2.StageIII_hard15_answer, C.StageIII_hard15) group.total_correct_StageIII_p1 = group.letters_StageIII_hard1 + group.letters_StageIII_hard2 + group.letters_StageIII_hard3 + group.letters_StageIII_hard4\ + group.letters_StageIII_hard5 + group.letters_StageIII_hard6 + group.letters_StageIII_hard7 + group.letters_StageIII_hard8 \ + group.letters_StageIII_hard9 + group.letters_StageIII_hard10 + group.letters_StageIII_hard11 + \ group.letters_StageIII_hard12 + group.letters_StageIII_hard13 + group.letters_StageIII_hard14 + group.letters_StageIII_hard15 group.total_perfect_StageIII_p1 = perfect_hard(group.letters_StageIII_hard1) + perfect_hard(group.letters_StageIII_hard2) + \ perfect_hard(group.letters_StageIII_hard3) + perfect_hard(group.letters_StageIII_hard4) + \ perfect_hard(group.letters_StageIII_hard5) + perfect_hard(group.letters_StageIII_hard6) + \ perfect_hard(group.letters_StageIII_hard7) + perfect_hard(group.letters_StageIII_hard8) + \ perfect_hard(group.letters_StageIII_hard9) + perfect_hard(group.letters_StageIII_hard10) + \ perfect_hard(group.letters_StageIII_hard11) + perfect_hard(group.letters_StageIII_hard12) + \ perfect_hard(group.letters_StageIII_hard13) + perfect_hard(group.letters_StageIII_hard14) + \ perfect_hard(group.letters_StageIII_hard15) group.Total_payment_StageIII_R1 = pay_hard(group.letters_StageIII_hard1) + pay_hard(group.letters_StageIII_hard2) + \ pay_hard(group.letters_StageIII_hard3) + pay_hard(group.letters_StageIII_hard4) + \ pay_hard(group.letters_StageIII_hard5) + pay_hard(group.letters_StageIII_hard6) + \ pay_hard(group.letters_StageIII_hard7) + pay_hard(group.letters_StageIII_hard8) + \ pay_hard(group.letters_StageIII_hard9) + pay_hard(group.letters_StageIII_hard10) + \ pay_hard(group.letters_StageIII_hard11) + pay_hard(group.letters_StageIII_hard12) + \ pay_hard(group.letters_StageIII_hard13) + pay_hard(group.letters_StageIII_hard14) + \ pay_hard(group.letters_StageIII_hard15) group.summative_positive = 'You have transcribed ' + str( group.total_correct_StageIII_p1) + ' letters correctly in this round. Congratulations! ' group.summative_neutral = 'You have transcribed ' + str( group.total_correct_StageIII_p1) + ' letters correctly in this round. ' group.summative_negative = 'You have transcribed ' + str( group.total_correct_StageIII_p1) + ' letters correctly in this round. You can do better. ' group.message_list_a = ';'.join([str(group.summative_positive), str(group.summative_neutral), str(group.summative_negative),]) group.message_list_b = ';'.join([' ', 'If you slow down a little, your accuracy may improve.', 'If you speed up, you can still maintain your accuracy.']) group.message_list_a_new = ';'.join(random.sample(group.message_list_a.split(';'),len(group.message_list_a.split(';')))) group.message_list_b_new = ';'.join(random.sample(group.message_list_b.split(';'),len(group.message_list_b.split(';')))) def set_payoffs_c1(group: Group): p2 = group.get_player_by_id(2) group.letters_StageIII_hard21 = compare_strings(p2.StageIII_hard21_answer, C.StageIII_hard21) group.letters_StageIII_hard22 = compare_strings(p2.StageIII_hard22_answer, C.StageIII_hard22) group.letters_StageIII_hard23 = compare_strings(p2.StageIII_hard23_answer, C.StageIII_hard23) group.letters_StageIII_hard24 = compare_strings(p2.StageIII_hard24_answer, C.StageIII_hard24) group.letters_StageIII_hard25 = compare_strings(p2.StageIII_hard25_answer, C.StageIII_hard25) group.letters_StageIII_hard26 = compare_strings(p2.StageIII_hard26_answer, C.StageIII_hard26) group.letters_StageIII_hard27 = compare_strings(p2.StageIII_hard27_answer, C.StageIII_hard27) group.letters_StageIII_hard28 = compare_strings(p2.StageIII_hard28_answer, C.StageIII_hard28) group.letters_StageIII_hard29 = compare_strings(p2.StageIII_hard29_answer, C.StageIII_hard29) group.letters_StageIII_hard30 = compare_strings(p2.StageIII_hard30_answer, C.StageIII_hard30) group.letters_StageIII_hard31 = compare_strings(p2.StageIII_hard31_answer, C.StageIII_hard31) group.letters_StageIII_hard32 = compare_strings(p2.StageIII_hard32_answer, C.StageIII_hard32) group.letters_StageIII_hard33 = compare_strings(p2.StageIII_hard33_answer, C.StageIII_hard33) group.letters_StageIII_hard34 = compare_strings(p2.StageIII_hard34_answer, C.StageIII_hard34) group.letters_StageIII_hard35 = compare_strings(p2.StageIII_hard35_answer, C.StageIII_hard35) group.total_correct_StageIII_p2 = group.letters_StageIII_hard21 + group.letters_StageIII_hard22 + group.letters_StageIII_hard23 + group.letters_StageIII_hard24 \ + group.letters_StageIII_hard25 + group.letters_StageIII_hard26 + group.letters_StageIII_hard27 + group.letters_StageIII_hard28 \ + group.letters_StageIII_hard29 + group.letters_StageIII_hard30 + group.letters_StageIII_hard31 + \ group.letters_StageIII_hard32 + group.letters_StageIII_hard33 + group.letters_StageIII_hard34 + group.letters_StageIII_hard35 group.total_perfect_StageIII_p2 = perfect_hard(group.letters_StageIII_hard21) + perfect_hard(group.letters_StageIII_hard22) + \ perfect_hard(group.letters_StageIII_hard23) + perfect_hard(group.letters_StageIII_hard24) + \ perfect_hard(group.letters_StageIII_hard25) + perfect_hard(group.letters_StageIII_hard26) + \ perfect_hard(group.letters_StageIII_hard27) + perfect_hard(group.letters_StageIII_hard28) + \ perfect_hard(group.letters_StageIII_hard29) + perfect_hard(group.letters_StageIII_hard30) + \ perfect_hard(group.letters_StageIII_hard31) + perfect_hard(group.letters_StageIII_hard32) + \ perfect_hard(group.letters_StageIII_hard33) + perfect_hard(group.letters_StageIII_hard34) + \ perfect_hard(group.letters_StageIII_hard35) group.Total_payment_StageIII_R2 = pay_hard(group.letters_StageIII_hard21) + pay_hard(group.letters_StageIII_hard22) + \ pay_hard(group.letters_StageIII_hard23) + pay_hard(group.letters_StageIII_hard24) + \ pay_hard(group.letters_StageIII_hard25) + pay_hard(group.letters_StageIII_hard26) + \ pay_hard(group.letters_StageIII_hard27) + pay_hard(group.letters_StageIII_hard28) + \ pay_hard(group.letters_StageIII_hard29) + pay_hard(group.letters_StageIII_hard30) + \ pay_hard(group.letters_StageIII_hard31) + pay_hard(group.letters_StageIII_hard32) + \ pay_hard(group.letters_StageIII_hard33) + pay_hard(group.letters_StageIII_hard34) + \ pay_hard(group.letters_StageIII_hard35) group.summative_positive_1 = 'You have transcribed ' + str( group.total_correct_StageIII_p2) + ' letters correctly in this round. Congratulations! ' group.summative_neutral_1 = 'You have transcribed ' + str( group.total_correct_StageIII_p2) + ' letters correctly in this round. ' group.summative_negative_1 = 'You have transcribed ' + str( group.total_correct_StageIII_p2) + ' letters correctly in this round. You can do better. ' group.message_list_a1 = ';'.join([str(group.summative_positive_1), str(group.summative_neutral_1), str(group.summative_negative_1)]) group.message_list_b1 = ';'.join([' ', 'If you slow down a little, your accuracy may improve.', 'If you speed up, you can still maintain your accuracy.']) group.message_list_a1_new = ';'.join(random.sample(group.message_list_a1.split(';'),len(group.message_list_a1.split(';')))) group.message_list_b1_new = ';'.join(random.sample(group.message_list_b1.split(';'),len(group.message_list_b1.split(';')))) def set_payoffs_c2(group: Group): p2 = group.get_player_by_id(2) group.letters_StageIII_hard41 = compare_strings(p2.StageIII_hard41_answer, C.StageIII_hard41) group.letters_StageIII_hard42 = compare_strings(p2.StageIII_hard42_answer, C.StageIII_hard42) group.letters_StageIII_hard43 = compare_strings(p2.StageIII_hard43_answer, C.StageIII_hard43) group.letters_StageIII_hard44 = compare_strings(p2.StageIII_hard44_answer, C.StageIII_hard44) group.letters_StageIII_hard45 = compare_strings(p2.StageIII_hard45_answer, C.StageIII_hard45) group.letters_StageIII_hard46 = compare_strings(p2.StageIII_hard46_answer, C.StageIII_hard46) group.letters_StageIII_hard47 = compare_strings(p2.StageIII_hard47_answer, C.StageIII_hard47) group.letters_StageIII_hard48 = compare_strings(p2.StageIII_hard48_answer, C.StageIII_hard48) group.letters_StageIII_hard49 = compare_strings(p2.StageIII_hard49_answer, C.StageIII_hard49) group.letters_StageIII_hard50 = compare_strings(p2.StageIII_hard50_answer, C.StageIII_hard50) group.letters_StageIII_hard51 = compare_strings(p2.StageIII_hard51_answer, C.StageIII_hard51) group.letters_StageIII_hard52 = compare_strings(p2.StageIII_hard52_answer, C.StageIII_hard52) group.letters_StageIII_hard53 = compare_strings(p2.StageIII_hard53_answer, C.StageIII_hard53) group.letters_StageIII_hard54 = compare_strings(p2.StageIII_hard54_answer, C.StageIII_hard54) group.letters_StageIII_hard55 = compare_strings(p2.StageIII_hard55_answer, C.StageIII_hard55) group.total_correct_StageIII_p3 = group.letters_StageIII_hard41 + group.letters_StageIII_hard42 + group.letters_StageIII_hard43 + group.letters_StageIII_hard44 \ + group.letters_StageIII_hard45 + group.letters_StageIII_hard46 + group.letters_StageIII_hard47 + group.letters_StageIII_hard48 \ + group.letters_StageIII_hard49 + group.letters_StageIII_hard50 + group.letters_StageIII_hard51 + \ group.letters_StageIII_hard52 + group.letters_StageIII_hard53 + group.letters_StageIII_hard54 + group.letters_StageIII_hard55 group.total_perfect_StageIII_p3 = perfect_hard(group.letters_StageIII_hard41) + perfect_hard(group.letters_StageIII_hard42) + \ perfect_hard(group.letters_StageIII_hard43) + perfect_hard(group.letters_StageIII_hard44) + \ perfect_hard(group.letters_StageIII_hard45) + perfect_hard(group.letters_StageIII_hard46) + \ perfect_hard(group.letters_StageIII_hard47) + perfect_hard(group.letters_StageIII_hard48) + \ perfect_hard(group.letters_StageIII_hard49) + perfect_hard(group.letters_StageIII_hard50) + \ perfect_hard(group.letters_StageIII_hard51) + perfect_hard(group.letters_StageIII_hard52) + \ perfect_hard(group.letters_StageIII_hard53) + perfect_hard(group.letters_StageIII_hard54) + \ perfect_hard(group.letters_StageIII_hard55) group.Total_payment_StageIII_R3 = pay_hard(group.letters_StageIII_hard41) + pay_hard(group.letters_StageIII_hard42) + \ pay_hard(group.letters_StageIII_hard43) + pay_hard(group.letters_StageIII_hard44) + \ pay_hard(group.letters_StageIII_hard45) + pay_hard(group.letters_StageIII_hard46) + \ pay_hard(group.letters_StageIII_hard47) + pay_hard(group.letters_StageIII_hard48) + \ pay_hard(group.letters_StageIII_hard49) + pay_hard(group.letters_StageIII_hard50) + \ pay_hard(group.letters_StageIII_hard51) + pay_hard(group.letters_StageIII_hard52) + \ pay_hard(group.letters_StageIII_hard53) + pay_hard(group.letters_StageIII_hard54) + \ pay_hard(group.letters_StageIII_hard55) group.summative_positive_2 = 'You have transcribed ' + str( group.total_correct_StageIII_p3) + ' letters correctly in this round. Congratulations! ' group.summative_neutral_2 = 'You have transcribed ' + str( group.total_correct_StageIII_p3) + ' letters correctly in this round. ' group.summative_negative_2 = 'You have transcribed ' + str( group.total_correct_StageIII_p3) + ' letters correctly in this round. You can do better. ' group.message_list_a2 = ';'.join([str(group.summative_positive_2), str(group.summative_neutral_2), str(group.summative_negative_2)]) group.message_list_b2 = ';'.join([' ', 'If you slow down a little, your accuracy may improve.', 'If you speed up, you can still maintain your accuracy.']) group.message_list_a2_new = ';'.join(random.sample(group.message_list_a2.split(';'),len(group.message_list_a2.split(';')))) group.message_list_b2_new = ';'.join(random.sample(group.message_list_b2.split(';'),len(group.message_list_b2.split(';')))) def set_payoffs_c3(group: Group): p2 = group.get_player_by_id(2) group.letters_StageIII_hard61 = compare_strings(p2.StageIII_hard61_answer, C.StageIII_hard61) group.letters_StageIII_hard62 = compare_strings(p2.StageIII_hard62_answer, C.StageIII_hard62) group.letters_StageIII_hard63 = compare_strings(p2.StageIII_hard63_answer, C.StageIII_hard63) group.letters_StageIII_hard64 = compare_strings(p2.StageIII_hard64_answer, C.StageIII_hard64) group.letters_StageIII_hard65 = compare_strings(p2.StageIII_hard65_answer, C.StageIII_hard65) group.letters_StageIII_hard66 = compare_strings(p2.StageIII_hard66_answer, C.StageIII_hard66) group.letters_StageIII_hard67 = compare_strings(p2.StageIII_hard67_answer, C.StageIII_hard67) group.letters_StageIII_hard68 = compare_strings(p2.StageIII_hard68_answer, C.StageIII_hard68) group.letters_StageIII_hard69 = compare_strings(p2.StageIII_hard69_answer, C.StageIII_hard69) group.letters_StageIII_hard70 = compare_strings(p2.StageIII_hard70_answer, C.StageIII_hard70) group.letters_StageIII_hard71 = compare_strings(p2.StageIII_hard71_answer, C.StageIII_hard71) group.letters_StageIII_hard72 = compare_strings(p2.StageIII_hard72_answer, C.StageIII_hard72) group.letters_StageIII_hard73 = compare_strings(p2.StageIII_hard73_answer, C.StageIII_hard73) group.letters_StageIII_hard74 = compare_strings(p2.StageIII_hard74_answer, C.StageIII_hard74) group.letters_StageIII_hard75 = compare_strings(p2.StageIII_hard75_answer, C.StageIII_hard75) group.total_correct_StageIII_p4 = group.letters_StageIII_hard61 + group.letters_StageIII_hard62 + group.letters_StageIII_hard63 + group.letters_StageIII_hard64 \ + group.letters_StageIII_hard65 + group.letters_StageIII_hard66 + group.letters_StageIII_hard67 + group.letters_StageIII_hard68 \ + group.letters_StageIII_hard69 + group.letters_StageIII_hard70 + group.letters_StageIII_hard71 + \ group.letters_StageIII_hard72 + group.letters_StageIII_hard73 + group.letters_StageIII_hard74 + group.letters_StageIII_hard75 group.total_perfect_StageIII_p4 = perfect_hard(group.letters_StageIII_hard61) + perfect_hard(group.letters_StageIII_hard62) + \ perfect_hard(group.letters_StageIII_hard63) + perfect_hard(group.letters_StageIII_hard64) + \ perfect_hard(group.letters_StageIII_hard65) + perfect_hard(group.letters_StageIII_hard66) + \ perfect_hard(group.letters_StageIII_hard67) + perfect_hard(group.letters_StageIII_hard68) + \ perfect_hard(group.letters_StageIII_hard69) + perfect_hard(group.letters_StageIII_hard70) + \ perfect_hard(group.letters_StageIII_hard71) + perfect_hard(group.letters_StageIII_hard72) + \ perfect_hard(group.letters_StageIII_hard73) + perfect_hard(group.letters_StageIII_hard74) + \ perfect_hard(group.letters_StageIII_hard75) group.Total_payment_StageIII_R4 = pay_hard(group.letters_StageIII_hard61) + pay_hard(group.letters_StageIII_hard62) + \ pay_hard(group.letters_StageIII_hard63) + pay_hard(group.letters_StageIII_hard64) + \ pay_hard(group.letters_StageIII_hard65) + pay_hard(group.letters_StageIII_hard66) + \ pay_hard(group.letters_StageIII_hard67) + pay_hard(group.letters_StageIII_hard68) + \ pay_hard(group.letters_StageIII_hard69) + pay_hard(group.letters_StageIII_hard70) + \ pay_hard(group.letters_StageIII_hard71) + pay_hard(group.letters_StageIII_hard72) + \ pay_hard(group.letters_StageIII_hard73) + pay_hard(group.letters_StageIII_hard74) + \ pay_hard(group.letters_StageIII_hard75) group.summative_positive_3 = 'You have transcribed ' + str( group.total_correct_StageIII_p4) + ' letters correctly in this round. Congratulations! ' group.summative_neutral_3 = 'You have transcribed ' + str( group.total_correct_StageIII_p4) + ' letters correctly in this round. ' group.summative_negative_3 = 'You have transcribed ' + str( group.total_correct_StageIII_p4) + ' letters correctly in this round. You can do better. ' group.message_list_a3 = ';'.join([str(group.summative_positive_3), str(group.summative_neutral_3), str(group.summative_negative_3)]) group.message_list_b3 = ';'.join([' ', 'If you slow down a little, your accuracy may improve.', 'If you speed up, you can still maintain your accuracy.']) group.message_list_a3_new = ';'.join(random.sample(group.message_list_a3.split(';'),len(group.message_list_a3.split(';')))) group.message_list_b3_new = ';'.join(random.sample(group.message_list_b3.split(';'),len(group.message_list_b3.split(';')))) def set_payoffs_c4(group: Group): p2 = group.get_player_by_id(2) group.letters_StageIII_hard81 = compare_strings(p2.StageIII_hard81_answer, C.StageIII_hard81) group.letters_StageIII_hard82 = compare_strings(p2.StageIII_hard82_answer, C.StageIII_hard82) group.letters_StageIII_hard83 = compare_strings(p2.StageIII_hard83_answer, C.StageIII_hard83) group.letters_StageIII_hard84 = compare_strings(p2.StageIII_hard84_answer, C.StageIII_hard84) group.letters_StageIII_hard85 = compare_strings(p2.StageIII_hard85_answer, C.StageIII_hard85) group.letters_StageIII_hard86 = compare_strings(p2.StageIII_hard86_answer, C.StageIII_hard86) group.letters_StageIII_hard87 = compare_strings(p2.StageIII_hard87_answer, C.StageIII_hard87) group.letters_StageIII_hard88 = compare_strings(p2.StageIII_hard88_answer, C.StageIII_hard88) group.letters_StageIII_hard89 = compare_strings(p2.StageIII_hard89_answer, C.StageIII_hard89) group.letters_StageIII_hard90 = compare_strings(p2.StageIII_hard90_answer, C.StageIII_hard90) group.letters_StageIII_hard91 = compare_strings(p2.StageIII_hard91_answer, C.StageIII_hard91) group.letters_StageIII_hard92 = compare_strings(p2.StageIII_hard92_answer, C.StageIII_hard92) group.letters_StageIII_hard93 = compare_strings(p2.StageIII_hard93_answer, C.StageIII_hard93) group.letters_StageIII_hard94 = compare_strings(p2.StageIII_hard94_answer, C.StageIII_hard94) group.letters_StageIII_hard95 = compare_strings(p2.StageIII_hard95_answer, C.StageIII_hard95) group.total_correct_StageIII_p5 = group.letters_StageIII_hard81 + group.letters_StageIII_hard82 + group.letters_StageIII_hard83 + group.letters_StageIII_hard84 \ + group.letters_StageIII_hard85 + group.letters_StageIII_hard86 + group.letters_StageIII_hard87 + group.letters_StageIII_hard88 \ + group.letters_StageIII_hard89 + group.letters_StageIII_hard90 + group.letters_StageIII_hard91 + \ group.letters_StageIII_hard92 + group.letters_StageIII_hard93 + group.letters_StageIII_hard94 + group.letters_StageIII_hard95 group.total_perfect_StageIII_p5 = perfect_hard(group.letters_StageIII_hard81) + perfect_hard(group.letters_StageIII_hard82) + \ perfect_hard(group.letters_StageIII_hard83) + perfect_hard(group.letters_StageIII_hard84) + \ perfect_hard(group.letters_StageIII_hard85) + perfect_hard(group.letters_StageIII_hard86) + \ perfect_hard(group.letters_StageIII_hard87) + perfect_hard(group.letters_StageIII_hard88) + \ perfect_hard(group.letters_StageIII_hard89) + perfect_hard(group.letters_StageIII_hard90) + \ perfect_hard(group.letters_StageIII_hard91) + perfect_hard(group.letters_StageIII_hard92) + \ perfect_hard(group.letters_StageIII_hard93) + perfect_hard(group.letters_StageIII_hard94) + \ perfect_hard(group.letters_StageIII_hard95) group.Total_payment_StageIII_R5 = pay_hard(group.letters_StageIII_hard81) + pay_hard(group.letters_StageIII_hard82) + \ pay_hard(group.letters_StageIII_hard83) + pay_hard(group.letters_StageIII_hard84) + \ pay_hard(group.letters_StageIII_hard85) + pay_hard(group.letters_StageIII_hard86) + \ pay_hard(group.letters_StageIII_hard87) + pay_hard(group.letters_StageIII_hard88) + \ pay_hard(group.letters_StageIII_hard89) + pay_hard(group.letters_StageIII_hard90) + \ pay_hard(group.letters_StageIII_hard91) + pay_hard(group.letters_StageIII_hard92) + \ pay_hard(group.letters_StageIII_hard93) + pay_hard(group.letters_StageIII_hard94) + \ pay_hard(group.letters_StageIII_hard95) def set_payoffs_e(group: Group): group.Total_point_StageIII = group.Total_payment_StageIII_R1 + group.Total_payment_StageIII_R2 + \ group.Total_payment_StageIII_R3 + group.Total_payment_StageIII_R4 + \ group.Total_payment_StageIII_R5 group.Total_point = group.Total_point_StageIII + 420 group.Total_payment = round(group.Total_point / 120, 1) # Function def waiting_too_long(player): participant = player.participant return time.time() - participant.wait_page_arrival > 300 # PAGES class Wait_Regroup(WaitPage): template_name = 'gendered_feedback_hard_only/Wait_Regroup.html' group_by_arrival_time = True @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 class Overtime(Page): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 2 class Instruction(Page): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 class PartI(Page): form_model = 'player' form_fields = ['Gender', 'Race', 'YOB', 'Nationality', 'Education'] @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 class PartII(Page): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 class StageI(Page): form_model = 'player' @staticmethod def get_form_fields(player): if player.Gender == 1: return ['Pseudonym_Male'] elif player.Gender == 2: return ['Pseudonym_Female'] else: return ['Pseudonym_Non_binary'] @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 class StageII(Page): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 @staticmethod def before_next_page(player: Player, timeout_happened): participant = player.participant import time participant.expiry = time.time() + C.Game_Time class StageII_hard1(Page): form_model = 'player' form_fields = ['StageII_hard1_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_a is_displayed = is_displayed_a @staticmethod def vars_for_template(player): import time player.time0_H = int(time.time()) @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time1_H = int(time.time()) player.timeSpent_hard1 = player.time1_H - player.time0_H player.StageII_hard_count += 1 class StageII_hard2(Page): form_model = 'player' form_fields = ['StageII_hard2_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_a is_displayed = is_displayed_a @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time2_H = int(time.time()) player.timeSpent_hard2 = player.time2_H - player.time1_H player.StageII_hard_count += 1 class StageII_hard3(Page): form_model = 'player' form_fields = ['StageII_hard3_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_a is_displayed = is_displayed_a @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time3_H = int(time.time()) player.timeSpent_hard3 = player.time3_H - player.time2_H player.StageII_hard_count += 1 class StageII_hard4(Page): form_model = 'player' form_fields = ['StageII_hard4_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_a is_displayed = is_displayed_a @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time4_H = int(time.time()) player.timeSpent_hard4 = player.time4_H - player.time3_H player.StageII_hard_count += 1 class StageII_hard5(Page): form_model = 'player' form_fields = ['StageII_hard5_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_a is_displayed = is_displayed_a @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time5_H = int(time.time()) player.timeSpent_hard5 = player.time5_H - player.time4_H player.StageII_hard_count += 1 class StageII_hard6(Page): form_model = 'player' form_fields = ['StageII_hard6_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_a is_displayed = is_displayed_a @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time6_H = int(time.time()) player.timeSpent_hard6 = player.time6_H - player.time5_H player.StageII_hard_count += 1 class StageII_hard7(Page): form_model = 'player' form_fields = ['StageII_hard7_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_a is_displayed = is_displayed_a @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time7_H = int(time.time()) player.timeSpent_hard7 = player.time7_H - player.time6_H player.StageII_hard_count += 1 class StageII_hard8(Page): form_model = 'player' form_fields = ['StageII_hard8_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_a is_displayed = is_displayed_a @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time8_H = int(time.time()) player.timeSpent_hard8 = player.time8_H - player.time7_H player.StageII_hard_count += 1 class StageII_hard9(Page): form_model = 'player' form_fields = ['StageII_hard9_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_a is_displayed = is_displayed_a @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time9_H = int(time.time()) player.timeSpent_hard9 = player.time9_H - player.time8_H player.StageII_hard_count += 1 class StageII_hard10(Page): form_model = 'player' form_fields = ['StageII_hard10_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_a is_displayed = is_displayed_a @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time10_H = int(time.time()) player.timeSpent_hard10 = player.time10_H - player.time9_H player.StageII_hard_count += 1 class StageII_hard11(Page): form_model = 'player' form_fields = ['StageII_hard11_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_a is_displayed = is_displayed_a @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time11_H = int(time.time()) player.timeSpent_hard11 = player.time11_H - player.time10_H player.StageII_hard_count += 1 class StageII_hard12(Page): form_model = 'player' form_fields = ['StageII_hard12_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_a is_displayed = is_displayed_a @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time12_H = int(time.time()) player.timeSpent_hard12 = player.time12_H - player.time11_H player.StageII_hard_count += 1 class StageII_hard13(Page): form_model = 'player' form_fields = ['StageII_hard13_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_a is_displayed = is_displayed_a @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time13_H = int(time.time()) player.timeSpent_hard13 = player.time13_H - player.time12_H player.StageII_hard_count += 1 class StageII_hard14(Page): form_model = 'player' form_fields = ['StageII_hard14_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_a is_displayed = is_displayed_a @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time14_H = int(time.time()) player.timeSpent_hard14 = player.time14_H - player.time13_H player.StageII_hard_count += 1 class StageII_hard15(Page): form_model = 'player' form_fields = ['StageII_hard15_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_a is_displayed = is_displayed_a @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time15_H = int(time.time()) player.timeSpent_hard15 = player.time15_H - player.time14_H player.StageII_hard_count += 1 class Results_StageII_hard_confirm(Page): form_model = 'player' form_fields = ['Rating_StageII_hard'] @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 @staticmethod def vars_for_template(player): import time player.DT_StageII_hard_0 = round(time.time(),1) @staticmethod def before_next_page(player: Player, timeout_happened): set_payoffs_a(player) import time player.DT_StageII_hard_1 = round(time.time(),1) player.DT_StageII_hard = round(player.DT_StageII_hard_1 - player.DT_StageII_hard_0,1) class Results_StageII_hard(Page): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 class PartII_Matching_rule(Page): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 class Role_Assignment_WaitPage(WaitPage): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 @staticmethod def after_all_players_arrive(group: Group): p2 = group.get_player_by_id(2) if p2.Gender == 1: group.employee_name = p2.Pseudonym_Male group.pronoun = "he" group.pronoun2 = "his" elif p2.Gender == 2: group.employee_name = p2.Pseudonym_Female group.pronoun = "she" group.pronoun2 = "her" else: group.employee_name = p2.Pseudonym_Non_binary group.pronoun = "" group.pronoun2 = "the" class Role_Assignment(Page): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 class Before_StageIII(WaitPage): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 class StageIII(Page): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 class Guess(Page): form_model = 'player' form_fields = ['guess_strings'] @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 and player.id_in_group == 1 @staticmethod def vars_for_template(player): group = player.group return dict( guess_label_1='The number of assignments {} can get fully correct in round 1 on the transcription task'.format(group.employee_name), ) class Before_Start(WaitPage): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 @staticmethod def after_all_players_arrive(group: Group): import time for p in group.get_players(): participant = p.participant participant.expiry_c = time.time() + C.Game_Time class StageIII_hard1(Page): form_model = 'player' form_fields = ['StageIII_hard1_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def vars_for_template(player): import time player.time0_H_StageIII_R1 = int(time.time()) @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time1_H_StageIII_R1 = int(time.time()) player. timeSpent_StageIII_hard1 = player.time1_H_StageIII_R1 - player.time0_H_StageIII_R1 group = player.group group.StageIII_hard_period1_count += 1 class StageIII_hard2(Page): form_model = 'player' form_fields = ['StageIII_hard2_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time2_H_StageIII_R1 = int(time.time()) player.timeSpent_StageIII_hard2 = player.time2_H_StageIII_R1 - player.time1_H_StageIII_R1 group = player.group group.StageIII_hard_period1_count += 1 class StageIII_hard3(Page): form_model = 'player' form_fields = ['StageIII_hard3_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time3_H_StageIII_R1 = int(time.time()) player.timeSpent_StageIII_hard3 = player.time3_H_StageIII_R1 - player.time2_H_StageIII_R1 group = player.group group.StageIII_hard_period1_count += 1 class StageIII_hard4(Page): form_model = 'player' form_fields = ['StageIII_hard4_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time4_H_StageIII_R1 = int(time.time()) player.timeSpent_StageIII_hard4 = player.time4_H_StageIII_R1 - player.time3_H_StageIII_R1 group = player.group group.StageIII_hard_period1_count += 1 class StageIII_hard5(Page): form_model = 'player' form_fields = ['StageIII_hard5_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time5_H_StageIII_R1 = int(time.time()) player.timeSpent_StageIII_hard5 = player.time5_H_StageIII_R1 - player.time4_H_StageIII_R1 group = player.group group.StageIII_hard_period1_count += 1 class StageIII_hard6(Page): form_model = 'player' form_fields = ['StageIII_hard6_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time6_H_StageIII_R1 = int(time.time()) player.timeSpent_StageIII_hard6 = player.time6_H_StageIII_R1 - player.time5_H_StageIII_R1 group = player.group group.StageIII_hard_period1_count += 1 class StageIII_hard7(Page): form_model = 'player' form_fields = ['StageIII_hard7_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time7_H_StageIII_R1 = int(time.time()) player.timeSpent_StageIII_hard7 = player.time7_H_StageIII_R1 - player.time6_H_StageIII_R1 group = player.group group.StageIII_hard_period1_count += 1 class StageIII_hard8(Page): form_model = 'player' form_fields = ['StageIII_hard8_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time8_H_StageIII_R1 = int(time.time()) player.timeSpent_StageIII_hard8 = player.time8_H_StageIII_R1 - player.time7_H_StageIII_R1 group = player.group group.StageIII_hard_period1_count += 1 class StageIII_hard9(Page): form_model = 'player' form_fields = ['StageIII_hard9_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time9_H_StageIII_R1 = int(time.time()) player.timeSpent_StageIII_hard9 = player.time9_H_StageIII_R1 - player.time8_H_StageIII_R1 group = player.group group.StageIII_hard_period1_count += 1 class StageIII_hard10(Page): form_model = 'player' form_fields = ['StageIII_hard10_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time10_H_StageIII_R1 = int(time.time()) player.timeSpent_StageIII_hard10 = player.time10_H_StageIII_R1 - player.time9_H_StageIII_R1 group = player.group group.StageIII_hard_period1_count += 1 class StageIII_hard11(Page): form_model = 'player' form_fields = ['StageIII_hard11_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time11_H_StageIII_R1 = int(time.time()) player.timeSpent_StageIII_hard11 = player.time11_H_StageIII_R1 - player.time10_H_StageIII_R1 group = player.group group.StageIII_hard_period1_count += 1 class StageIII_hard12(Page): form_model = 'player' form_fields = ['StageIII_hard12_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time12_H_StageIII_R1 = int(time.time()) player.timeSpent_StageIII_hard12 = player.time12_H_StageIII_R1 - player.time11_H_StageIII_R1 group = player.group group.StageIII_hard_period1_count += 1 class StageIII_hard13(Page): form_model = 'player' form_fields = ['StageIII_hard13_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time13_H_StageIII_R1 = int(time.time()) player.timeSpent_StageIII_hard13 = player.time13_H_StageIII_R1 - player.time12_H_StageIII_R1 group = player.group group.StageIII_hard_period1_count += 1 class StageIII_hard14(Page): form_model = 'player' form_fields = ['StageIII_hard14_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time14_H_StageIII_R1 = int(time.time()) player.timeSpent_StageIII_hard14 = player.time14_H_StageIII_R1 - player.time13_H_StageIII_R1 group = player.group group.StageIII_hard_period1_count += 1 class StageIII_hard15(Page): form_model = 'player' form_fields = ['StageIII_hard15_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time15_H_StageIII_R1 = int(time.time()) player.timeSpent_StageIII_hard15 = player.time15_H_StageIII_R1 - player.time14_H_StageIII_R1 group = player.group group.StageIII_hard_period1_count += 1 class StageIII_WaitforPeriod1(WaitPage): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 class StageIII_R1_WaitPage(WaitPage): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 after_all_players_arrive = 'set_payoffs_c' class Results_StageIII_hard_R1(Page): form_model = 'player' form_fields = ['Message_StageIII_H_R1_part1', 'Message_StageIII_H_R1_part2'] @staticmethod def is_displayed(player): participant = player.participant return player.id_in_group == 1 and participant.enroll == 1 @staticmethod def vars_for_template(player): group = player.group p1 = group.get_player_by_id(1) p2 = group.get_player_by_id(2) import time p1.DT_StageIII_M1_0 = round(time.time(),1) return dict(RT1=p2.timeSpent_StageIII_hard1, RT2=p2.timeSpent_StageIII_hard2, RT3=p2.timeSpent_StageIII_hard3, RT4=p2.timeSpent_StageIII_hard4, RT5=p2.timeSpent_StageIII_hard5, RT6=p2.timeSpent_StageIII_hard6, RT7=p2.timeSpent_StageIII_hard7, RT8=p2.timeSpent_StageIII_hard8, RT9=p2.timeSpent_StageIII_hard9, RT10=p2.timeSpent_StageIII_hard10, RT11=p2.timeSpent_StageIII_hard11, RT12=p2.timeSpent_StageIII_hard12, RT13=p2.timeSpent_StageIII_hard13, RT14=p2.timeSpent_StageIII_hard14, RT15=p2.timeSpent_StageIII_hard15, answer1=p2.StageIII_hard1_answer, answer2=p2.StageIII_hard2_answer, answer3=p2.StageIII_hard3_answer, answer4=p2.StageIII_hard4_answer, answer5=p2.StageIII_hard5_answer, answer6=p2.StageIII_hard6_answer, answer7=p2.StageIII_hard7_answer, answer8=p2.StageIII_hard8_answer, answer9=p2.StageIII_hard9_answer, answer10=p2.StageIII_hard10_answer, answer11=p2.StageIII_hard11_answer, answer12=p2.StageIII_hard12_answer, answer13=p2.StageIII_hard13_answer, answer14=p2.StageIII_hard14_answer, answer15=p2.StageIII_hard15_answer, Message1a=group.message_list_a_new.split(';')[0], Message1b=group.message_list_a_new.split(';')[1], Message1c=group.message_list_a_new.split(';')[2], Message2a=group.message_list_b_new.split(';')[0], Message2b=group.message_list_b_new.split(';')[1], Message2c=group.message_list_b_new.split(';')[2], ) @staticmethod def error_message(player, values): if values['Message_StageIII_H_R1_part1'] == "None": return dict( Message_StageIII_H_R1_part1='Please fill in the required fields' ) if values['Message_StageIII_H_R1_part2'] == "None": return dict( Message_StageIII_H_R1_part2='Please fill in the required fields' ) @staticmethod def before_next_page(player: Player, timeout_happened): group = player.group p1 = group.get_player_by_id(1) import time p1.DT_StageIII_M1_1 = round(time.time(), 1) p1.DT_StageIII_M1 = round(p1.DT_StageIII_M1_1 - p1.DT_StageIII_M1_0,1) group.Message_StageIII_H_R1 = p1.Message_StageIII_H_R1_part1 + p1.Message_StageIII_H_R1_part2 class StageIII_WaitforM_R1(WaitPage): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 class Feedback_StageIII_hard_R1(Page): @staticmethod def vars_for_template(player): group = player.group p2 = group.get_player_by_id(2) import time p2.DT_StageIII_M1_reading_0 = round(time.time(), 1) return dict(Message=group.Message_StageIII_H_R1) @staticmethod def is_displayed(player): participant = player.participant return player.id_in_group == 2 and participant.enroll == 1 @staticmethod def before_next_page(player: Player, timeout_happened): group = player.group p2 = group.get_player_by_id(2) import time p2.DT_StageIII_M1_reading_1 = round(time.time(), 1) p2.DT_StageIII_M1_reading = round(p2.DT_StageIII_M1_reading_1 - p2.DT_StageIII_M1_reading_0, 1) class Before_StageIII_R2(WaitPage): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 class Start_StageIIIR2(Page): @staticmethod def is_displayed(player): participant = player.participant return player.id_in_group == 2 and participant.enroll == 1 @staticmethod def before_next_page(player: Player, timeout_happened): participant = player.participant import time participant.expiry_c = time.time() + C.Game_Time class StageIII_hard21(Page): form_model = 'player' form_fields = ['StageIII_hard21_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def vars_for_template(player): import time player.time0_H_StageIII_R2 = int(time.time()) @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time1_H_StageIII_R2 = int(time.time()) player. timeSpent_StageIII_hard21 = player.time1_H_StageIII_R2 - player.time0_H_StageIII_R2 group = player.group group.StageIII_hard_period2_count += 1 class StageIII_hard22(Page): form_model = 'player' form_fields = ['StageIII_hard22_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time2_H_StageIII_R2 = int(time.time()) player. timeSpent_StageIII_hard22 = player.time2_H_StageIII_R2 - player.time1_H_StageIII_R2 group = player.group group.StageIII_hard_period2_count += 1 class StageIII_hard23(Page): form_model = 'player' form_fields = ['StageIII_hard23_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time3_H_StageIII_R2 = int(time.time()) player. timeSpent_StageIII_hard23 = player.time3_H_StageIII_R2 - player.time2_H_StageIII_R2 group = player.group group.StageIII_hard_period2_count += 1 class StageIII_hard24(Page): form_model = 'player' form_fields = ['StageIII_hard24_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time4_H_StageIII_R2 = int(time.time()) player. timeSpent_StageIII_hard24 = player.time4_H_StageIII_R2 - player.time3_H_StageIII_R2 group = player.group group.StageIII_hard_period2_count += 1 class StageIII_hard25(Page): form_model = 'player' form_fields = ['StageIII_hard25_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time5_H_StageIII_R2 = int(time.time()) player. timeSpent_StageIII_hard25 = player.time5_H_StageIII_R2 - player.time4_H_StageIII_R2 group = player.group group.StageIII_hard_period2_count += 1 class StageIII_hard26(Page): form_model = 'player' form_fields = ['StageIII_hard26_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time6_H_StageIII_R2 = int(time.time()) player. timeSpent_StageIII_hard26 = player.time6_H_StageIII_R2 - player.time5_H_StageIII_R2 group = player.group group.StageIII_hard_period2_count += 1 class StageIII_hard27(Page): form_model = 'player' form_fields = ['StageIII_hard27_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time7_H_StageIII_R2 = int(time.time()) player. timeSpent_StageIII_hard27 = player.time7_H_StageIII_R2 - player.time6_H_StageIII_R2 group = player.group group.StageIII_hard_period2_count += 1 class StageIII_hard28(Page): form_model = 'player' form_fields = ['StageIII_hard28_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time8_H_StageIII_R2 = int(time.time()) player. timeSpent_StageIII_hard28 = player.time8_H_StageIII_R2 - player.time7_H_StageIII_R2 group = player.group group.StageIII_hard_period2_count += 1 class StageIII_hard29(Page): form_model = 'player' form_fields = ['StageIII_hard29_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time9_H_StageIII_R2 = int(time.time()) player. timeSpent_StageIII_hard29 = player.time9_H_StageIII_R2 - player.time8_H_StageIII_R2 group = player.group group.StageIII_hard_period2_count += 1 class StageIII_hard30(Page): form_model = 'player' form_fields = ['StageIII_hard30_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time10_H_StageIII_R2 = int(time.time()) player. timeSpent_StageIII_hard30 = player.time10_H_StageIII_R2 - player.time9_H_StageIII_R2 group = player.group group.StageIII_hard_period2_count += 1 class StageIII_hard31(Page): form_model = 'player' form_fields = ['StageIII_hard31_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time11_H_StageIII_R2 = int(time.time()) player. timeSpent_StageIII_hard31 = player.time11_H_StageIII_R2 - player.time10_H_StageIII_R2 group = player.group group.StageIII_hard_period2_count += 1 class StageIII_hard32(Page): form_model = 'player' form_fields = ['StageIII_hard32_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time12_H_StageIII_R2 = int(time.time()) player. timeSpent_StageIII_hard32 = player.time12_H_StageIII_R2 - player.time11_H_StageIII_R2 group = player.group group.StageIII_hard_period2_count += 1 class StageIII_hard33(Page): form_model = 'player' form_fields = ['StageIII_hard33_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time13_H_StageIII_R2 = int(time.time()) player. timeSpent_StageIII_hard33 = player.time13_H_StageIII_R2 - player.time12_H_StageIII_R2 group = player.group group.StageIII_hard_period2_count += 1 class StageIII_hard34(Page): form_model = 'player' form_fields = ['StageIII_hard34_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time14_H_StageIII_R2 = int(time.time()) player. timeSpent_StageIII_hard34 = player.time14_H_StageIII_R2 - player.time13_H_StageIII_R2 group = player.group group.StageIII_hard_period2_count += 1 class StageIII_hard35(Page): form_model = 'player' form_fields = ['StageIII_hard35_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time15_H_StageIII_R2 = int(time.time()) player. timeSpent_StageIII_hard35 = player.time15_H_StageIII_R2 - player.time14_H_StageIII_R2 group = player.group group.StageIII_hard_period2_count += 1 class StageIII_WaitforPeriod2(WaitPage): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 class StageIII_R2_WaitPage(WaitPage): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 after_all_players_arrive = 'set_payoffs_c1' class Results_StageIII_hard_R2(Page): form_model = 'player' form_fields = ['Message_StageIII_H_R2_part1', 'Message_StageIII_H_R2_part2'] @staticmethod def is_displayed(player): participant = player.participant return player.id_in_group == 1 and participant.enroll == 1 @staticmethod def vars_for_template(player): group = player.group p1 = group.get_player_by_id(1) p2 = group.get_player_by_id(2) import time p1.DT_StageIII_M2_0 = round(time.time(),1) return dict(RT1=p2.timeSpent_StageIII_hard21, RT2=p2.timeSpent_StageIII_hard22, RT3=p2.timeSpent_StageIII_hard23, RT4=p2.timeSpent_StageIII_hard24, RT5=p2.timeSpent_StageIII_hard25, RT6=p2.timeSpent_StageIII_hard26, RT7=p2.timeSpent_StageIII_hard27, RT8=p2.timeSpent_StageIII_hard28, RT9=p2.timeSpent_StageIII_hard29, RT10=p2.timeSpent_StageIII_hard30, RT11=p2.timeSpent_StageIII_hard31, RT12=p2.timeSpent_StageIII_hard32, RT13=p2.timeSpent_StageIII_hard33, RT14=p2.timeSpent_StageIII_hard34, RT15=p2.timeSpent_StageIII_hard35, answer1=p2.StageIII_hard21_answer, answer2=p2.StageIII_hard22_answer, answer3=p2.StageIII_hard23_answer, answer4=p2.StageIII_hard24_answer, answer5=p2.StageIII_hard25_answer, answer6=p2.StageIII_hard26_answer, answer7=p2.StageIII_hard27_answer, answer8=p2.StageIII_hard28_answer, answer9=p2.StageIII_hard29_answer, answer10=p2.StageIII_hard30_answer, answer11=p2.StageIII_hard31_answer, answer12=p2.StageIII_hard32_answer, answer13=p2.StageIII_hard33_answer, answer14=p2.StageIII_hard34_answer, answer15=p2.StageIII_hard35_answer, Message1a=group.message_list_a1_new.split(';')[0], Message1b=group.message_list_a1_new.split(';')[1], Message1c=group.message_list_a1_new.split(';')[2], Message2a=group.message_list_b1_new.split(';')[0], Message2b=group.message_list_b1_new.split(';')[1], Message2c=group.message_list_b1_new.split(';')[2], ) @staticmethod def error_message(player, values): if values['Message_StageIII_H_R2_part1'] == "None": return dict( Message_StageIII_H_R2_part1='Please fill in the required fields' ) if values['Message_StageIII_H_R2_part2'] == "None": return dict( Message_StageIII_H_R2_part2='Please fill in the required fields' ) @staticmethod def before_next_page(player: Player, timeout_happened): group = player.group p1 = group.get_player_by_id(1) import time p1.DT_StageIII_M2_1 = round(time.time(),1) p1.DT_StageIII_M2 = round(p1.DT_StageIII_M2_1 - p1.DT_StageIII_M2_0,1) group.Message_StageIII_H_R2 = p1.Message_StageIII_H_R2_part1 + p1.Message_StageIII_H_R2_part2 class StageIII_WaitforM_R2(WaitPage): @staticmethod def is_displayed(player): participant=player.participant return participant.enroll == 1 class Feedback_StageIII_hard_R2(Page): @staticmethod def vars_for_template(player): group = player.group p2 = group.get_player_by_id(2) import time p2.DT_StageIII_M2_reading_0 = round(time.time(), 1) return dict(Message=group.Message_StageIII_H_R2) @staticmethod def is_displayed(player): participant = player.participant return player.id_in_group == 2 and participant.enroll == 1 @staticmethod def before_next_page(player: Player, timeout_happened): group = player.group p2 = group.get_player_by_id(2) import time p2.DT_StageIII_M2_reading_1 = round(time.time(),1) p2.DT_StageIII_M2_reading = round(p2.DT_StageIII_M2_reading_1 - p2.DT_StageIII_M2_reading_0,1) class Before_StageIII_R3(WaitPage): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 class Start_StageIIIR3(Page): @staticmethod def is_displayed(player): participant = player.participant return player.id_in_group == 2 and participant.enroll == 1 @staticmethod def before_next_page(player: Player, timeout_happened): participant = player.participant import time participant.expiry_c = time.time() + C.Game_Time class StageIII_hard41(Page): form_model = 'player' form_fields = ['StageIII_hard41_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def vars_for_template(player): import time player.time0_H_StageIII_R3 = int(time.time()) @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time1_H_StageIII_R3 = int(time.time()) player.timeSpent_StageIII_hard41 = player.time1_H_StageIII_R3 - player.time0_H_StageIII_R3 group = player.group group.StageIII_hard_period3_count += 1 class StageIII_hard42(Page): form_model = 'player' form_fields = ['StageIII_hard42_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time2_H_StageIII_R3 = int(time.time()) player.timeSpent_StageIII_hard42 = player.time2_H_StageIII_R3 - player.time1_H_StageIII_R3 group = player.group group.StageIII_hard_period3_count += 1 class StageIII_hard43(Page): form_model = 'player' form_fields = ['StageIII_hard43_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time3_H_StageIII_R3 = int(time.time()) player.timeSpent_StageIII_hard43 = player.time3_H_StageIII_R3 - player.time2_H_StageIII_R3 group = player.group group.StageIII_hard_period3_count += 1 class StageIII_hard44(Page): form_model = 'player' form_fields = ['StageIII_hard44_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time4_H_StageIII_R3 = int(time.time()) player.timeSpent_StageIII_hard44 = player.time4_H_StageIII_R3 - player.time3_H_StageIII_R3 group = player.group group.StageIII_hard_period3_count += 1 class StageIII_hard45(Page): form_model = 'player' form_fields = ['StageIII_hard45_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time5_H_StageIII_R3 = int(time.time()) player.timeSpent_StageIII_hard45 = player.time5_H_StageIII_R3 - player.time4_H_StageIII_R3 group = player.group group.StageIII_hard_period3_count += 1 class StageIII_hard46(Page): form_model = 'player' form_fields = ['StageIII_hard46_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time6_H_StageIII_R3 = int(time.time()) player.timeSpent_StageIII_hard46 = player.time6_H_StageIII_R3 - player.time5_H_StageIII_R3 group = player.group group.StageIII_hard_period3_count += 1 class StageIII_hard47(Page): form_model = 'player' form_fields = ['StageIII_hard47_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time7_H_StageIII_R3 = int(time.time()) player.timeSpent_StageIII_hard47 = player.time7_H_StageIII_R3 - player.time6_H_StageIII_R3 group = player.group group.StageIII_hard_period3_count += 1 class StageIII_hard48(Page): form_model = 'player' form_fields = ['StageIII_hard48_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time8_H_StageIII_R3 = int(time.time()) player.timeSpent_StageIII_hard48 = player.time8_H_StageIII_R3 - player.time7_H_StageIII_R3 group = player.group group.StageIII_hard_period3_count += 1 class StageIII_hard49(Page): form_model = 'player' form_fields = ['StageIII_hard49_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time9_H_StageIII_R3 = int(time.time()) player.timeSpent_StageIII_hard49 = player.time9_H_StageIII_R3 - player.time8_H_StageIII_R3 group = player.group group.StageIII_hard_period3_count += 1 class StageIII_hard50(Page): form_model = 'player' form_fields = ['StageIII_hard50_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time10_H_StageIII_R3 = int(time.time()) player.timeSpent_StageIII_hard50 = player.time10_H_StageIII_R3 - player.time9_H_StageIII_R3 group = player.group group.StageIII_hard_period3_count += 1 class StageIII_hard51(Page): form_model = 'player' form_fields = ['StageIII_hard51_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time11_H_StageIII_R3 = int(time.time()) player.timeSpent_StageIII_hard51 = player.time11_H_StageIII_R3 - player.time10_H_StageIII_R3 group = player.group group.StageIII_hard_period3_count += 1 class StageIII_hard52(Page): form_model = 'player' form_fields = ['StageIII_hard52_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time12_H_StageIII_R3 = int(time.time()) player.timeSpent_StageIII_hard52 = player.time12_H_StageIII_R3 - player.time11_H_StageIII_R3 group = player.group group.StageIII_hard_period3_count += 1 class StageIII_hard53(Page): form_model = 'player' form_fields = ['StageIII_hard53_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time13_H_StageIII_R3 = int(time.time()) player.timeSpent_StageIII_hard53 = player.time13_H_StageIII_R3 - player.time12_H_StageIII_R3 group = player.group group.StageIII_hard_period3_count += 1 class StageIII_hard54(Page): form_model = 'player' form_fields = ['StageIII_hard54_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time14_H_StageIII_R3 = int(time.time()) player.timeSpent_StageIII_hard54 = player.time14_H_StageIII_R3 - player.time13_H_StageIII_R3 group = player.group group.StageIII_hard_period3_count += 1 class StageIII_hard55(Page): form_model = 'player' form_fields = ['StageIII_hard55_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time15_H_StageIII_R3 = int(time.time()) player.timeSpent_StageIII_hard55 = player.time15_H_StageIII_R3 - player.time14_H_StageIII_R3 group = player.group group.StageIII_hard_period3_count += 1 class StageIII_WaitforPeriod3(WaitPage): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 class StageIII_R3_WaitPage(WaitPage): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 after_all_players_arrive = 'set_payoffs_c2' class Results_StageIII_hard_R3(Page): form_model = 'player' form_fields = ['Message_StageIII_H_R3_part1', 'Message_StageIII_H_R3_part2'] @staticmethod def is_displayed(player): participant = player.participant return player.id_in_group == 1 and participant.enroll == 1 @staticmethod def vars_for_template(player): group = player.group p1 = group.get_player_by_id(1) p2 = group.get_player_by_id(2) import time p1.DT_StageIII_M3_0 = round(time.time(),1) return dict(RT1=p2.timeSpent_StageIII_hard41, RT2=p2.timeSpent_StageIII_hard42, RT3=p2.timeSpent_StageIII_hard43, RT4=p2.timeSpent_StageIII_hard44, RT5=p2.timeSpent_StageIII_hard45, RT6=p2.timeSpent_StageIII_hard46, RT7=p2.timeSpent_StageIII_hard47, RT8=p2.timeSpent_StageIII_hard48, RT9=p2.timeSpent_StageIII_hard49, RT10=p2.timeSpent_StageIII_hard50, RT11=p2.timeSpent_StageIII_hard51, RT12=p2.timeSpent_StageIII_hard52, RT13=p2.timeSpent_StageIII_hard53, RT14=p2.timeSpent_StageIII_hard54, RT15=p2.timeSpent_StageIII_hard55, answer1=p2.StageIII_hard41_answer, answer2=p2.StageIII_hard42_answer, answer3=p2.StageIII_hard43_answer, answer4=p2.StageIII_hard44_answer, answer5=p2.StageIII_hard45_answer, answer6=p2.StageIII_hard46_answer, answer7=p2.StageIII_hard47_answer, answer8=p2.StageIII_hard48_answer, answer9=p2.StageIII_hard49_answer, answer10=p2.StageIII_hard50_answer, answer11=p2.StageIII_hard51_answer, answer12=p2.StageIII_hard52_answer, answer13=p2.StageIII_hard53_answer, answer14=p2.StageIII_hard54_answer, answer15=p2.StageIII_hard55_answer, Message1a=group.message_list_a2_new.split(';')[0], Message1b=group.message_list_a2_new.split(';')[1], Message1c=group.message_list_a2_new.split(';')[2], Message2a=group.message_list_b2_new.split(';')[0], Message2b=group.message_list_b2_new.split(';')[1], Message2c=group.message_list_b2_new.split(';')[2], ) @staticmethod def error_message(player, values): if values['Message_StageIII_H_R3_part1'] == "None": return dict( Message_StageIII_H_R3_part1='Please fill in the required fields' ) if values['Message_StageIII_H_R3_part2'] == "None": return dict( Message_StageIII_H_R3_part2='Please fill in the required fields' ) @staticmethod def before_next_page(player: Player, timeout_happened): group = player.group p1 = group.get_player_by_id(1) import time p1.DT_StageIII_M3_1 = round(time.time(),1) p1.DT_StageIII_M3 = round(p1.DT_StageIII_M3_1 - p1.DT_StageIII_M3_0,1) group.Message_StageIII_H_R3 = p1.Message_StageIII_H_R3_part1 + p1.Message_StageIII_H_R3_part2 class StageIII_WaitforM_R3(WaitPage): @staticmethod def is_displayed(player): participant=player.participant return participant.enroll == 1 class Feedback_StageIII_hard_R3(Page): @staticmethod def vars_for_template(player): group = player.group p2 = group.get_player_by_id(2) import time p2.DT_StageIII_M3_reading_0 = round(time.time(), 1) return dict(Message=group.Message_StageIII_H_R3) @staticmethod def is_displayed(player): participant = player.participant return player.id_in_group == 2 and participant.enroll == 1 @staticmethod def before_next_page(player: Player, timeout_happened): group = player.group p2 = group.get_player_by_id(2) import time p2.DT_StageIII_M3_reading_1 = round(time.time(),1) p2.DT_StageIII_M3_reading = round(p2.DT_StageIII_M3_reading_1 - p2.DT_StageIII_M3_reading_0,1) class Before_StageIII_R4(WaitPage): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 class Start_StageIIIR4(Page): @staticmethod def is_displayed(player): participant = player.participant return player.id_in_group == 2 and participant.enroll == 1 @staticmethod def before_next_page(player: Player, timeout_happened): participant = player.participant import time participant.expiry_c = time.time() + C.Game_Time class StageIII_hard61(Page): form_model = 'player' form_fields = ['StageIII_hard61_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def vars_for_template(player): import time player.time0_H_StageIII_R4 = int(time.time()) @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time1_H_StageIII_R4 = int(time.time()) player.timeSpent_StageIII_hard61 = player.time1_H_StageIII_R4 - player.time0_H_StageIII_R4 group = player.group group.StageIII_hard_period4_count += 1 class StageIII_hard62(Page): form_model = 'player' form_fields = ['StageIII_hard62_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time2_H_StageIII_R4 = int(time.time()) player.timeSpent_StageIII_hard62 = player.time2_H_StageIII_R4 - player.time1_H_StageIII_R4 group = player.group group.StageIII_hard_period4_count += 1 class StageIII_hard63(Page): form_model = 'player' form_fields = ['StageIII_hard63_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time3_H_StageIII_R4 = int(time.time()) player.timeSpent_StageIII_hard63 = player.time3_H_StageIII_R4 - player.time2_H_StageIII_R4 group = player.group group.StageIII_hard_period4_count += 1 class StageIII_hard64(Page): form_model = 'player' form_fields = ['StageIII_hard64_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time4_H_StageIII_R4 = int(time.time()) player.timeSpent_StageIII_hard64 = player.time4_H_StageIII_R4 - player.time3_H_StageIII_R4 group = player.group group.StageIII_hard_period4_count += 1 class StageIII_hard65(Page): form_model = 'player' form_fields = ['StageIII_hard65_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time5_H_StageIII_R4 = int(time.time()) player.timeSpent_StageIII_hard65 = player.time5_H_StageIII_R4 - player.time4_H_StageIII_R4 group = player.group group.StageIII_hard_period4_count += 1 class StageIII_hard66(Page): form_model = 'player' form_fields = ['StageIII_hard66_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time6_H_StageIII_R4 = int(time.time()) player.timeSpent_StageIII_hard66 = player.time6_H_StageIII_R4 - player.time5_H_StageIII_R4 group = player.group group.StageIII_hard_period4_count += 1 class StageIII_hard67(Page): form_model = 'player' form_fields = ['StageIII_hard67_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time7_H_StageIII_R4 = int(time.time()) player.timeSpent_StageIII_hard67 = player.time7_H_StageIII_R4 - player.time6_H_StageIII_R4 group = player.group group.StageIII_hard_period4_count += 1 class StageIII_hard68(Page): form_model = 'player' form_fields = ['StageIII_hard68_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time8_H_StageIII_R4 = int(time.time()) player.timeSpent_StageIII_hard68 = player.time8_H_StageIII_R4 - player.time7_H_StageIII_R4 group = player.group group.StageIII_hard_period4_count += 1 class StageIII_hard69(Page): form_model = 'player' form_fields = ['StageIII_hard69_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time9_H_StageIII_R4 = int(time.time()) player.timeSpent_StageIII_hard69 = player.time9_H_StageIII_R4 - player.time8_H_StageIII_R4 group = player.group group.StageIII_hard_period4_count += 1 class StageIII_hard70(Page): form_model = 'player' form_fields = ['StageIII_hard70_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time10_H_StageIII_R4 = int(time.time()) player.timeSpent_StageIII_hard70 = player.time10_H_StageIII_R4 - player.time9_H_StageIII_R4 group = player.group group.StageIII_hard_period4_count += 1 class StageIII_hard71(Page): form_model = 'player' form_fields = ['StageIII_hard71_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time11_H_StageIII_R4 = int(time.time()) player.timeSpent_StageIII_hard71 = player.time11_H_StageIII_R4 - player.time10_H_StageIII_R4 group = player.group group.StageIII_hard_period4_count += 1 class StageIII_hard72(Page): form_model = 'player' form_fields = ['StageIII_hard72_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time12_H_StageIII_R4 = int(time.time()) player.timeSpent_StageIII_hard72 = player.time12_H_StageIII_R4 - player.time11_H_StageIII_R4 group = player.group group.StageIII_hard_period4_count += 1 class StageIII_hard73(Page): form_model = 'player' form_fields = ['StageIII_hard73_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time13_H_StageIII_R4 = int(time.time()) player.timeSpent_StageIII_hard73 = player.time13_H_StageIII_R4 - player.time12_H_StageIII_R4 group = player.group group.StageIII_hard_period4_count += 1 class StageIII_hard74(Page): form_model = 'player' form_fields = ['StageIII_hard74_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time14_H_StageIII_R4 = int(time.time()) player.timeSpent_StageIII_hard74 = player.time14_H_StageIII_R4 - player.time13_H_StageIII_R4 group = player.group group.StageIII_hard_period4_count += 1 class StageIII_hard75(Page): form_model = 'player' form_fields = ['StageIII_hard75_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time15_H_StageIII_R4 = int(time.time()) player.timeSpent_StageIII_hard75 = player.time15_H_StageIII_R4 - player.time14_H_StageIII_R4 group = player.group group.StageIII_hard_period4_count += 1 class StageIII_WaitforPeriod4(WaitPage): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 class StageIII_R4_WaitPage(WaitPage): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 after_all_players_arrive = 'set_payoffs_c3' class Results_StageIII_hard_R4(Page): form_model = 'player' form_fields = ['Message_StageIII_H_R4_part1', 'Message_StageIII_H_R4_part2'] @staticmethod def is_displayed(player): participant = player.participant return player.id_in_group == 1 and participant.enroll == 1 @staticmethod def vars_for_template(player): group = player.group p1 = group.get_player_by_id(1) p2 = group.get_player_by_id(2) import time p1.DT_StageIII_M4_0 = round(time.time(),1) return dict(RT1=p2.timeSpent_StageIII_hard61, RT2=p2.timeSpent_StageIII_hard62, RT3=p2.timeSpent_StageIII_hard63, RT4=p2.timeSpent_StageIII_hard64, RT5=p2.timeSpent_StageIII_hard65, RT6=p2.timeSpent_StageIII_hard66, RT7=p2.timeSpent_StageIII_hard67, RT8=p2.timeSpent_StageIII_hard68, RT9=p2.timeSpent_StageIII_hard69, RT10=p2.timeSpent_StageIII_hard70, RT11=p2.timeSpent_StageIII_hard71, RT12=p2.timeSpent_StageIII_hard72, RT13=p2.timeSpent_StageIII_hard73, RT14=p2.timeSpent_StageIII_hard74, RT15=p2.timeSpent_StageIII_hard75, answer1=p2.StageIII_hard61_answer, answer2=p2.StageIII_hard62_answer, answer3=p2.StageIII_hard63_answer, answer4=p2.StageIII_hard64_answer, answer5=p2.StageIII_hard65_answer, answer6=p2.StageIII_hard66_answer, answer7=p2.StageIII_hard67_answer, answer8=p2.StageIII_hard68_answer, answer9=p2.StageIII_hard69_answer, answer10=p2.StageIII_hard70_answer, answer11=p2.StageIII_hard71_answer, answer12=p2.StageIII_hard72_answer, answer13=p2.StageIII_hard73_answer, answer14=p2.StageIII_hard74_answer, answer15=p2.StageIII_hard75_answer, Message1a=group.message_list_a3_new.split(';')[0], Message1b=group.message_list_a3_new.split(';')[1], Message1c=group.message_list_a3_new.split(';')[2], Message2a=group.message_list_b3_new.split(';')[0], Message2b=group.message_list_b3_new.split(';')[1], Message2c=group.message_list_b3_new.split(';')[2], ) @staticmethod def error_message(player, values): if values['Message_StageIII_H_R4_part1'] == "None": return dict( Message_StageIII_H_R4_part1='Please fill in the required fields' ) if values['Message_StageIII_H_R4_part2'] == "None": return dict( Message_StageIII_H_R4_part2='Please fill in the required fields' ) @staticmethod def before_next_page(player: Player, timeout_happened): group = player.group p1 = group.get_player_by_id(1) import time p1.DT_StageIII_M4_1 = round(time.time(),1) p1.DT_StageIII_M4 = round(p1.DT_StageIII_M4_1 - p1.DT_StageIII_M4_0,1) group.Message_StageIII_H_R4 = p1.Message_StageIII_H_R4_part1 + p1.Message_StageIII_H_R4_part2 class StageIII_WaitforM_R4(WaitPage): @staticmethod def is_displayed(player): participant=player.participant return participant.enroll == 1 class Feedback_StageIII_hard_R4(Page): @staticmethod def vars_for_template(player): group = player.group p2 = group.get_player_by_id(2) import time p2.DT_StageIII_M4_reading_0 = round(time.time(), 1) return dict(Message=group.Message_StageIII_H_R4) @staticmethod def is_displayed(player): participant = player.participant return player.id_in_group == 2 and participant.enroll == 1 @staticmethod def before_next_page(player: Player, timeout_happened): group = player.group p2 = group.get_player_by_id(2) import time p2.DT_StageIII_M4_reading_1 = round(time.time(),1) p2.DT_StageIII_M4_reading = round(p2.DT_StageIII_M4_reading_1 - p2.DT_StageIII_M4_reading_0,1) class Before_StageIII_R5(WaitPage): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 class Start_StageIIIR5(Page): @staticmethod def is_displayed(player): participant = player.participant return player.id_in_group == 2 and participant.enroll == 1 @staticmethod def before_next_page(player: Player, timeout_happened): participant = player.participant import time participant.expiry_c = time.time() + C.Game_Time class StageIII_hard81(Page): form_model = 'player' form_fields = ['StageIII_hard81_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def vars_for_template(player): import time player.time0_H_StageIII_R5 = int(time.time()) @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time1_H_StageIII_R5 = int(time.time()) player.timeSpent_StageIII_hard81 = player.time1_H_StageIII_R5 - player.time0_H_StageIII_R5 group = player.group group.StageIII_hard_period5_count += 1 class StageIII_hard82(Page): form_model = 'player' form_fields = ['StageIII_hard82_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time2_H_StageIII_R5 = int(time.time()) player.timeSpent_StageIII_hard82 = player.time2_H_StageIII_R5 - player.time1_H_StageIII_R5 group = player.group group.StageIII_hard_period5_count += 1 class StageIII_hard83(Page): form_model = 'player' form_fields = ['StageIII_hard83_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time3_H_StageIII_R5 = int(time.time()) player.timeSpent_StageIII_hard83 = player.time3_H_StageIII_R5 - player.time2_H_StageIII_R5 group = player.group group.StageIII_hard_period5_count += 1 class StageIII_hard84(Page): form_model = 'player' form_fields = ['StageIII_hard84_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time4_H_StageIII_R5 = int(time.time()) player.timeSpent_StageIII_hard84 = player.time4_H_StageIII_R5 - player.time3_H_StageIII_R5 group = player.group group.StageIII_hard_period5_count += 1 class StageIII_hard85(Page): form_model = 'player' form_fields = ['StageIII_hard85_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time5_H_StageIII_R5 = int(time.time()) player.timeSpent_StageIII_hard85 = player.time5_H_StageIII_R5 - player.time4_H_StageIII_R5 group = player.group group.StageIII_hard_period5_count += 1 class StageIII_hard86(Page): form_model = 'player' form_fields = ['StageIII_hard86_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time6_H_StageIII_R5 = int(time.time()) player.timeSpent_StageIII_hard86 = player.time6_H_StageIII_R5 - player.time5_H_StageIII_R5 group = player.group group.StageIII_hard_period5_count += 1 class StageIII_hard87(Page): form_model = 'player' form_fields = ['StageIII_hard87_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time7_H_StageIII_R5 = int(time.time()) player.timeSpent_StageIII_hard87 = player.time7_H_StageIII_R5 - player.time6_H_StageIII_R5 group = player.group group.StageIII_hard_period5_count += 1 class StageIII_hard88(Page): form_model = 'player' form_fields = ['StageIII_hard88_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time8_H_StageIII_R5 = int(time.time()) player.timeSpent_StageIII_hard88 = player.time8_H_StageIII_R5 - player.time7_H_StageIII_R5 group = player.group group.StageIII_hard_period5_count += 1 class StageIII_hard89(Page): form_model = 'player' form_fields = ['StageIII_hard89_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time9_H_StageIII_R5 = int(time.time()) player.timeSpent_StageIII_hard89 = player.time9_H_StageIII_R5 - player.time8_H_StageIII_R5 group = player.group group.StageIII_hard_period5_count += 1 class StageIII_hard90(Page): form_model = 'player' form_fields = ['StageIII_hard90_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time10_H_StageIII_R5 = int(time.time()) player.timeSpent_StageIII_hard90 = player.time10_H_StageIII_R5 - player.time9_H_StageIII_R5 group = player.group group.StageIII_hard_period5_count += 1 class StageIII_hard91(Page): form_model = 'player' form_fields = ['StageIII_hard91_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time11_H_StageIII_R5 = int(time.time()) player.timeSpent_StageIII_hard91 = player.time11_H_StageIII_R5 - player.time10_H_StageIII_R5 group = player.group group.StageIII_hard_period5_count += 1 class StageIII_hard92(Page): form_model = 'player' form_fields = ['StageIII_hard92_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time12_H_StageIII_R5 = int(time.time()) player.timeSpent_StageIII_hard92 = player.time12_H_StageIII_R5 - player.time11_H_StageIII_R5 group = player.group group.StageIII_hard_period5_count += 1 class StageIII_hard93(Page): form_model = 'player' form_fields = ['StageIII_hard93_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time13_H_StageIII_R5 = int(time.time()) player.timeSpent_StageIII_hard93 = player.time13_H_StageIII_R5 - player.time12_H_StageIII_R5 group = player.group group.StageIII_hard_period5_count += 1 class StageIII_hard94(Page): form_model = 'player' form_fields = ['StageIII_hard94_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time14_H_StageIII_R5 = int(time.time()) player.timeSpent_StageIII_hard94 = player.time14_H_StageIII_R5 - player.time13_H_StageIII_R5 group = player.group group.StageIII_hard_period5_count += 1 class StageIII_hard95(Page): form_model = 'player' form_fields = ['StageIII_hard95_answer'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c @staticmethod def before_next_page(player: Player, timeout_happened): import time player.time15_H_StageIII_R5 = int(time.time()) player.timeSpent_StageIII_hard95 = player.time15_H_StageIII_R5 - player.time14_H_StageIII_R5 group = player.group group.StageIII_hard_period5_count += 1 class StageIII_WaitforPeriod5(WaitPage): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 class StageIII_R5_WaitPage(WaitPage): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 after_all_players_arrive = 'set_payoffs_c4' class Results_StageIII_hard_R5(Page): @staticmethod def is_displayed(player): participant = player.participant return player.id_in_group == 1 and participant.enroll == 1 @staticmethod def vars_for_template(player): group = player.group p2 = group.get_player_by_id(2) return dict(RT1=p2.timeSpent_StageIII_hard81, RT2=p2.timeSpent_StageIII_hard82, RT3=p2.timeSpent_StageIII_hard83, RT4=p2.timeSpent_StageIII_hard84, RT5=p2.timeSpent_StageIII_hard85, RT6=p2.timeSpent_StageIII_hard86, RT7=p2.timeSpent_StageIII_hard87, RT8=p2.timeSpent_StageIII_hard88, RT9=p2.timeSpent_StageIII_hard89, RT10=p2.timeSpent_StageIII_hard90, RT11=p2.timeSpent_StageIII_hard91, RT12=p2.timeSpent_StageIII_hard92, RT13=p2.timeSpent_StageIII_hard93, RT14=p2.timeSpent_StageIII_hard94, RT15=p2.timeSpent_StageIII_hard95, answer1=p2.StageIII_hard81_answer, answer2=p2.StageIII_hard82_answer, answer3=p2.StageIII_hard83_answer, answer4=p2.StageIII_hard84_answer, answer5=p2.StageIII_hard85_answer, answer6=p2.StageIII_hard86_answer, answer7=p2.StageIII_hard87_answer, answer8=p2.StageIII_hard88_answer, answer9=p2.StageIII_hard89_answer, answer10=p2.StageIII_hard90_answer, answer11=p2.StageIII_hard91_answer, answer12=p2.StageIII_hard92_answer, answer13=p2.StageIII_hard93_answer, answer14=p2.StageIII_hard94_answer, answer15=p2.StageIII_hard95_answer,) class Before_report_Waitforall(WaitPage): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 after_all_players_arrive = 'set_payoffs_e' class Performance_report(Page): @staticmethod def is_displayed(player): participant = player.participant return player.id_in_group == 2 and participant.enroll == 1 @staticmethod def vars_for_template(player): group = player.group p2 = group.get_player_by_id(2) return dict(RT1_StageIII_R1=p2.timeSpent_StageIII_hard1, RT2_StageIII_R1=p2.timeSpent_StageIII_hard2, RT3_StageIII_R1=p2.timeSpent_StageIII_hard3, RT4_StageIII_R1=p2.timeSpent_StageIII_hard4, RT5_StageIII_R1=p2.timeSpent_StageIII_hard5, RT6_StageIII_R1=p2.timeSpent_StageIII_hard6, RT7_StageIII_R1=p2.timeSpent_StageIII_hard7, RT8_StageIII_R1=p2.timeSpent_StageIII_hard8, RT9_StageIII_R1=p2.timeSpent_StageIII_hard9, RT10_StageIII_R1=p2.timeSpent_StageIII_hard10, RT11_StageIII_R1=p2.timeSpent_StageIII_hard11, RT12_StageIII_R1=p2.timeSpent_StageIII_hard12, RT13_StageIII_R1=p2.timeSpent_StageIII_hard13, RT14_StageIII_R1=p2.timeSpent_StageIII_hard14, RT15_StageIII_R1=p2.timeSpent_StageIII_hard15, answer1_StageIII_R1=p2.StageIII_hard1_answer, answer2_StageIII_R1=p2.StageIII_hard2_answer, answer3_StageIII_R1=p2.StageIII_hard3_answer, answer4_StageIII_R1=p2.StageIII_hard4_answer, answer5_StageIII_R1=p2.StageIII_hard5_answer, answer6_StageIII_R1=p2.StageIII_hard6_answer, answer7_StageIII_R1=p2.StageIII_hard7_answer, answer8_StageIII_R1=p2.StageIII_hard8_answer, answer9_StageIII_R1=p2.StageIII_hard9_answer, answer10_StageIII_R1=p2.StageIII_hard10_answer, answer11_StageIII_R1=p2.StageIII_hard11_answer, answer12_StageIII_R1=p2.StageIII_hard12_answer, answer13_StageIII_R1=p2.StageIII_hard13_answer, answer14_StageIII_R1=p2.StageIII_hard14_answer, answer15_StageIII_R1=p2.StageIII_hard15_answer, RT1_StageIII_R2=p2.timeSpent_StageIII_hard21, RT2_StageIII_R2=p2.timeSpent_StageIII_hard22, RT3_StageIII_R2=p2.timeSpent_StageIII_hard23, RT4_StageIII_R2=p2.timeSpent_StageIII_hard24, RT5_StageIII_R2=p2.timeSpent_StageIII_hard25, RT6_StageIII_R2=p2.timeSpent_StageIII_hard26, RT7_StageIII_R2=p2.timeSpent_StageIII_hard27, RT8_StageIII_R2=p2.timeSpent_StageIII_hard28, RT9_StageIII_R2=p2.timeSpent_StageIII_hard29, RT10_StageIII_R2=p2.timeSpent_StageIII_hard30, RT11_StageIII_R2=p2.timeSpent_StageIII_hard31, RT12_StageIII_R2=p2.timeSpent_StageIII_hard32, RT13_StageIII_R2=p2.timeSpent_StageIII_hard33, RT14_StageIII_R2=p2.timeSpent_StageIII_hard34, RT15_StageIII_R2=p2.timeSpent_StageIII_hard35, answer1_StageIII_R2=p2.StageIII_hard21_answer, answer2_StageIII_R2=p2.StageIII_hard22_answer, answer3_StageIII_R2=p2.StageIII_hard23_answer, answer4_StageIII_R2=p2.StageIII_hard24_answer, answer5_StageIII_R2=p2.StageIII_hard25_answer, answer6_StageIII_R2=p2.StageIII_hard26_answer, answer7_StageIII_R2=p2.StageIII_hard27_answer, answer8_StageIII_R2=p2.StageIII_hard28_answer, answer9_StageIII_R2=p2.StageIII_hard29_answer, answer10_StageIII_R2=p2.StageIII_hard30_answer, answer11_StageIII_R2=p2.StageIII_hard31_answer, answer12_StageIII_R2=p2.StageIII_hard32_answer, answer13_StageIII_R2=p2.StageIII_hard33_answer, answer14_StageIII_R2=p2.StageIII_hard34_answer, answer15_StageIII_R2=p2.StageIII_hard35_answer, RT1_StageIII_R3=p2.timeSpent_StageIII_hard41, RT2_StageIII_R3=p2.timeSpent_StageIII_hard42, RT3_StageIII_R3=p2.timeSpent_StageIII_hard43, RT4_StageIII_R3=p2.timeSpent_StageIII_hard44, RT5_StageIII_R3=p2.timeSpent_StageIII_hard45, RT6_StageIII_R3=p2.timeSpent_StageIII_hard46, RT7_StageIII_R3=p2.timeSpent_StageIII_hard47, RT8_StageIII_R3=p2.timeSpent_StageIII_hard48, RT9_StageIII_R3=p2.timeSpent_StageIII_hard49, RT10_StageIII_R3=p2.timeSpent_StageIII_hard50, RT11_StageIII_R3=p2.timeSpent_StageIII_hard51, RT12_StageIII_R3=p2.timeSpent_StageIII_hard52, RT13_StageIII_R3=p2.timeSpent_StageIII_hard53, RT14_StageIII_R3=p2.timeSpent_StageIII_hard54, RT15_StageIII_R3=p2.timeSpent_StageIII_hard55, answer1_StageIII_R3=p2.StageIII_hard41_answer, answer2_StageIII_R3=p2.StageIII_hard42_answer, answer3_StageIII_R3=p2.StageIII_hard43_answer, answer4_StageIII_R3=p2.StageIII_hard44_answer, answer5_StageIII_R3=p2.StageIII_hard45_answer, answer6_StageIII_R3=p2.StageIII_hard46_answer, answer7_StageIII_R3=p2.StageIII_hard47_answer, answer8_StageIII_R3=p2.StageIII_hard48_answer, answer9_StageIII_R3=p2.StageIII_hard49_answer, answer10_StageIII_R3=p2.StageIII_hard50_answer, answer11_StageIII_R3=p2.StageIII_hard51_answer, answer12_StageIII_R3=p2.StageIII_hard52_answer, answer13_StageIII_R3=p2.StageIII_hard53_answer, answer14_StageIII_R3=p2.StageIII_hard54_answer, answer15_StageIII_R3=p2.StageIII_hard55_answer, RT1_StageIII_R4=p2.timeSpent_StageIII_hard61, RT2_StageIII_R4=p2.timeSpent_StageIII_hard62, RT3_StageIII_R4=p2.timeSpent_StageIII_hard63, RT4_StageIII_R4=p2.timeSpent_StageIII_hard64, RT5_StageIII_R4=p2.timeSpent_StageIII_hard65, RT6_StageIII_R4=p2.timeSpent_StageIII_hard66, RT7_StageIII_R4=p2.timeSpent_StageIII_hard67, RT8_StageIII_R4=p2.timeSpent_StageIII_hard68, RT9_StageIII_R4=p2.timeSpent_StageIII_hard69, RT10_StageIII_R4=p2.timeSpent_StageIII_hard70, RT11_StageIII_R4=p2.timeSpent_StageIII_hard71, RT12_StageIII_R4=p2.timeSpent_StageIII_hard72, RT13_StageIII_R4=p2.timeSpent_StageIII_hard73, RT14_StageIII_R4=p2.timeSpent_StageIII_hard74, RT15_StageIII_R4=p2.timeSpent_StageIII_hard75, answer1_StageIII_R4=p2.StageIII_hard61_answer, answer2_StageIII_R4=p2.StageIII_hard62_answer, answer3_StageIII_R4=p2.StageIII_hard63_answer, answer4_StageIII_R4=p2.StageIII_hard64_answer, answer5_StageIII_R4=p2.StageIII_hard65_answer, answer6_StageIII_R4=p2.StageIII_hard66_answer, answer7_StageIII_R4=p2.StageIII_hard67_answer, answer8_StageIII_R4=p2.StageIII_hard68_answer, answer9_StageIII_R4=p2.StageIII_hard69_answer, answer10_StageIII_R4=p2.StageIII_hard70_answer, answer11_StageIII_R4=p2.StageIII_hard71_answer, answer12_StageIII_R4=p2.StageIII_hard72_answer, answer13_StageIII_R4=p2.StageIII_hard73_answer, answer14_StageIII_R4=p2.StageIII_hard74_answer, answer15_StageIII_R4=p2.StageIII_hard75_answer, RT1_StageIII_R5=p2.timeSpent_StageIII_hard81, RT2_StageIII_R5=p2.timeSpent_StageIII_hard82, RT3_StageIII_R5=p2.timeSpent_StageIII_hard83, RT4_StageIII_R5=p2.timeSpent_StageIII_hard84, RT5_StageIII_R5=p2.timeSpent_StageIII_hard85, RT6_StageIII_R5=p2.timeSpent_StageIII_hard86, RT7_StageIII_R5=p2.timeSpent_StageIII_hard87, RT8_StageIII_R5=p2.timeSpent_StageIII_hard88, RT9_StageIII_R5=p2.timeSpent_StageIII_hard89, RT10_StageIII_R5=p2.timeSpent_StageIII_hard90, RT11_StageIII_R5=p2.timeSpent_StageIII_hard91, RT12_StageIII_R5=p2.timeSpent_StageIII_hard92, RT13_StageIII_R5=p2.timeSpent_StageIII_hard93, RT14_StageIII_R5=p2.timeSpent_StageIII_hard94, RT15_StageIII_R5=p2.timeSpent_StageIII_hard95, answer1_StageIII_R5=p2.StageIII_hard81_answer, answer2_StageIII_R5=p2.StageIII_hard82_answer, answer3_StageIII_R5=p2.StageIII_hard83_answer, answer4_StageIII_R5=p2.StageIII_hard84_answer, answer5_StageIII_R5=p2.StageIII_hard85_answer, answer6_StageIII_R5=p2.StageIII_hard86_answer, answer7_StageIII_R5=p2.StageIII_hard87_answer, answer8_StageIII_R5=p2.StageIII_hard88_answer, answer9_StageIII_R5=p2.StageIII_hard89_answer, answer10_StageIII_R5=p2.StageIII_hard90_answer, answer11_StageIII_R5=p2.StageIII_hard91_answer, answer12_StageIII_R5=p2.StageIII_hard92_answer, answer13_StageIII_R5=p2.StageIII_hard93_answer, answer14_StageIII_R5=p2.StageIII_hard94_answer, answer15_StageIII_R5=p2.StageIII_hard95_answer, ) class PartIII(Page): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 form_model = 'player' @staticmethod def get_form_fields(player): if player.id_in_group == 1: return ['Managerial_Experience', 'Rate_Overall_Performance','Freeform_Feedback', 'Managerial_1', 'Managerial_2', 'Managerial_3', 'Managerial_4', 'Risk'] else: return ['Rate_Feedback', 'Managerial_1', 'Managerial_2', 'Managerial_3', 'Managerial_4'] @staticmethod def vars_for_template(player): group = player.group return dict( freeform_label='Question 3: If you can write your own feedback, what would you send to {} based on the overall performance?'.format(group.employee_name), ) class PartIII_2(Page): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 form_model = 'player' @staticmethod def get_form_fields(player): if player.id_in_group == 1: return ['Attitude_1', 'Attitude_2', 'Gender_Guess', 'Criticism'] else: return ['Attitude_1', 'Attitude_2'] class Final_payment(Page): @staticmethod def is_displayed(player): participant = player.participant return participant.enroll == 1 page_sequence = [Wait_Regroup, Overtime, Instruction, PartI, PartII, StageI, StageII, StageII_hard1, StageII_hard2, StageII_hard3, StageII_hard4, StageII_hard5, StageII_hard6, StageII_hard7, StageII_hard8, StageII_hard9, StageII_hard10, StageII_hard11, StageII_hard12, StageII_hard13, StageII_hard14, StageII_hard15, Results_StageII_hard_confirm, Results_StageII_hard, PartII_Matching_rule, Role_Assignment_WaitPage, Role_Assignment, Before_StageIII, StageIII, Guess, Before_Start, StageIII_hard1, StageIII_hard2, StageIII_hard3, StageIII_hard4, StageIII_hard5, StageIII_hard6, StageIII_hard7,StageIII_hard8, StageIII_hard9, StageIII_hard10, StageIII_hard11, StageIII_hard12, StageIII_hard13, StageIII_hard14, StageIII_hard15, StageIII_WaitforPeriod1, StageIII_R1_WaitPage, Results_StageIII_hard_R1, StageIII_WaitforM_R1, Feedback_StageIII_hard_R1, Before_StageIII_R2, Start_StageIIIR2, StageIII_hard21, StageIII_hard22, StageIII_hard23, StageIII_hard24, StageIII_hard25, StageIII_hard26, StageIII_hard27, StageIII_hard28, StageIII_hard29, StageIII_hard30, StageIII_hard31, StageIII_hard32, StageIII_hard33, StageIII_hard34, StageIII_hard35, StageIII_WaitforPeriod2, StageIII_R2_WaitPage, Results_StageIII_hard_R2, StageIII_WaitforM_R2, Feedback_StageIII_hard_R2, Before_StageIII_R3, Start_StageIIIR3, StageIII_hard41, StageIII_hard42, StageIII_hard43, StageIII_hard44, StageIII_hard45, StageIII_hard46, StageIII_hard47, StageIII_hard48, StageIII_hard49, StageIII_hard50, StageIII_hard51, StageIII_hard52, StageIII_hard53, StageIII_hard54, StageIII_hard55, StageIII_WaitforPeriod3, StageIII_R3_WaitPage, Results_StageIII_hard_R3, StageIII_WaitforM_R3, Feedback_StageIII_hard_R3, Before_StageIII_R4, Start_StageIIIR4, StageIII_hard61, StageIII_hard62, StageIII_hard63, StageIII_hard64, StageIII_hard65, StageIII_hard66, StageIII_hard67, StageIII_hard68, StageIII_hard69, StageIII_hard70, StageIII_hard71, StageIII_hard72, StageIII_hard73, StageIII_hard74, StageIII_hard75, StageIII_WaitforPeriod4, StageIII_R4_WaitPage, Results_StageIII_hard_R4, StageIII_WaitforM_R4, Feedback_StageIII_hard_R4, Before_StageIII_R5, Start_StageIIIR5, StageIII_hard81, StageIII_hard82, StageIII_hard83, StageIII_hard84, StageIII_hard85, StageIII_hard86, StageIII_hard87, StageIII_hard88, StageIII_hard89, StageIII_hard90, StageIII_hard91, StageIII_hard92, StageIII_hard93, StageIII_hard94, StageIII_hard95, StageIII_WaitforPeriod5, StageIII_R5_WaitPage, Results_StageIII_hard_R5, Before_report_Waitforall, Performance_report, PartIII, PartIII_2, Final_payment]