diff --git a/anki/db.py b/anki/db.py index 6fe6665b8..b18bc3487 100644 --- a/anki/db.py +++ b/anki/db.py @@ -25,7 +25,8 @@ except ImportError: sqlite.enable_shared_cache(True) from sqlalchemy import (Table, Integer, Float, Column, MetaData, - ForeignKey, Boolean, String, Date, UniqueConstraint) + ForeignKey, Boolean, String, Date, + UniqueConstraint, Index) from sqlalchemy import create_engine from sqlalchemy.orm import mapper, sessionmaker, relation, backref, \ object_session as _object_session @@ -48,8 +49,7 @@ def newWarn(*args, **kwargs): oldWarn(*args, **kwargs) util.warn = newWarn - - +# shared metadata metadata = MetaData() # this class assumes the provided session is called with transactional=False diff --git a/anki/deck.py b/anki/deck.py index c21445d86..46afa5c12 100644 --- a/anki/deck.py +++ b/anki/deck.py @@ -1188,6 +1188,12 @@ from cards, facts, models where cards.factId == facts.id and facts.modelId == models.id %s""" % where) + def cardsWithNoTags(self): + return self.s.column0(""" +select cards.id from cards, facts where +cards.tags = "" and facts.tags = "" +and cards.factId = facts.id""") + def allTags(self): "Return a hash listing tags in model, fact and cards." return list(set(parseTags(",".join([x[1] for x in self.tagsList()]))))