From 86e3c19ad608af9582399c12fa66f0a2238e14c6 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Mon, 5 Jan 2009 14:57:28 +0900 Subject: [PATCH] add review time graph --- anki/graphs.py | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/anki/graphs.py b/anki/graphs.py index ab12f1fff..d3f12e45e 100644 --- a/anki/graphs.py +++ b/anki/graphs.py @@ -21,6 +21,7 @@ dueCumulC = "#ff8080" reviewNewC = "#80b3ff" reviewYoungC = "#5555ff" reviewMatureC = "#0f5aff" +reviewTimeC = "#0fcaff" easesNewC = "#80b3ff" easesYoungC = "#5555ff" @@ -104,14 +105,25 @@ select day, reps-(newEase0+newEase1+newEase2+newEase3+newEase4) as combinedYoungReps, reps as combinedNewReps from stats +where type = 1""") + + dayTimes = self.deck.s.all(""" +select day, reviewTime +from stats where type = 1""") todaydt = datetime.datetime(*list(time.localtime(time.time())[:3])) - for dest, source in [("dayRepsNew", "combinedNewReps"), ("dayRepsYoung", "combinedYoungReps"), ("dayRepsMature", "matureReps")]: + for dest, source in [("dayRepsNew", "combinedNewReps"), + ("dayRepsYoung", "combinedYoungReps"), + ("dayRepsMature", "matureReps")]: self.stats[dest] = dict( map(lambda dr: (-(todaydt -datetime.datetime( *(int(x)for x in dr["day"].split("-")))).days, dr[source]), dayReps)) + self.stats['dayTimes'] = dict( + map(lambda dr: (-(todaydt -datetime.datetime( + *(int(x)for x in dr["day"].split("-")))).days, dr["reviewTime"]/60.0), dayTimes)) + def nextDue(self, days=30): self.calcStats() fig = Figure(figsize=(self.width, self.height), dpi=self.dpi) @@ -168,6 +180,18 @@ where type = 1""") return fig + def timeSpent(self, days=30): + self.calcStats() + fig = Figure(figsize=(self.width, self.height), dpi=self.dpi) + times = self.stats['dayTimes'] + self.addMissing(times, -days, 0) + times = self.unzip(times.items()) + graph = fig.add_subplot(111) + self.filledGraph(graph, days, reviewTimeC, *times) + graph.set_xlim(xmin=-days, xmax=0) + graph.set_ylim(ymax=max(a for a in times[1]) + 10) + return fig + def cumulativeDue(self, days=30): self.calcStats() fig = Figure(figsize=(self.width, self.height), dpi=self.dpi)