from otree.api import * doc = """ Your app description """ class C(BaseConstants): NAME_IN_URL = 'cog2' PLAYERS_PER_GROUP = None NUM_ROUNDS = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): # ans1 = models.StringField( # initial='', blank=True, max_length=3, label="The answer is," # ) ans1 = models.IntegerField( blank=True, label="The answer is:" ) ans2 = models.IntegerField( blank=True, label="The answer is:" ) ans3 = models.IntegerField( blank=True, label="The answer is:" ) ans4 = models.IntegerField( blank=True, label="The answer is:" ) ans5 = models.IntegerField( blank=True, label="The answer is:" ) ans6 = models.IntegerField( blank=True, label="The answer is:" ) ans7 = models.IntegerField( blank=True, label="The answer is:" ) ans8 = models.IntegerField( blank=True, label="The answer is:" ) ans9 = models.IntegerField( blank=True, label="The answer is:" ) ans10 = models.IntegerField( blank=True, label="The answer is:" ) ans11 = models.IntegerField( blank=True, label="The answer is:" ) ans12 = models.IntegerField( blank=True, label="The answer is:" ) ans13 = models.IntegerField( blank=True, label="The answer is:" ) ans14 = models.IntegerField( blank=True, label="The answer is:" ) ans15 = models.IntegerField( blank=True, label="The answer is:" ) ans16 = models.IntegerField( blank=True, label="The answer is:" ) ans17 = models.IntegerField( blank=True, label="The answer is:" ) ans18 = models.IntegerField( blank=True, label="The answer is:" ) ans19 = models.IntegerField( blank=True, label="The answer is:" ) ans20 = models.IntegerField( blank=True, label="The answer is:" ) corr = models.IntegerField( initial='0' ) # PAGES class Inst1(Page): @staticmethod def before_next_page(player, timeout_happened): participant = player.participant import time # remember to add 'expiry' to PARTICIPANT_FIELDS. participant.expiry = time.time() + 1 * 300 def get_timeout_seconds(player): participant = player.participant import time return participant.expiry - time.time() class Q1(Page): form_model = 'player' form_fields = ['ans1'] timer_text = 'Time left to complete this section:' get_timeout_seconds = get_timeout_seconds @staticmethod def before_next_page(player, timeout_happened): if player.field_maybe_none('ans1') == 253: player.corr = player.corr + 1 def vars_for_template(player: Player): return dict( n1=48, n2=80, n3=32, n4=25, n5=68, n0=1 ) class Q2(Page): form_model = 'player' form_fields = ['ans2'] timer_text = 'Time left to complete this section:' get_timeout_seconds = get_timeout_seconds @staticmethod def is_displayed(player): return get_timeout_seconds(player) > 1 @staticmethod def before_next_page(player, timeout_happened): if player.field_maybe_none('ans2') == 241: player.corr = player.corr + 1 def vars_for_template(player: Player): return dict( n1=18, n2=48, n3=30, n4=74, n5=71, n0=2 ) class Q3(Page): form_model = 'player' form_fields = ['ans3'] timer_text = 'Time left to complete this section:' get_timeout_seconds = get_timeout_seconds @staticmethod def is_displayed(player): return get_timeout_seconds(player) > 1 @staticmethod def before_next_page(player, timeout_happened): if player.field_maybe_none('ans3') == 270: player.corr = player.corr + 1 def vars_for_template(player: Player): return dict( n1=63, n2=18, n3=70, n4=52, n5=67, n0=3 ) class Q4(Page): form_model = 'player' form_fields = ['ans4'] get_timeout_seconds = get_timeout_seconds @staticmethod def is_displayed(player): return get_timeout_seconds(player) > 1 @staticmethod def before_next_page(player, timeout_happened): if player.field_maybe_none('ans4') == 288: player.corr = player.corr + 1 def vars_for_template(player: Player): return dict( n1=52, n2=33, n3=85, n4=23, n5=95, n0=4 ) class Q5(Page): form_model = 'player' form_fields = ['ans5'] timer_text = 'Time left to complete this section:' get_timeout_seconds = get_timeout_seconds @staticmethod def is_displayed(player): return get_timeout_seconds(player) > 1 @staticmethod def before_next_page(player, timeout_happened): if player.field_maybe_none('ans5') == 204: player.corr = player.corr + 1 def vars_for_template(player: Player): return dict( n1=72, n2=23, n3=41, n4=40, n5=28, n0=5 ) class Q6(Page): form_model = 'player' form_fields = ['ans6'] timer_text = 'Time left to complete this section:' get_timeout_seconds = get_timeout_seconds @staticmethod def is_displayed(player): return get_timeout_seconds(player) > 1 @staticmethod def before_next_page(player, timeout_happened): if player.field_maybe_none('ans6') == 324: player.corr = player.corr + 1 def vars_for_template(player: Player): return dict( n1=72, n2=35, n3=80, n4=64, n5=73, n0=6 ) class Q7(Page): form_model = 'player' form_fields = ['ans7'] timer_text = 'Time left to complete this section:' get_timeout_seconds = get_timeout_seconds @staticmethod def is_displayed(player): return get_timeout_seconds(player) > 1 @staticmethod def before_next_page(player, timeout_happened): if player.field_maybe_none('ans7') == 244: player.corr = player.corr + 1 def vars_for_template(player: Player): return dict( n1=67, n2=49, n3=70, n4=27, n5=31, n0=7 ) class Q8(Page): form_model = 'player' form_fields = ['ans8'] timer_text = 'Time left to complete this section:' get_timeout_seconds = get_timeout_seconds @staticmethod def is_displayed(player): return get_timeout_seconds(player) > 1 @staticmethod def before_next_page(player, timeout_happened): if player.field_maybe_none('ans8') == 176: player.corr = player.corr + 1 def vars_for_template(player: Player): return dict( n1=13, n2=57, n3=10, n4=76, n5=20, n0=8 ) class Q9(Page): form_model = 'player' form_fields = ['ans9'] timer_text = 'Time left to complete this section:' get_timeout_seconds = get_timeout_seconds @staticmethod def is_displayed(player): return get_timeout_seconds(player) > 1 @staticmethod def before_next_page(player, timeout_happened): if player.field_maybe_none('ans9') == 226: player.corr = player.corr + 1 def vars_for_template(player: Player): return dict( n1=16, n2=51, n3=64, n4=31, n5=64, n0=9 ) class Q10(Page): form_model = 'player' form_fields = ['ans10'] timer_text = 'Time left to complete this section:' get_timeout_seconds = get_timeout_seconds @staticmethod def is_displayed(player): return get_timeout_seconds(player) > 1 @staticmethod def before_next_page(player, timeout_happened): if player.field_maybe_none('ans10') == 312: player.corr = player.corr + 1 def vars_for_template(player: Player): return dict( n1=38, n2=88, n3=44, n4=92, n5=50, n0=10 ) class Q11(Page): form_model = 'player' form_fields = ['ans11'] timer_text = 'Time left to complete this section:' get_timeout_seconds = get_timeout_seconds @staticmethod def is_displayed(player): return get_timeout_seconds(player) > 1 @staticmethod def before_next_page(player, timeout_happened): if player.field_maybe_none('ans11') == 290: player.corr = player.corr + 1 def vars_for_template(player: Player): return dict( n1=57, n2=56, n3=92, n4=34, n5=51, n0=11 ) class Q12(Page): form_model = 'player' form_fields = ['ans12'] timer_text = 'Time left to complete this section:' get_timeout_seconds = get_timeout_seconds @staticmethod def is_displayed(player): return get_timeout_seconds(player) > 1 @staticmethod def before_next_page(player, timeout_happened): if player.field_maybe_none('ans12') == 319: player.corr = player.corr + 1 def vars_for_template(player: Player): return dict( n1=68, n2=94, n3=10, n4=78, n5=69, n0=12 ) class Q13(Page): form_model = 'player' form_fields = ['ans13'] timer_text = 'Time left to complete this section:' get_timeout_seconds = get_timeout_seconds @staticmethod def is_displayed(player): return get_timeout_seconds(player) > 1 @staticmethod def before_next_page(player, timeout_happened): if player.field_maybe_none('ans13') == 269: player.corr = player.corr + 1 def vars_for_template(player: Player): return dict( n1=46, n2=67, n3=51, n4=26, n5=79, n0=13 ) class Q14(Page): form_model = 'player' form_fields = ['ans14'] timer_text = 'Time left to complete this section:' get_timeout_seconds = get_timeout_seconds @staticmethod def is_displayed(player): return get_timeout_seconds(player) > 1 @staticmethod def before_next_page(player, timeout_happened): if player.field_maybe_none('ans14') == 303: player.corr = player.corr + 1 def vars_for_template(player: Player): return dict( n1=83, n2=96, n3=48, n4=35, n5=41, n0=14 ) class Q15(Page): form_model = 'player' form_fields = ['ans15'] timer_text = 'Time left to complete this section:' get_timeout_seconds = get_timeout_seconds @staticmethod def is_displayed(player): return get_timeout_seconds(player) > 1 @staticmethod def before_next_page(player, timeout_happened): if player.field_maybe_none('ans15') == 243: player.corr = player.corr + 1 def vars_for_template(player: Player): return dict( n1=74, n2=31, n3=51, n4=18, n5=69, n0=15 ) class Q16(Page): form_model = 'player' form_fields = ['ans16'] timer_text = 'Time left to complete this section:' get_timeout_seconds = get_timeout_seconds @staticmethod def is_displayed(player): return get_timeout_seconds(player) > 1 @staticmethod def before_next_page(player, timeout_happened): if player.field_maybe_none('ans16') == 354: player.corr = player.corr + 1 def vars_for_template(player: Player): return dict( n1=97, n2=70, n3=79, n4=61, n5=47, n0=16 ) class Q17(Page): form_model = 'player' form_fields = ['ans17'] timer_text = 'Time left to complete this section:' get_timeout_seconds = get_timeout_seconds @staticmethod def is_displayed(player): return get_timeout_seconds(player) > 1 @staticmethod def before_next_page(player, timeout_happened): if player.field_maybe_none('ans17') == 288: player.corr = player.corr + 1 def vars_for_template(player: Player): return dict( n1=57, n2=36, n3=39, n4=71, n5=85, n0=17 ) class Q18(Page): form_model = 'player' form_fields = ['ans18'] timer_text = 'Time left to complete this section:' get_timeout_seconds = get_timeout_seconds @staticmethod def is_displayed(player): return get_timeout_seconds(player) > 1 @staticmethod def before_next_page(player, timeout_happened): if player.field_maybe_none('ans18') == 332: player.corr = player.corr + 1 def vars_for_template(player: Player): return dict( n1=39, n2=70, n3=80, n4=59, n5=84, n0=18 ) class Q19(Page): form_model = 'player' form_fields = ['ans19'] timer_text = 'Time left to complete this section:' get_timeout_seconds = get_timeout_seconds @staticmethod def is_displayed(player): return get_timeout_seconds(player) > 1 @staticmethod def before_next_page(player, timeout_happened): if player.field_maybe_none('ans19') == 224: player.corr = player.corr + 1 def vars_for_template(player: Player): return dict( n1=19, n2=72, n3=52, n4=48, n5=33, n0=19 ) class Q20(Page): form_model = 'player' form_fields = ['ans20'] timer_text = 'Time left to complete this section:' get_timeout_seconds = get_timeout_seconds @staticmethod def is_displayed(player): return get_timeout_seconds(player) > 1 @staticmethod def before_next_page(player, timeout_happened): if player.field_maybe_none('ans20') == 225: player.corr = player.corr + 1 # print(player.corr) def vars_for_template(player: Player): return dict( n1=64, n2=16, n3=13, n4=67, n5=65, n0=20 ) class Results(Page): @staticmethod def before_next_page(player: Player, timeout_happened): participant = player.participant participant.pt7 = player.corr # print(participant.pt7) # real page_sequence = [Inst1, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q17, Q18, Q19, Q20, Results]