from otree.api import * author = 'Mike ZhiRen Wu' doc = """ Your app description """ # Define Levenshtein distance between two strings def LD(s, t): if s == "": return len(t) if t == "": return len(s) if s[-1] == t[-1]: cost = 0 else: cost = 1 res = min([LD(s[:-1], t) + 1, LD(s, t[:-1]) + 1, LD(s[:-1], t[:-1]) + cost]) return res class C(BaseConstants): NAME_IN_URL = 'gendered_feedback_draft' PLAYERS_PER_GROUP = 2 NUM_ROUNDS = 1 TIMER_TEXT = "Time left:" StageII_easy1 = 'δγηηαγ' StageII_easy2 = 'γαφδφβ' StageII_easy3 = 'γαγφβδ' StageII_easy4 = 'γββφφα' StageII_easy5 = 'δβγφηφ' StageII_easy6 = 'φηδγγα' StageII_easy7 = 'αηγβγη' StageII_easy8 = 'βφηηαα' StageII_easy9 = 'φβαγδδ' StageII_easy10 = 'δγφφγα' StageII_easy11 = 'βφγηββ' StageII_easy12 = 'δφδαηα' StageII_easy13 = 'δφγφφδ' StageII_easy14 = 'δφβηδφ' StageII_easy15 = 'δγηφβα' StageII_easy16 = 'φφβαηγ' StageII_easy17 = 'γδγφδη' StageII_easy18 = 'δδηγφδ' StageII_easy19 = 'δδηββδ' StageII_easy20 = 'γηγααφ' # transcription task 1-20 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 = 'χδγγ.αχι' StageII_hard16 = 'χγβφγιη.' StageII_hard17 = 'χεηγφεεχ' StageII_hard18 = 'βεαχγδηδ' StageII_hard19 = 'αδιαβαγβ' StageII_hard20 = 'η.γχδδφα' StageIII_easy1 = 'δδγβδα' StageIII_easy2 = 'βφφαγβ' StageIII_easy3 = 'βγφηφβ' StageIII_easy4 = 'γηααφγ' StageIII_easy5 = 'βββαγφ' StageIII_easy6 = 'δφηδδη' StageIII_easy7 = 'αδφβδφ' StageIII_easy8 = 'ααφβηβ' StageIII_easy9 = 'αδδφδα' StageIII_easy10 = 'βδαγφα' StageIII_easy11 = 'γαβαδη' StageIII_easy12 = 'δαβαηβ' StageIII_easy13 = 'δδηγαβ' StageIII_easy14 = 'βγβδββ' StageIII_easy15 = 'ααγφηβ' StageIII_easy16 = 'φηαηδα' StageIII_easy17 = 'βαδββη' StageIII_easy18 = 'δαφγηδ' StageIII_easy19 = 'ηηφαφφ' StageIII_easy20 = 'βφδγαα' StageIII_easy21 = 'φφβηφγ' StageIII_easy22 = 'γφφδδγ' StageIII_easy23 = 'φαηδηη' StageIII_easy24 = 'γηγδηα' StageIII_easy25 = 'γηβφφγ' StageIII_easy26 = 'ηηδαγα' StageIII_easy27 = 'ηβφφβγ' StageIII_easy28 = 'δαβδαδ' StageIII_easy29 = 'ηαηβγφ' StageIII_easy30 = 'αδαηβα' StageIII_easy31 = 'φβγδβγ' StageIII_easy32 = 'ηβγδγγ' StageIII_easy33 = 'δδγδαα' StageIII_easy34 = 'δφδηγη' StageIII_easy35 = 'δβδγγφ' StageIII_easy36 = 'ββααδγ' StageIII_easy37 = 'γβαβγη' StageIII_easy38 = 'βφγδαγ' StageIII_easy39 = 'φδφφηβ' StageIII_easy40 = 'γαγδδη' StageIV_easy1 = '' StageIV_easy2 = '' StageIV_easy3 = '' StageIV_easy4 = '' StageIV_easy5 = '' StageIV_easy6 = '' StageIV_easy7 = '' StageIV_easy8 = '' StageIV_easy9 = '' StageIV_easy10 = '' StageIV_easy11 = '' StageIV_easy12 = '' StageIV_easy13 = '' StageIV_easy14 = '' StageIV_easy15 = '' StageIV_easy16 = '' StageIV_easy17 = '' StageIV_easy18 = '' StageIV_easy19 = '' StageIV_easy20 = '' StageIV_easy21 = '' StageIV_easy22 = '' StageIV_easy23 = '' StageIV_easy24 = '' StageIV_easy25 = '' StageIV_easy26 = '' StageIV_easy27 = '' StageIV_easy28 = '' StageIV_easy29 = '' StageIV_easy30 = '' StageIV_easy31 = '' StageIV_easy32 = '' StageIV_easy33 = '' StageIV_easy34 = '' StageIV_easy35 = '' StageIV_easy36 = '' StageIV_easy37 = '' StageIV_easy38 = '' StageIV_easy39 = '' StageIV_easy40 = '' # transcription task 21-60 StageIV_hard1 = '' StageIV_hard2 = '' StageIV_hard3 = '' StageIV_hard4 = '' StageIV_hard5 = '' StageIV_hard6 = '' StageIV_hard7 = '' StageIV_hard8 = '' StageIV_hard9 = '' StageIV_hard10 = '' StageIV_hard11 = '' StageIV_hard12 = '' StageIV_hard13 = '' StageIV_hard14 = '' StageIV_hard15 = '' StageIV_hard16 = '' StageIV_hard17 = '' StageIV_hard18 = '' StageIV_hard19 = '' StageIV_hard20 = '' StageIV_hard21 = '' StageIV_hard22 = '' StageIV_hard23 = '' StageIV_hard24 = '' StageIV_hard25 = '' StageIV_hard26 = '' StageIV_hard27 = '' StageIV_hard28 = '' StageIV_hard29 = '' StageIV_hard30 = '' StageIV_hard31 = '' StageIV_hard32 = '' StageIV_hard33 = '' StageIV_hard34 = '' StageIV_hard35 = '' StageIV_hard36 = '' StageIV_hard37 = '' StageIV_hard38 = '' StageIV_hard39 = '' StageIV_hard40 = '' class Subsession(BaseSubsession): pass class Group(BaseGroup): employee_name = models.StringField() Message_StageIII_E_R1 = models.IntegerField() Message_StageIII_E_R2 = models.IntegerField() Message_StageIV_E_R1 = models.IntegerField() Message_StageIV_E_R2 = models.IntegerField() Message_StageIV_H_R1 = models.IntegerField() Message_StageIV_H_R2 = models.IntegerField() class Player(BasePlayer): Gender = models.IntegerField(widget=widgets.RadioSelect, choices=[[1, 'Male'], [2, 'Female'], [3, 'Other'], [4, 'Prefer not to say']]) YOB = models.IntegerField() 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 new born babies in 2000 Pseudonym_Male = models.StringField(widget=widgets.RadioSelect, choices=['James', 'William', 'Benjamin', 'Lucas', 'Jack', 'Jackson', 'Michael', 'Daniel', 'Robert', 'Stephen']) Pseudonym_Female = models.StringField(widget=widgets.RadioSelect, choices=['Emma', 'Catherine', 'Sarah', 'Sophia', 'Elizabeth', 'Rebecca', 'Mary', 'Megan', 'Olivia', 'Katherine']) Pseudonym_Non_binary = models.StringField(widget=widgets.RadioSelect, choices=['Pat', 'Cameron', 'Kelly', 'Jamie', 'Hunter', 'Shannon', 'Jordan', 'Jessie', 'Peyton', 'Morgan']) # Rating in Stage III Rating_StageIII_R1 = models.IntegerField(widget=widgets.RadioSelect, choices=[[1, '1 [Extremely easy]'], [2, '2 [Very easy]'], [3, '3 [Easy]'], [4, '4 [Moderate]'], [5, '5 [Difficult]'], [6, '6 [Very difficult]'], [7, '7 [Extremely difficult]']]) Rating_StageIII_R2 = models.IntegerField(widget=widgets.RadioSelect, choices=[[1, '1 [extremely easy]'], [2, '2 [very easy]'], [3, '3 [easy]'], [4, '4 [Moderate]'], [5, '5 [difficult]'], [6, '6 [very difficult]'], [7, '7 [extremely difficult]']]) Rating_StageIII_R3 = models.IntegerField(widget=widgets.RadioSelect, choices=[[1, '1 [extremely easy]'], [2, '2 [very easy]'], [3, '3 [easy]'], [4, '4 [Moderate]'], [5, '5 [difficult]'], [6, '6 [very difficult]'], [7, '7 [extremely difficult]']]) Rating_StageIII_R4 = models.IntegerField(widget=widgets.RadioSelect, choices=[[1, '1 [extremely easy]'], [2, '2 [very easy]'], [3, '3 [easy]'], [4, '4 [Moderate]'], [5, '5 [difficult]'], [6, '6 [very difficult]'], [7, '7 [extremely difficult]']]) # Answer for Practice Round-Easy StageII_easy1_answer = models.StringField(blank=True, initial="") StageII_easy2_answer = models.StringField(blank=True, initial="") StageII_easy3_answer = models.StringField(blank=True, initial="") StageII_easy4_answer = models.StringField(blank=True, initial="") StageII_easy5_answer = models.StringField(blank=True, initial="") StageII_easy6_answer = models.StringField(blank=True, initial="") StageII_easy7_answer = models.StringField(blank=True, initial="") StageII_easy8_answer = models.StringField(blank=True, initial="") StageII_easy9_answer = models.StringField(blank=True, initial="") StageII_easy10_answer = models.StringField(blank=True, initial="") StageII_easy11_answer = models.StringField(blank=True, initial="") StageII_easy12_answer = models.StringField(blank=True, initial="") StageII_easy13_answer = models.StringField(blank=True, initial="") StageII_easy14_answer = models.StringField(blank=True, initial="") StageII_easy15_answer = models.StringField(blank=True, initial="") StageII_easy16_answer = models.StringField(blank=True, initial="") StageII_easy17_answer = models.StringField(blank=True, initial="") StageII_easy18_answer = models.StringField(blank=True, initial="") StageII_easy19_answer = models.StringField(blank=True, initial="") StageII_easy20_answer = models.StringField(blank=True, initial="") # Answer for Practice Round-Hard 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="") StageII_hard16_answer = models.StringField(blank=True, initial="") StageII_hard17_answer = models.StringField(blank=True, initial="") StageII_hard18_answer = models.StringField(blank=True, initial="") StageII_hard19_answer = models.StringField(blank=True, initial="") StageII_hard20_answer = models.StringField(blank=True, initial="") time0_E = models.FloatField(initial=0) time1_E = models.FloatField(initial=0) time2_E = models.FloatField(initial=0) time3_E = models.FloatField(initial=0) time4_E = models.FloatField(initial=0) time5_E = models.FloatField(initial=0) time6_E = models.FloatField(initial=0) time7_E = models.FloatField(initial=0) time8_E = models.FloatField(initial=0) time9_E = models.FloatField(initial=0) time10_E = models.FloatField(initial=0) time11_E = models.FloatField(initial=0) time12_E = models.FloatField(initial=0) time13_E = models.FloatField(initial=0) time14_E = models.FloatField(initial=0) time15_E = models.FloatField(initial=0) time16_E = models.FloatField(initial=0) time17_E = models.FloatField(initial=0) time18_E = models.FloatField(initial=0) time19_E = models.FloatField(initial=0) time20_E = models.FloatField(initial=0) # Create a field to store the data timeSpent_easy1 = models.IntegerField(initial=0) timeSpent_easy2 = models.IntegerField(initial=0) timeSpent_easy3 = models.IntegerField(initial=0) timeSpent_easy4 = models.IntegerField(initial=0) timeSpent_easy5 = models.IntegerField(initial=0) timeSpent_easy6 = models.IntegerField(initial=0) timeSpent_easy7 = models.IntegerField(initial=0) timeSpent_easy8 = models.IntegerField(initial=0) timeSpent_easy9 = models.IntegerField(initial=0) timeSpent_easy10 = models.IntegerField(initial=0) timeSpent_easy11 = models.IntegerField(initial=0) timeSpent_easy12 = models.IntegerField(initial=0) timeSpent_easy13 = models.IntegerField(initial=0) timeSpent_easy14 = models.IntegerField(initial=0) timeSpent_easy15 = models.IntegerField(initial=0) timeSpent_easy16 = models.IntegerField(initial=0) timeSpent_easy17 = models.IntegerField(initial=0) timeSpent_easy18 = models.IntegerField(initial=0) timeSpent_easy19 = models.IntegerField(initial=0) timeSpent_easy20 = models.IntegerField(initial=0) 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) timeSpent_hard16 = models.IntegerField(initial=0) timeSpent_hard17 = models.IntegerField(initial=0) timeSpent_hard18 = models.IntegerField(initial=0) timeSpent_hard19 = models.IntegerField(initial=0) timeSpent_hard20 = models.IntegerField(initial=0) # payment for practice rounds payment_easy1 = models.IntegerField(initial=0) payment_easy2 = models.IntegerField(initial=0) payment_easy3 = models.IntegerField(initial=0) payment_easy4 = models.IntegerField(initial=0) payment_easy5 = models.IntegerField(initial=0) payment_easy6 = models.IntegerField(initial=0) payment_easy7 = models.IntegerField(initial=0) payment_easy8 = models.IntegerField(initial=0) payment_easy9 = models.IntegerField(initial=0) payment_easy10 = models.IntegerField(initial=0) payment_easy11 = models.IntegerField(initial=0) payment_easy12 = models.IntegerField(initial=0) payment_easy13 = models.IntegerField(initial=0) payment_easy14 = models.IntegerField(initial=0) payment_easy15 = models.IntegerField(initial=0) payment_easy16 = models.IntegerField(initial=0) payment_easy17 = models.IntegerField(initial=0) payment_easy18 = models.IntegerField(initial=0) payment_easy19 = models.IntegerField(initial=0) payment_easy20 = models.IntegerField(initial=0) # calculation for float_field is very slow payment_hard1 = models.IntegerField(initial=0) payment_hard2 = models.IntegerField(initial=0) payment_hard3 = models.IntegerField(initial=0) payment_hard4 = models.IntegerField(initial=0) payment_hard5 = models.IntegerField(initial=0) payment_hard6 = models.IntegerField(initial=0) payment_hard7 = models.IntegerField(initial=0) payment_hard8 = models.IntegerField(initial=0) payment_hard9 = models.IntegerField(initial=0) payment_hard10 = models.IntegerField(initial=0) payment_hard11 = models.IntegerField(initial=0) payment_hard12 = models.IntegerField(initial=0) payment_hard13 = models.IntegerField(initial=0) payment_hard14 = models.IntegerField(initial=0) payment_hard15 = models.IntegerField(initial=0) payment_hard16 = models.IntegerField(initial=0) payment_hard17 = models.IntegerField(initial=0) payment_hard18 = models.IntegerField(initial=0) payment_hard19 = models.IntegerField(initial=0) payment_hard20 = models.IntegerField(initial=0) # Answer for Stage III-Easy StageIII_easy1_answer = models.StringField(blank=True, initial="") StageIII_easy2_answer = models.StringField(blank=True, initial="") StageIII_easy3_answer = models.StringField(blank=True, initial="") StageIII_easy4_answer = models.StringField(blank=True, initial="") StageIII_easy5_answer = models.StringField(blank=True, initial="") StageIII_easy6_answer = models.StringField(blank=True, initial="") StageIII_easy7_answer = models.StringField(blank=True, initial="") StageIII_easy8_answer = models.StringField(blank=True, initial="") StageIII_easy9_answer = models.StringField(blank=True, initial="") StageIII_easy10_answer = models.StringField(blank=True, initial="") StageIII_easy11_answer = models.StringField(blank=True, initial="") StageIII_easy12_answer = models.StringField(blank=True, initial="") StageIII_easy13_answer = models.StringField(blank=True, initial="") StageIII_easy14_answer = models.StringField(blank=True, initial="") StageIII_easy15_answer = models.StringField(blank=True, initial="") StageIII_easy16_answer = models.StringField(blank=True, initial="") StageIII_easy17_answer = models.StringField(blank=True, initial="") StageIII_easy18_answer = models.StringField(blank=True, initial="") StageIII_easy19_answer = models.StringField(blank=True, initial="") StageIII_easy20_answer = models.StringField(blank=True, initial="") StageIII_easy21_answer = models.StringField(blank=True, initial="") StageIII_easy22_answer = models.StringField(blank=True, initial="") StageIII_easy23_answer = models.StringField(blank=True, initial="") StageIII_easy24_answer = models.StringField(blank=True, initial="") StageIII_easy25_answer = models.StringField(blank=True, initial="") StageIII_easy26_answer = models.StringField(blank=True, initial="") StageIII_easy27_answer = models.StringField(blank=True, initial="") StageIII_easy28_answer = models.StringField(blank=True, initial="") StageIII_easy29_answer = models.StringField(blank=True, initial="") StageIII_easy30_answer = models.StringField(blank=True, initial="") StageIII_easy31_answer = models.StringField(blank=True, initial="") StageIII_easy32_answer = models.StringField(blank=True, initial="") StageIII_easy33_answer = models.StringField(blank=True, initial="") StageIII_easy34_answer = models.StringField(blank=True, initial="") StageIII_easy35_answer = models.StringField(blank=True, initial="") StageIII_easy36_answer = models.StringField(blank=True, initial="") StageIII_easy37_answer = models.StringField(blank=True, initial="") StageIII_easy38_answer = models.StringField(blank=True, initial="") StageIII_easy39_answer = models.StringField(blank=True, initial="") StageIII_easy40_answer = models.StringField(blank=True, initial="") # Time spent for stage III timeSpent_StageIII_easy1 = models.IntegerField(initial=0) timeSpent_StageIII_easy2 = models.IntegerField(initial=0) timeSpent_StageIII_easy3 = models.IntegerField(initial=0) timeSpent_StageIII_easy4 = models.IntegerField(initial=0) timeSpent_StageIII_easy5 = models.IntegerField(initial=0) timeSpent_StageIII_easy6 = models.IntegerField(initial=0) timeSpent_StageIII_easy7 = models.IntegerField(initial=0) timeSpent_StageIII_easy8 = models.IntegerField(initial=0) timeSpent_StageIII_easy9 = models.IntegerField(initial=0) timeSpent_StageIII_easy10 = models.IntegerField(initial=0) timeSpent_StageIII_easy11 = models.IntegerField(initial=0) timeSpent_StageIII_easy12 = models.IntegerField(initial=0) timeSpent_StageIII_easy13 = models.IntegerField(initial=0) timeSpent_StageIII_easy14 = models.IntegerField(initial=0) timeSpent_StageIII_easy15 = models.IntegerField(initial=0) timeSpent_StageIII_easy16 = models.IntegerField(initial=0) timeSpent_StageIII_easy17 = models.IntegerField(initial=0) timeSpent_StageIII_easy18 = models.IntegerField(initial=0) timeSpent_StageIII_easy19 = models.IntegerField(initial=0) timeSpent_StageIII_easy20 = models.IntegerField(initial=0) timeSpent_StageIII_easy21 = models.IntegerField(initial=0) timeSpent_StageIII_easy22 = models.IntegerField(initial=0) timeSpent_StageIII_easy23 = models.IntegerField(initial=0) timeSpent_StageIII_easy24 = models.IntegerField(initial=0) timeSpent_StageIII_easy25 = models.IntegerField(initial=0) timeSpent_StageIII_easy26 = models.IntegerField(initial=0) timeSpent_StageIII_easy27 = models.IntegerField(initial=0) timeSpent_StageIII_easy28 = models.IntegerField(initial=0) timeSpent_StageIII_easy29 = models.IntegerField(initial=0) timeSpent_StageIII_easy30 = models.IntegerField(initial=0) timeSpent_StageIII_easy31 = models.IntegerField(initial=0) timeSpent_StageIII_easy32 = models.IntegerField(initial=0) timeSpent_StageIII_easy33 = models.IntegerField(initial=0) timeSpent_StageIII_easy34 = models.IntegerField(initial=0) timeSpent_StageIII_easy35 = models.IntegerField(initial=0) timeSpent_StageIII_easy36 = models.IntegerField(initial=0) timeSpent_StageIII_easy37 = models.IntegerField(initial=0) timeSpent_StageIII_easy38 = models.IntegerField(initial=0) timeSpent_StageIII_easy39 = models.IntegerField(initial=0) timeSpent_StageIII_easy40 = models.IntegerField(initial=0) # payment for stage III payment_StageIII_easy1 = models.IntegerField(initial=0) payment_StageIII_easy2 = models.IntegerField(initial=0) payment_StageIII_easy3 = models.IntegerField(initial=0) payment_StageIII_easy4 = models.IntegerField(initial=0) payment_StageIII_easy5 = models.IntegerField(initial=0) payment_StageIII_easy6 = models.IntegerField(initial=0) payment_StageIII_easy7 = models.IntegerField(initial=0) payment_StageIII_easy8 = models.IntegerField(initial=0) payment_StageIII_easy9 = models.IntegerField(initial=0) payment_StageIII_easy10 = models.IntegerField(initial=0) payment_StageIII_easy11 = models.IntegerField(initial=0) payment_StageIII_easy12 = models.IntegerField(initial=0) payment_StageIII_easy13 = models.IntegerField(initial=0) payment_StageIII_easy14 = models.IntegerField(initial=0) payment_StageIII_easy15 = models.IntegerField(initial=0) payment_StageIII_easy16 = models.IntegerField(initial=0) payment_StageIII_easy17 = models.IntegerField(initial=0) payment_StageIII_easy18 = models.IntegerField(initial=0) payment_StageIII_easy19 = models.IntegerField(initial=0) payment_StageIII_easy20 = models.IntegerField(initial=0) payment_StageIII_easy21 = models.IntegerField(initial=0) payment_StageIII_easy22 = models.IntegerField(initial=0) payment_StageIII_easy23 = models.IntegerField(initial=0) payment_StageIII_easy24 = models.IntegerField(initial=0) payment_StageIII_easy25 = models.IntegerField(initial=0) payment_StageIII_easy26 = models.IntegerField(initial=0) payment_StageIII_easy27 = models.IntegerField(initial=0) payment_StageIII_easy28 = models.IntegerField(initial=0) payment_StageIII_easy29 = models.IntegerField(initial=0) payment_StageIII_easy30 = models.IntegerField(initial=0) payment_StageIII_easy31 = models.IntegerField(initial=0) payment_StageIII_easy32 = models.IntegerField(initial=0) payment_StageIII_easy33 = models.IntegerField(initial=0) payment_StageIII_easy34 = models.IntegerField(initial=0) payment_StageIII_easy35 = models.IntegerField(initial=0) payment_StageIII_easy36 = models.IntegerField(initial=0) payment_StageIII_easy37 = models.IntegerField(initial=0) payment_StageIII_easy38 = models.IntegerField(initial=0) payment_StageIII_easy39 = models.IntegerField(initial=0) payment_StageIII_easy40 = models.IntegerField(initial=0) def get_timeout_seconds_a(player: Player): participant = player.participant import time return participant.expiry - time.time() def get_timeout_seconds_b(player: Player): participant = player.participant import time return participant.expiry_b - 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): return get_timeout_seconds_a(player) > 0 def is_displayed_b(player: Player): return get_timeout_seconds_b(player) > 0 def is_displayed_c(player: Player): return get_timeout_seconds_c(player) > 0 & player.id_in_group == 2 # manager=1, worker=2 def is_displayed_d(player: Player): return player.id_in_group == 1 def set_payoffs(player: Player): if LD(player.StageII_easy1_answer, C.StageII_easy1) == 0: player.payment_easy1 = 16 elif 7 > LD(player.StageII_easy1_answer, C.StageII_easy1) > 0: player.payment_easy1 = 6 - LD(player.StageII_easy1_answer, C.StageII_easy1) else: player.payment_easy1 = 0 if LD(player.StageII_easy2_answer, C.StageII_easy2) == 0: player.payment_easy2 = 16 elif 7 > LD(player.StageII_easy2_answer, C.StageII_easy2) > 0: player.payment_easy2 = 6 - LD(player.StageII_easy2_answer, C.StageII_easy2) else: player.payment_easy2 = 0 if LD(player.StageII_easy3_answer, C.StageII_easy3) == 0: player.payment_easy3 = 16 elif 7 > LD(player.StageII_easy3_answer, C.StageII_easy3) > 0: player.payment_easy3 = 6 - LD(player.StageII_easy3_answer, C.StageII_easy3) else: player.payment_easy3 = 0 if LD(player.StageII_easy4_answer, C.StageII_easy4) == 0: player.payment_easy4 = 16 elif 7 > LD(player.StageII_easy4_answer, C.StageII_easy4) > 0: player.payment_easy4 = 6 - LD(player.StageII_easy4_answer, C.StageII_easy4) else: player.payment_easy4 = 0 if LD(player.StageII_easy5_answer, C.StageII_easy5) == 0: player.payment_easy5 = 16 elif 7 > LD(player.StageII_easy5_answer, C.StageII_easy5) > 0: player.payment_easy5 = 6 - LD(player.StageII_easy5_answer, C.StageII_easy5) else: player.payment_easy5 = 0 if LD(player.StageII_easy6_answer, C.StageII_easy6) == 0: player.payment_easy6 = 16 elif 7 > LD(player.StageII_easy6_answer, C.StageII_easy6) > 0: player.payment_easy6 = 6 - LD(player.StageII_easy6_answer, C.StageII_easy6) else: player.payment_easy6 = 0 if LD(player.StageII_easy7_answer, C.StageII_easy7) == 0: player.payment_easy7 = 16 elif 7 > LD(player.StageII_easy7_answer, C.StageII_easy7) > 0: player.payment_easy7 = 6 - LD(player.StageII_easy7_answer, C.StageII_easy7) else: player.payment_easy7 = 0 if LD(player.StageII_easy8_answer, C.StageII_easy8) == 0: player.payment_easy8 = 16 elif 7 > LD(player.StageII_easy8_answer, C.StageII_easy8) > 0: player.payment_easy8 = 6 - LD(player.StageII_easy8_answer, C.StageII_easy8) else: player.payment_easy8 = 0 if LD(player.StageII_easy9_answer, C.StageII_easy9) == 0: player.payment_easy9 = 16 elif 7 > LD(player.StageII_easy9_answer, C.StageII_easy9) > 0: player.payment_easy9 = 6 - LD(player.StageII_easy9_answer, C.StageII_easy9) else: player.payment_easy9 = 0 if LD(player.StageII_easy10_answer, C.StageII_easy10) == 0: player.payment_easy10 = 16 elif 7 > LD(player.StageII_easy10_answer, C.StageII_easy10) > 0: player.payment_easy10 = 6 - LD(player.StageII_easy10_answer, C.StageII_easy10) else: player.payment_easy10 = 0 if LD(player.StageII_easy11_answer, C.StageII_easy11) == 0: player.payment_easy11 = 16 elif 7 > LD(player.StageII_easy11_answer, C.StageII_easy11) > 0: player.payment_easy11 = 6 - LD(player.StageII_easy11_answer, C.StageII_easy11) else: player.payment_easy11 = 0 if LD(player.StageII_easy12_answer, C.StageII_easy12) == 0: player.payment_easy12 = 16 elif 7 > LD(player.StageII_easy12_answer, C.StageII_easy12) > 0: player.payment_easy12 = 6 - LD(player.StageII_easy12_answer, C.StageII_easy12) else: player.payment_easy12 = 0 if LD(player.StageII_easy13_answer, C.StageII_easy13) == 0: player.payment_easy13 = 16 elif 7 > LD(player.StageII_easy13_answer, C.StageII_easy13) > 0: player.payment_easy13 = 6 - LD(player.StageII_easy13_answer, C.StageII_easy13) else: player.payment_easy13 = 0 if LD(player.StageII_easy14_answer, C.StageII_easy14) == 0: player.payment_easy14 = 16 elif 7 > LD(player.StageII_easy14_answer, C.StageII_easy14) > 0: player.payment_easy14 = 6 - LD(player.StageII_easy14_answer, C.StageII_easy14) else: player.payment_easy14 = 0 if LD(player.StageII_easy15_answer, C.StageII_easy15) == 0: player.payment_easy15 = 16 elif 7 > LD(player.StageII_easy15_answer, C.StageII_easy15) > 0: player.payment_easy15 = 6 - LD(player.StageII_easy15_answer, C.StageII_easy15) else: player.payment_easy15 = 0 if LD(player.StageII_easy16_answer, C.StageII_easy16) == 0: player.payment_easy16 = 16 elif 7 > LD(player.StageII_easy16_answer, C.StageII_easy16) > 0: player.payment_easy16 = 6 - LD(player.StageII_easy16_answer, C.StageII_easy16) else: player.payment_easy16 = 0 if LD(player.StageII_easy17_answer, C.StageII_easy17) == 0: player.payment_easy17 = 16 elif 7 > LD(player.StageII_easy17_answer, C.StageII_easy17) > 0: player.payment_easy17 = 6 - LD(player.StageII_easy17_answer, C.StageII_easy17) else: player.payment_easy17 = 0 if LD(player.StageII_easy18_answer, C.StageII_easy18) == 0: player.payment_easy18 = 16 elif 7 > LD(player.StageII_easy18_answer, C.StageII_easy18) > 0: player.payment_easy18 = 6 - LD(player.StageII_easy18_answer, C.StageII_easy18) else: player.payment_easy18 = 0 if LD(player.StageII_easy19_answer, C.StageII_easy19) == 0: player.payment_easy19 = 16 elif 7 > LD(player.StageII_easy19_answer, C.StageII_easy19) > 0: player.payment_easy19 = 6 - LD(player.StageII_easy19_answer, C.StageII_easy19) else: player.payment_easy19 = 0 if LD(player.StageII_easy20_answer, C.StageII_easy20) == 0: player.payment_easy20 = 16 elif 7 > LD(player.StageII_easy20_answer, C.StageII_easy20) > 0: player.payment_easy20 = 6 - LD(player.StageII_easy20_answer, C.StageII_easy20) else: player.payment_easy20 = 0 def set_payoffs_b(player: Player): if LD(player.StageII_hard1_answer, C.StageII_hard1) == 0: player.payment_hard1 = 32 elif 9 > LD(player.StageII_hard1_answer, C.StageII_hard1) > 0: player.payment_hard1 = 8 - LD(player.StageII_hard1_answer, C.StageII_hard1) else: player.payment_hard1 = 0 if LD(player.StageII_hard2_answer, C.StageII_hard2) == 0: player.payment_hard2 = 32 elif 9 > LD(player.StageII_hard2_answer, C.StageII_hard2) > 0: player.payment_hard2 = 8 - LD(player.StageII_hard2_answer, C.StageII_hard2) else: player.payment_hard2 = 0 if LD(player.StageII_hard3_answer, C.StageII_hard3) == 0: player.payment_hard3 = 32 elif 9 > LD(player.StageII_hard3_answer, C.StageII_hard3) > 0: player.payment_hard3 = 8 - LD(player.StageII_hard3_answer, C.StageII_hard3) else: player.payment_hard3 = 0 if LD(player.StageII_hard4_answer, C.StageII_hard4) == 0: player.payment_hard4 = 32 elif 9 > LD(player.StageII_hard4_answer, C.StageII_hard4) > 0: player.payment_hard4 = 8 - LD(player.StageII_hard4_answer, C.StageII_hard4) else: player.payment_hard4 = 0 if LD(player.StageII_hard5_answer, C.StageII_hard5) == 0: player.payment_hard5 = 32 elif 9 > LD(player.StageII_hard5_answer, C.StageII_hard5) > 0: player.payment_hard5 = 8 - LD(player.StageII_hard5_answer, C.StageII_hard5) else: player.payment_hard5 = 0 if LD(player.StageII_hard6_answer, C.StageII_hard6) == 0: player.payment_hard6 = 32 elif 9 > LD(player.StageII_hard6_answer, C.StageII_hard6) > 0: player.payment_hard6 = 8 - LD(player.StageII_hard6_answer, C.StageII_hard6) else: player.payment_hard6 = 0 if LD(player.StageII_hard7_answer, C.StageII_hard7) == 0: player.payment_hard7 = 32 elif 9 > LD(player.StageII_hard7_answer, C.StageII_hard7) > 0: player.payment_hard7 = 8 - LD(player.StageII_hard7_answer, C.StageII_hard7) else: player.payment_hard7 = 0 if LD(player.StageII_hard8_answer, C.StageII_hard8) == 0: player.payment_hard8 = 32 elif 9 > LD(player.StageII_hard8_answer, C.StageII_hard8) > 0: player.payment_hard8 = 8 - LD(player.StageII_hard8_answer, C.StageII_hard8) else: player.payment_hard8 = 0 if LD(player.StageII_hard9_answer, C.StageII_hard9) == 0: player.payment_hard9 = 32 elif 9 > LD(player.StageII_hard9_answer, C.StageII_hard9) > 0: player.payment_hard9 = 8 - LD(player.StageII_hard9_answer, C.StageII_hard9) else: player.payment_hard9 = 0 if LD(player.StageII_hard10_answer, C.StageII_hard10) == 0: player.payment_hard10 = 32 elif 9 > LD(player.StageII_hard10_answer, C.StageII_hard10) > 0: player.payment_hard10 = 8 - LD(player.StageII_hard10_answer, C.StageII_hard10) else: player.payment_hard10 = 0 if LD(player.StageII_hard11_answer, C.StageII_hard11) == 0: player.payment_hard11 = 32 elif 9 > LD(player.StageII_hard11_answer, C.StageII_hard11) > 0: player.payment_hard11 = 8 - LD(player.StageII_hard11_answer, C.StageII_hard11) else: player.payment_hard11 = 0 if LD(player.StageII_hard12_answer, C.StageII_hard12) == 0: player.payment_hard12 = 32 elif 9 > LD(player.StageII_hard12_answer, C.StageII_hard12) > 0: player.payment_hard12 = 8 - LD(player.StageII_hard12_answer, C.StageII_hard12) else: player.payment_hard12 = 0 if LD(player.StageII_hard13_answer, C.StageII_hard13) == 0: player.payment_hard13 = 32 elif 9 > LD(player.StageII_hard13_answer, C.StageII_hard13) > 0: player.payment_hard13 = 8 - LD(player.StageII_hard13_answer, C.StageII_hard13) else: player.payment_hard13 = 0 if LD(player.StageII_hard14_answer, C.StageII_hard14) == 0: player.payment_hard14 = 32 elif 9 > LD(player.StageII_hard14_answer, C.StageII_hard14) > 0: player.payment_hard14 = 8 - LD(player.StageII_hard14_answer, C.StageII_hard14) else: player.payment_hard14 = 0 if LD(player.StageII_hard15_answer, C.StageII_hard15) == 0: player.payment_hard15 = 32 elif 9 > LD(player.StageII_hard15_answer, C.StageII_hard15) > 0: player.payment_hard15 = 8 - LD(player.StageII_hard15_answer, C.StageII_hard15) else: player.payment_hard15 = 0 if LD(player.StageII_hard16_answer, C.StageII_hard16) == 0: player.payment_hard16 = 32 elif 9 > LD(player.StageII_hard16_answer, C.StageII_hard16) > 0: player.payment_hard16 = 8 - LD(player.StageII_hard16_answer, C.StageII_hard16) else: player.payment_hard16 = 0 if LD(player.StageII_hard17_answer, C.StageII_hard17) == 0: player.payment_hard17 = 32 elif 9 > LD(player.StageII_hard17_answer, C.StageII_hard17) > 0: player.payment_hard17 = 8 - LD(player.StageII_hard17_answer, C.StageII_hard17) else: player.payment_hard17 = 0 if LD(player.StageII_hard18_answer, C.StageII_hard18) == 0: player.payment_hard18 = 32 elif 9 > LD(player.StageII_hard18_answer, C.StageII_hard18) > 0: player.payment_hard18 = 8 - LD(player.StageII_hard18_answer, C.StageII_hard18) else: player.payment_hard18 = 0 if LD(player.StageII_hard19_answer, C.StageII_hard19) == 0: player.payment_hard19 = 32 elif 9 > LD(player.StageII_hard19_answer, C.StageII_hard19) > 0: player.payment_hard19 = 8 - LD(player.StageII_hard19_answer, C.StageII_hard19) else: player.payment_hard19 = 0 if LD(player.StageII_hard20_answer, C.StageII_hard20) == 0: player.payment_hard20 = 32 elif 9 > LD(player.StageII_hard20_answer, C.StageII_hard20) > 0: player.payment_hard20 = 8 - LD(player.StageII_hard20_answer, C.StageII_hard20) else: player.payment_hard20 = 0 # PAGES class Instruction(Page): pass class PartI(Page): form_model = 'player' form_fields = ['Gender', 'YOB', 'Nationality', 'Education'] class PartII(Page): pass 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'] class StageII(Page): @staticmethod def before_next_page(player: Player, timeout_happened): participant = player.participant import time participant.expiry = time.time() + 60 player.time0_E = int(time.time()) class StageII_easy1(Page): form_model = 'player' form_fields = ['StageII_easy1_answer', 'timeSpent_easy1'] 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.time1_E = int(time.time()) class StageII_easy2(Page): form_model = 'player' form_fields = ['StageII_easy2_answer', 'timeSpent_easy2'] 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_E = int(time.time()) class StageII_easy3(Page): form_model = 'player' form_fields = ['StageII_easy3_answer', 'timeSpent_easy3'] 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_E = int(time.time()) class StageII_easy4(Page): form_model = 'player' form_fields = ['StageII_easy4_answer', 'timeSpent_easy4'] 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_E = int(time.time()) class StageII_easy5(Page): form_model = 'player' form_fields = ['StageII_easy5_answer', 'timeSpent_easy5'] 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_E = int(time.time()) class StageII_easy6(Page): form_model = 'player' form_fields = ['StageII_easy6_answer', 'timeSpent_easy6'] 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_E = int(time.time()) class StageII_easy7(Page): form_model = 'player' form_fields = ['StageII_easy7_answer', 'timeSpent_easy7'] 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_E = int(time.time()) class StageII_easy8(Page): form_model = 'player' form_fields = ['StageII_easy8_answer', 'timeSpent_easy8'] 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_E = int(time.time()) class StageII_easy9(Page): form_model = 'player' form_fields = ['StageII_easy9_answer', 'timeSpent_easy9'] 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_E = int(time.time()) class StageII_easy10(Page): form_model = 'player' form_fields = ['StageII_easy10_answer', 'timeSpent_easy10'] 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_E = int(time.time()) class StageII_easy11(Page): form_model = 'player' form_fields = ['StageII_easy11_answer', 'timeSpent_easy11'] 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_E = int(time.time()) class StageII_easy12(Page): form_model = 'player' form_fields = ['StageII_easy12_answer', 'timeSpent_easy12'] 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_E = int(time.time()) class StageII_easy13(Page): form_model = 'player' form_fields = ['StageII_easy13_answer', 'timeSpent_easy13'] 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_E = int(time.time()) class StageII_easy14(Page): form_model = 'player' form_fields = ['StageII_easy14_answer', 'timeSpent_easy14'] 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_E = int(time.time()) class StageII_easy15(Page): form_model = 'player' form_fields = ['StageII_easy15_answer', 'timeSpent_easy15'] 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_E = int(time.time()) class StageII_easy16(Page): form_model = 'player' form_fields = ['StageII_easy16_answer', 'timeSpent_easy16'] 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.time16_E = int(time.time()) class StageII_easy17(Page): form_model = 'player' form_fields = ['StageII_easy17_answer', 'timeSpent_easy17'] 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.time17_E = int(time.time()) class StageII_easy18(Page): form_model = 'player' form_fields = ['StageII_easy18_answer', 'timeSpent_easy18'] 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.time18_E = int(time.time()) class StageII_easy19(Page): form_model = 'player' form_fields = ['StageII_easy19_answer', 'timeSpent_easy19'] 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.time19_E = int(time.time()) class StageII_easy20(Page): form_model = 'player' form_fields = ['StageII_easy20_answer', 'timeSpent_easy20'] 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.time20_E = int(time.time()) class Results_StageII_easy_confirm(Page): @staticmethod def before_next_page(player: Player, timeout_happened): set_payoffs(player) class Results_StageII_easy(Page): @staticmethod def before_next_page(player: Player, timeout_happened): participant = player.participant import time participant.expiry_b = time.time() + 60 class StageII_hard1(Page): form_model = 'player' form_fields = ['StageII_hard1_answer', 'timeSpent_hard1'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_b is_displayed = is_displayed_b class StageII_hard2(Page): form_model = 'player' form_fields = ['StageII_hard2_answer', 'timeSpent_hard2'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_b is_displayed = is_displayed_b class StageII_hard3(Page): form_model = 'player' form_fields = ['StageII_hard3_answer', 'timeSpent_hard3'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_b is_displayed = is_displayed_b class StageII_hard4(Page): form_model = 'player' form_fields = ['StageII_hard4_answer', 'timeSpent_hard4'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_b is_displayed = is_displayed_b class StageII_hard5(Page): form_model = 'player' form_fields = ['StageII_hard5_answer', 'timeSpent_hard5'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_b is_displayed = is_displayed_b class StageII_hard6(Page): form_model = 'player' form_fields = ['StageII_hard6_answer', 'timeSpent_hard6'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_b is_displayed = is_displayed_b class StageII_hard7(Page): form_model = 'player' form_fields = ['StageII_hard7_answer', 'timeSpent_hard7'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_b is_displayed = is_displayed_b class StageII_hard8(Page): form_model = 'player' form_fields = ['StageII_hard8_answer', 'timeSpent_hard8'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_b is_displayed = is_displayed_b class StageII_hard9(Page): form_model = 'player' form_fields = ['StageII_hard9_answer', 'timeSpent_hard9'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_b is_displayed = is_displayed_b class StageII_hard10(Page): form_model = 'player' form_fields = ['StageII_hard10_answer', 'timeSpent_hard10'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_b is_displayed = is_displayed_b class StageII_hard11(Page): form_model = 'player' form_fields = ['StageII_hard11_answer', 'timeSpent_hard11'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_b is_displayed = is_displayed_b class StageII_hard12(Page): form_model = 'player' form_fields = ['StageII_hard12_answer', 'timeSpent_hard12'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_b is_displayed = is_displayed_b class StageII_hard13(Page): form_model = 'player' form_fields = ['StageII_hard13_answer', 'timeSpent_hard13'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_b is_displayed = is_displayed_b class StageII_hard14(Page): form_model = 'player' form_fields = ['StageII_hard14_answer', 'timeSpent_hard14'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_b is_displayed = is_displayed_b class StageII_hard15(Page): form_model = 'player' form_fields = ['StageII_hard15_answer', 'timeSpent_hard15'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_b is_displayed = is_displayed_b class StageII_hard16(Page): form_model = 'player' form_fields = ['StageII_hard16_answer', 'timeSpent_hard16'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_b is_displayed = is_displayed_b class StageII_hard17(Page): form_model = 'player' form_fields = ['StageII_hard17_answer', 'timeSpent_hard17'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_b is_displayed = is_displayed_b class StageII_hard18(Page): form_model = 'player' form_fields = ['StageII_hard18_answer', 'timeSpent_hard18'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_b is_displayed = is_displayed_b class StageII_hard19(Page): form_model = 'player' form_fields = ['StageII_hard19_answer', 'timeSpent_hard19'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_b is_displayed = is_displayed_b class StageII_hard20(Page): form_model = 'player' form_fields = ['StageII_hard20_answer', 'timeSpent_hard20'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_b is_displayed = is_displayed_b class Results_StageII_hard_confirm(Page): @staticmethod def before_next_page(player: Player, timeout_happened): set_payoffs_b(player) class Results_StageII_hard(Page): pass class PartII_Matching_rule(Page): pass class Role_Assignment_WaitPage(WaitPage): @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 elif p2.Gender == 2: group.employee_name = p2.Pseudonym_Female else: group.employee_name = p2.Pseudonym_Non_binary class Role_Assignment(Page): pass class StageIII(Page): @staticmethod def before_next_page(player: Player, timeout_happened): participant = player.participant import time participant.expiry_c = time.time() + 60 class StageIII_easy1(Page): form_model = 'player' form_fields = ['StageIII_easy1_answer', 'timeSpent_StageIII_easy1'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c class StageIII_easy2(Page): form_model = 'player' form_fields = ['StageIII_easy2_answer', 'timeSpent_StageIII_easy2'] timer_text = C.TIMER_TEXT get_timeout_seconds = get_timeout_seconds_c is_displayed = is_displayed_c class StageIII_Rating_R1(Page): form_model = 'player' form_fields = ['Rating_StageIII_R1'] is_displayed = is_displayed_d class StageIII_R1_WaitPage(WaitPage): pass page_sequence = [StageII, StageII_easy1, StageII_easy2, StageII_easy3, StageII_easy4, StageII_easy5, StageII_easy6, StageII_easy7, StageII_easy8, StageII_easy9, StageII_easy10, StageII_easy11, StageII_easy12, StageII_easy13, StageII_easy14, StageII_easy15, StageII_easy16, StageII_easy17, StageII_easy18, StageII_easy19, StageII_easy20, Results_StageII_easy_confirm, Results_StageII_easy, 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, StageII_hard16, StageII_hard17, StageII_hard18, StageII_hard19, StageII_hard20, Results_StageII_hard_confirm, Results_StageII_hard, PartII_Matching_rule, Role_Assignment_WaitPage, Role_Assignment, StageIII, StageIII_easy1, StageIII_easy2, StageIII_Rating_R1, StageIII_R1_WaitPage ] # Instruction, PartI, PartII, StageI,