more last interval preservation into cram scheduler code

This commit is contained in:
Damien Elmes 2011-02-02 22:10:44 +09:00
parent 09e6e1bd65
commit 338838583e

View file

@ -564,12 +564,14 @@ order by combinedDue limit %d""" % self.queueLimit), lim=self.dueCutoff)
def _cramPreSave(self, card, ease): def _cramPreSave(self, card, ease):
# prevent it from appearing in next queue fill # prevent it from appearing in next queue fill
card.lastInterval = self.cramLastInterval
card.type += 6 card.type += 6
def _spaceCramCards(self, card): def _spaceCramCards(self, card):
self.spacedFacts[card.factId] = time.time() + self.newSpacing self.spacedFacts[card.factId] = time.time() + self.newSpacing
def _answerCramCard(self, card, ease): def _answerCramCard(self, card, ease):
self.cramLastInterval = card.lastInterval
self._answerCard(card, ease) self._answerCard(card, ease)
if ease == 1: if ease == 1:
self.failedCramQueue.insert(0, [card.id, card.factId]) self.failedCramQueue.insert(0, [card.id, card.factId])
@ -775,9 +777,7 @@ limit %s""" % (self.cramOrder, self.queueLimit)))
# update card details # update card details
last = card.interval last = card.interval
card.interval = self.nextInterval(card, ease) card.interval = self.nextInterval(card, ease)
if lastDelay >= 0: card.lastInterval = last
# keep last interval if reviewing early
card.lastInterval = last
if card.reps: if card.reps:
# only update if card was not new # only update if card was not new
card.lastDue = card.due card.lastDue = card.due