import random from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants # cd desktop/grading/grading_project class Introduction1(Page): def before_next_page(self): player = self.player filename = "startTime" + str(player.id_in_group) + ".txt" timeMark = open(filename, "w") timeMark.write(str(Constants.timeIncriment)) timeMark.close() filename = "yaxis" + str(player.id_in_group) + ".txt" yaxis = open(filename, "w") yaxis.write("") yaxis.close() filename = "mistakes" + str(player.id_in_group) + ".txt" misses = open(filename, "w") misses.write("") misses.close() filename = "corrects" + str(player.id_in_group) + ".txt" corrects = open(filename, "w") corrects.write("") corrects.close() filename = "numImages" + str(player.id_in_group) + ".txt" rounds = open(filename, "w") rounds.write("") rounds.close() filename = "TimePerScreen" + str(player.id_in_group) + ".txt" tps = open(filename, "w") tps.write("0") tps.close() def vars_for_template(self): player = self.player return dict( a="startTime" + str(player.id_in_group) + ".txt" ) class Bin(Page): pass class Introduction2(Page): pass class Introduction3(Page): pass class Introduction4(Page): pass class Introduction5(Page): pass class Captcha(Page): form_model='player' form_fields =['captcha1'] class Captcha2(Page): form_model='player' form_fields =['captcha2'] def is_displayed(self): player = self.player return player.captcha1 != "eFx7aQf" class ErrorPage(Page): def is_displayed(self): player = self.player return (player.captcha1 != "eFx7aQf" and player.captcha2 != "5AJd9bN") class Practice(Page): form_model='player' form_fields =['line1', 'line2', 'line3', 'line4', 'line5'] def before_next_page(self): import random num = random.randint(1,2) player = self.player player.preBeliefsFlag = num class PreBeliefsPage1(Page): form_model = 'player' form_fields = ['beliefp1q1', 'beliefp1q2'] def is_displayed(self): player = self.player #filename = "prebeliefFlag" + str(player.id_in_group) + ".txt" #flagFile = open(filename, "w") #flagFile.write( str(num) ) #flagFile.close() return player.preBeliefsFlag == 1 class PreBeliefsPage2(Page): form_model = 'player' form_fields = ['beliefp2q1', 'beliefp2q2', 'beliefp2q3', 'beliefp2q4', 'beliefp2q5', 'beliefp2q6', 'beliefp2q7', 'beliefp2q8', 'beliefp2q9', 'beliefp2q10', 'beliefp2q11', 'beliefp2q12', 'beliefp2q13', 'beliefp2q14', 'beliefp2q15', 'beliefp2q16', 'beliefp2q17', 'beliefp2q18', 'beliefp2q19', 'beliefp2q20', 'beliefp2q21', 'beliefp2q22', 'beliefp2q23', 'beliefp2q24'] def is_displayed(self): player = self.player #filename = "prebeliefFlag" + str(player.id_in_group) + ".txt" #flagFile = open(filename, "r") #flagFile = flagFile.read() #num = int(flagFile) return player.preBeliefsFlag == 1 @staticmethod def error_message(values): #print("values is", values) if (values["beliefp2q1"] > values["beliefp2q9"]) or (values["beliefp2q2"] > values["beliefp2q10"])\ or (values["beliefp2q3"] > values["beliefp2q11"]) or (values["beliefp2q4"] > values["beliefp2q12"]): return "Minimum lines cannot be higher than maximum lines" if (values["beliefp2q13"] > values["beliefp2q21"]) or (values["beliefp2q14"] > values["beliefp2q22"])\ or (values["beliefp2q15"] > values["beliefp2q23"]) or (values["beliefp2q16"] > values["beliefp2q24"]): return "Minimum mistakes cannot be higher than maximum mistakes" class HeadsUp(Page): def before_next_page(self): import time player = self.player filename = "starter" + str(player.id_in_group) + ".txt" starter = open(filename, "w") x = time.time() starter.write( str(x) ) starter.close() class MyPage(Page): pass class ResultsWaitPage(WaitPage): pass class Results(Page): pass page_sequence = [Introduction1, Introduction2, Introduction3, Introduction4, Introduction5, Captcha, Captcha2, ErrorPage, Practice, PreBeliefsPage1, PreBeliefsPage2, HeadsUp]