mirror of
https://github.com/ankitects/anki.git
synced 2025-09-19 06:22:22 -04:00
don't touch due cards either
This commit is contained in:
parent
ec1a4f7458
commit
fa5fca5941
2 changed files with 50 additions and 10 deletions
|
@ -746,15 +746,17 @@ did = ? and queue = 2 and due <= ? limit ?""",
|
||||||
|
|
||||||
def _rescheduleLapse(self, card):
|
def _rescheduleLapse(self, card):
|
||||||
conf = self._lapseConf(card)
|
conf = self._lapseConf(card)
|
||||||
card.lapses += 1
|
|
||||||
card.lastIvl = card.ivl
|
card.lastIvl = card.ivl
|
||||||
card.ivl = self._nextLapseIvl(card, conf)
|
if self._resched(card):
|
||||||
card.factor = max(1300, card.factor-200)
|
card.lapses += 1
|
||||||
card.due = self.today + card.ivl
|
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?
|
# put back in the learn queue?
|
||||||
delay = 0
|
delay = 0
|
||||||
if conf['delays']:
|
if conf['delays']:
|
||||||
card.odue = card.due
|
if not card.odue:
|
||||||
|
card.odue = card.due
|
||||||
delay = self._delayForGrade(conf, 0)
|
delay = self._delayForGrade(conf, 0)
|
||||||
card.due = int(delay + time.time())
|
card.due = int(delay + time.time())
|
||||||
card.left = len(conf['delays'])
|
card.left = len(conf['delays'])
|
||||||
|
@ -772,10 +774,13 @@ did = ? and queue = 2 and due <= ? limit ?""",
|
||||||
def _rescheduleRev(self, card, ease):
|
def _rescheduleRev(self, card, ease):
|
||||||
# update interval
|
# update interval
|
||||||
card.lastIvl = card.ivl
|
card.lastIvl = card.ivl
|
||||||
self._updateRevIvl(card, ease)
|
if self._resched(card):
|
||||||
# then the rest
|
self._updateRevIvl(card, ease)
|
||||||
card.factor = max(1300, card.factor+[-150, 0, 150][ease-2])
|
# then the rest
|
||||||
card.due = self.today + card.ivl
|
card.factor = max(1300, card.factor+[-150, 0, 150][ease-2])
|
||||||
|
card.due = self.today + card.ivl
|
||||||
|
else:
|
||||||
|
card.due = card.odue
|
||||||
if card.odid:
|
if card.odid:
|
||||||
card.did = card.odid
|
card.did = card.odid
|
||||||
card.odid = 0
|
card.odid = 0
|
||||||
|
|
|
@ -689,7 +689,42 @@ def test_cram_resched():
|
||||||
c.load()
|
c.load()
|
||||||
assert c.ivl == 100
|
assert c.ivl == 100
|
||||||
assert c.due == d.sched.today + 25
|
assert c.due == d.sched.today + 25
|
||||||
# due cards
|
# due cards - pass
|
||||||
|
c = cardcopy
|
||||||
|
c.due = -25
|
||||||
|
c.flush()
|
||||||
|
d.sched.rebuildDyn(did)
|
||||||
|
d.reset()
|
||||||
|
c = d.sched.getCard()
|
||||||
|
d.sched.answerCard(c, 3)
|
||||||
|
d.sched.emptyDyn(did)
|
||||||
|
c.load()
|
||||||
|
assert c.ivl == 100
|
||||||
|
assert c.due == -25
|
||||||
|
# fail
|
||||||
|
c = cardcopy
|
||||||
|
c.due = -25
|
||||||
|
c.flush()
|
||||||
|
d.sched.rebuildDyn(did)
|
||||||
|
d.reset()
|
||||||
|
c = d.sched.getCard()
|
||||||
|
d.sched.answerCard(c, 1)
|
||||||
|
d.sched.emptyDyn(did)
|
||||||
|
c.load()
|
||||||
|
assert c.ivl == 100
|
||||||
|
assert c.due == -25
|
||||||
|
# fail with normal grad
|
||||||
|
c = cardcopy
|
||||||
|
c.due = -25
|
||||||
|
c.flush()
|
||||||
|
d.sched.rebuildDyn(did)
|
||||||
|
d.reset()
|
||||||
|
c = d.sched.getCard()
|
||||||
|
d.sched.answerCard(c, 1)
|
||||||
|
d.sched.answerCard(c, 3)
|
||||||
|
c.load()
|
||||||
|
assert c.ivl == 100
|
||||||
|
assert c.due == -25
|
||||||
|
|
||||||
def test_adjIvl():
|
def test_adjIvl():
|
||||||
d = getEmptyDeck()
|
d = getEmptyDeck()
|
||||||
|
|
Loading…
Reference in a new issue