diff --git a/anki/sched.py b/anki/sched.py index 0244fcea6..0b9d19838 100644 --- a/anki/sched.py +++ b/anki/sched.py @@ -369,8 +369,8 @@ limit %d""" % (self._groupLimit(), self.reportLimit), lim=self.dayCutoff) ivl = card.ivl if leaving else -(self._delayForGrade(conf, card.grade)) def log(): self.deck.db.execute( - "insert into revlog values (?,?,?,?,?,?,?,?,?)", - int(time.time()*1000), card.id, ease, card.cycles, + "insert into revlog values (?,?,?,?,?,?,?,?)", + int(time.time()*1000), card.id, ease, ivl, lastIvl, card.factor, taken, type) try: @@ -469,8 +469,8 @@ queue = 2 %s and due <= :lim order by %s limit %d""" % ( taken = min(card.timeTaken(), self._cardConf(card)['maxTaken']*1000) def log(): self.deck.db.execute( - "insert into revlog values (?,?,?,?,?,?,?,?,?)", - int(time.time()*1000), card.id, ease, card.reps, + "insert into revlog values (?,?,?,?,?,?,?,?)", + int(time.time()*1000), card.id, ease, card.ivl, card.lastIvl, card.factor, taken, 1) try: diff --git a/anki/storage.py b/anki/storage.py index f0c92b430..644a076f0 100644 --- a/anki/storage.py +++ b/anki/storage.py @@ -138,7 +138,6 @@ create table if not exists revlog ( time integer primary key, cid integer not null, ease integer not null, - rep integer not null, ivl integer not null, lastIvl integer not null, factor integer not null, @@ -326,7 +325,7 @@ name, "{}", "{}", ?, "" from models2""", simplejson.dumps( r = [] for row in db.execute(""" select -cast(time*1000 as int), cardId, ease, reps, +cast(time*1000 as int), cardId, ease, cast(nextInterval as int), cast(lastInterval as int), cast(nextFactor*1000 as int), cast(min(thinkingTime, 60)*1000 as int), yesCount from reviewHistory"""): @@ -340,10 +339,9 @@ yesCount from reviewHistory"""): # no ease 0 anymore row[2] = row[2] or 1 # determine type, overwriting yesCount - reps = row[3] - newInt = row[4] - oldInt = row[5] - yesCnt = row[8] + newInt = row[3] + oldInt = row[4] + yesCnt = row[7] # yesCnt included the current answer if row[2] > 1: yesCnt -= 1 @@ -351,16 +349,16 @@ yesCount from reviewHistory"""): # new or failed if yesCnt: # type=relrn - row[8] = 2 + row[7] = 2 else: # type=lrn - row[8] = 0 + row[7] = 0 else: # type=rev - row[8] = 1 + row[7] = 1 r.append(row) db.executemany( - "insert or ignore into revlog values (?,?,?,?,?,?,?,?,?)", r) + "insert or ignore into revlog values (?,?,?,?,?,?,?,?)", r) db.execute("drop table reviewHistory") # longer migrations diff --git a/tests/test_sched.py b/tests/test_sched.py index 833193060..0d159b704 100644 --- a/tests/test_sched.py +++ b/tests/test_sched.py @@ -103,9 +103,8 @@ def test_learn(): # check log is accurate log = d.db.first("select * from revlog order by time desc") assert log[2] == 2 - assert log[3] == 2 - assert log[4] == -180 - assert log[5] == -30 + assert log[3] == -180 + assert log[4] == -30 # pass again d.sched.answerCard(c, 2) # it should by due in 10 minutes