find and cards with invalid dids on deck list

This commit is contained in:
Damien Elmes 2012-05-20 19:37:43 +09:00
parent e644cc1faa
commit faa3c7134b
2 changed files with 8 additions and 0 deletions

View file

@ -368,6 +368,13 @@ class DeckManager(object):
return self.col.db.list("select id from cards where did in "+ return self.col.db.list("select id from cards where did in "+
ids2str(dids)) 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 # Deck selection
############################################################# #############################################################

View file

@ -176,6 +176,7 @@ order by due""" % self._deckLimit(),
self._checkDay() self._checkDay()
if self._clearOverdue: if self._clearOverdue:
self.removeFailed(expiredOnly=True) self.removeFailed(expiredOnly=True)
self.col.decks.recoverOrphans()
decks = self.col.decks.all() decks = self.col.decks.all()
decks.sort(key=itemgetter('name')) decks.sort(key=itemgetter('name'))
lims = {} lims = {}