updated failed card handling when cramming

- temp suspend all answered cards, regardless of type
- fails influence the standard scheduling too
This commit is contained in:
Damien Elmes 2010-11-21 13:39:28 +09:00
parent 37e269ab81
commit 76135dc8be

View file

@ -509,24 +509,23 @@ select count() from cards where type = 2 and combinedDue < :now
self.answerCard = self._answerCramCard self.answerCard = self._answerCramCard
self.spaceCards = self._spaceCramCards self.spaceCards = self._spaceCramCards
# reuse review early's code # reuse review early's code
self.answerPreSave = self._reviewEarlyPreSave self.answerPreSave = self._cramPreSave
self.cardLimit = self._cramCardLimit self.cardLimit = self._cramCardLimit
self.scheduler = "cram" self.scheduler = "cram"
def _cramPreSave(self, card, ease):
# prevent it from appearing in next queue fill
card.type += 6
def _spaceCramCards(self, card, space): def _spaceCramCards(self, card, space):
# if non-zero spacing, limit to 10 minutes or queue refill # if non-zero spacing, limit to 10 minutes or queue refill
if space > time.time(): if space > time.time():
self.spacedFacts[card.factId] = time.time() + 600 self.spacedFacts[card.factId] = time.time() + 600
def _answerCramCard(self, card, ease): def _answerCramCard(self, card, ease):
if ease == 1:
if self.cardQueue(card) != 0:
self.failedSoonCount += 1
self.revCount -= 1
self.requeueCard(card, None)
self.failedCramQueue.insert(0, [card.id, card.factId])
else:
self._answerCard(card, ease) self._answerCard(card, ease)
if ease == 1:
self.failedCramQueue.insert(0, [card.id, card.factId])
def _getCramCardId(self, check=True): def _getCramCardId(self, check=True):
self.checkDailyStats() self.checkDailyStats()