deck: searches should find it both original and current deck

This commit is contained in:
Damien Elmes 2012-03-19 22:53:40 +09:00
parent 820308e45e
commit 7c712274d8

View file

@ -197,13 +197,20 @@ flds %s like :_text_%d escape '\\')""" % (extra, c, extra, c))
self.lims['preds'].append("mid %s in %s" % (extra, ids2str(ids))) self.lims['preds'].append("mid %s in %s" % (extra, ids2str(ids)))
def _findDeck(self, val, isNeg): def _findDeck(self, val, isNeg):
extra = "not" if isNeg else ""
if val.lower() == "current": if val.lower() == "current":
id = self.col.decks.current()['id'] id = self.col.decks.current()['id']
else: else:
id = self.col.decks.id(val, create=False) or 0 id = self.col.decks.id(val, create=False) or 0
ids = [id] + [a[1] for a in self.col.decks.children(id)] ids = [id] + [a[1] for a in self.col.decks.children(id)]
self.lims['preds'].append("c.did %s in %s" % (extra, ids2str(ids))) sids = ids2str(ids)
if not isNeg:
# normal search
self.lims['preds'].append(
"(c.odid in %s or c.did in %s)" % (sids, sids))
else:
# inverted search
self.lims['preds'].append(
"(c.odid not in %s and c.did not in %s)" % (sids, sids))
def _findTemplate(self, val, isNeg): def _findTemplate(self, val, isNeg):
lims = [] lims = []