from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants # {% include 'grading_task_end/chart1.html' %} class MyPage(Page): pass class GradingTask(Page): form_model='player' form_fields =['line1', 'line2', 'line3', 'line4', 'line5'] def vars_for_template(self): rn = self.round_number player = self.player image = "grading_task/"+ str(rn) +".jpg" #filename = "mistakes" + str(player.id_in_group) + ".txt" #misses = open(filename, "r") #misses = misses.read() #player.MistakesPerScreen = misses return dict( image = image ) def before_next_page(self): player = self.player rn = self.round_number consistent = "Q" + str(rn) ds = Constants.rows correct = [] for i in range(5): correct.append(ds[i][consistent]) player.CountMistakes(player.line1, correct[0]) player.CountMistakes(player.line2, correct[1]) player.CountMistakes(player.line3, correct[2]) player.CountMistakes(player.line4, correct[3]) player.CountMistakes(player.line5, correct[4]) import time currentTime = time.time() filename = "startTime" + str(player.id_in_group) + ".txt" timeStamp = open(filename, "r") timeStamp = timeStamp.read() timeStamp = int(timeStamp) filename = "starter" + str(player.id_in_group) + ".txt" starter = open(filename, "r") starter = starter.read() starter = float(starter) filename = "TimePerScreen" + str(player.id_in_group) + ".txt" tps = open(filename, "a") y = currentTime - starter x = round(y, 4) tps.write("," + str(x)) tps.close() if currentTime - starter >= timeStamp: filename = "yaxis" + str(player.id_in_group) + ".txt" yaxis = open(filename, "a") x = round( player.CalculateAmount() , 4 ) yaxis.write(str(x) + ",") yaxis.close() filename = "startTime" + str(player.id_in_group) + ".txt" timeMark = open(filename, "w") timeMark.write(str(timeStamp + Constants.timeIncriment)) timeMark.close() filename = "numImages" + str(player.id_in_group) + ".txt" rounds = open(filename, "a") rounds.write(str(self.round_number) + ",") rounds.close() if player.round_number == 60: filename = "yaxis" + str(player.id_in_group) + ".txt" yaxis = open(filename, "a") x = round( player.CalculateAmount() , 4 ) yaxis.write(str(x) + ",") yaxis.close() """ filename = "TimePerScreen" + str(player.id_in_group) + ".txt" tps = open(filename, "r") tps = tps.read() tps = tps.split(",") var = "0" try: for i in range(1, len(tps)): x = round(float(tps[i]) - float(tps[i - 1]), 3) var = var + "," + str(x) except: nothing = "nothing" player.ScreenTimeString = var filename = "mistakes" + str(player.id_in_group) + ".txt" misses = open(filename, "r") misses = misses.read() player.MistakesPerScreen = misses """ def is_displayed(self): import time player = self.player currentTime = time.time() filename = "starter" + str(player.id_in_group) + ".txt" starter = open(filename, "r") starter = starter.read() starter = float(starter) decider = (currentTime - starter) <= 240 return decider class ResultsWaitPage(WaitPage): pass class Results(Page): pass page_sequence = [GradingTask]