mirror of
https://github.com/ankitects/anki.git
synced 2025-09-20 15:02:21 -04:00
correctly handle relearn steps of 1+ days
This commit is contained in:
parent
07ae142781
commit
7130f2c1fe
1 changed files with 19 additions and 9 deletions
|
@ -750,20 +750,30 @@ did = ? and queue = 2 and due <= ? limit ?""",
|
|||
card.ivl = self._nextLapseIvl(card, conf)
|
||||
card.factor = max(1300, card.factor-200)
|
||||
card.due = self.today + card.ivl
|
||||
# put back in the learn queue?
|
||||
# if suspended as a leech, nothing to do
|
||||
delay = 0
|
||||
if conf['delays']:
|
||||
if self._checkLeech(card, conf) and card.queue == -1:
|
||||
return delay
|
||||
# if no relearning steps, nothing to do
|
||||
if not conf['delays']:
|
||||
return delay
|
||||
# record rev due date for later
|
||||
if not card.odue:
|
||||
card.odue = card.due
|
||||
delay = self._delayForGrade(conf, 0)
|
||||
card.due = int(delay + time.time())
|
||||
# queue 1
|
||||
if card.due < self.dayCutoff:
|
||||
card.left = len(conf['delays'])
|
||||
card.left += self._leftToday(conf['delays'], card.left)*1000
|
||||
card.queue = 1
|
||||
self.lrnCount += card.left/1000
|
||||
# leech?
|
||||
if not self._checkLeech(card, conf) and conf['delays']:
|
||||
card.queue = 1
|
||||
heappush(self._lrnQueue, (card.due, card.id))
|
||||
else:
|
||||
# day learn queue
|
||||
ahead = ((card.due - self.dayCutoff) / 86400) + 1
|
||||
card.due = self.today + ahead
|
||||
card.queue = 3
|
||||
return delay
|
||||
|
||||
def _nextLapseIvl(self, card, conf):
|
||||
|
|
Loading…
Reference in a new issue