From faa3c7134b75636d863b76d4743a2945fff200ad Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Sun, 20 May 2012 19:37:43 +0900 Subject: [PATCH] find and cards with invalid dids on deck list --- anki/decks.py | 7 +++++++ anki/sched.py | 1 + 2 files changed, 8 insertions(+) diff --git a/anki/decks.py b/anki/decks.py index 4bf7d55ab..67f4b6457 100644 --- a/anki/decks.py +++ b/anki/decks.py @@ -368,6 +368,13 @@ class DeckManager(object): return self.col.db.list("select id from cards where did in "+ ids2str(dids)) + def recoverOrphans(self): + dids = self.decks.keys() + mod = self.col.db.mod + self.col.db.execute("update cards set did = 1 where did not in "+ + ids2str(dids)) + self.col.db.mod = mod + # Deck selection ############################################################# diff --git a/anki/sched.py b/anki/sched.py index 060d392a4..906e5ee9f 100644 --- a/anki/sched.py +++ b/anki/sched.py @@ -176,6 +176,7 @@ order by due""" % self._deckLimit(), self._checkDay() if self._clearOverdue: self.removeFailed(expiredOnly=True) + self.col.decks.recoverOrphans() decks = self.col.decks.all() decks.sort(key=itemgetter('name')) lims = {}