mirror of
https://github.com/ankitects/anki.git
synced 2025-09-25 09:16:38 -04:00
deck.s -> deck.db
This commit is contained in:
parent
7b52a4e519
commit
d02a26309f
9 changed files with 48 additions and 48 deletions
|
@ -52,7 +52,7 @@ class ActiveTagsChooser(QDialog):
|
|||
("models", "select tags from models", "contents.png"),
|
||||
("cms", "select name from cardModels", "Anki_Card.png")):
|
||||
d = {}
|
||||
tagss = self.deck.s.column0(sql)
|
||||
tagss = self.deck.db.column0(sql)
|
||||
for tags in tagss:
|
||||
for tag in parseTags(tags):
|
||||
d[tag] = 1
|
||||
|
|
|
@ -218,7 +218,7 @@ question or answer on all cards."""), parent=self)
|
|||
self.modelChooser.deinit()
|
||||
self.editor.close()
|
||||
ui.dialogs.close("AddCards")
|
||||
self.parent.deck.s.flush()
|
||||
self.parent.deck.db.flush()
|
||||
self.parent.deck.rebuildCSS()
|
||||
self.parent.reset()
|
||||
saveGeom(self, "add")
|
||||
|
|
|
@ -165,7 +165,7 @@ where cards.factId = facts.id """
|
|||
query += sort
|
||||
else:
|
||||
# field value
|
||||
ret = self.deck.s.all(
|
||||
ret = self.deck.db.all(
|
||||
"select id, numeric from fieldModels where name = :name",
|
||||
name=self.sortKey[1])
|
||||
fields = ",".join([str(x[0]) for x in ret])
|
||||
|
@ -182,14 +182,14 @@ where cards.factId = facts.id """
|
|||
"and fields.factId = cards.factId" + ads +
|
||||
" order by cards.ordinal, %s") % (fields, order)
|
||||
# run the query
|
||||
self.cards = self.deck.s.all(query)
|
||||
self.cards = self.deck.db.all(query)
|
||||
if self.deck.getInt('reverseOrder'):
|
||||
self.cards.reverse()
|
||||
self.reset()
|
||||
|
||||
def updateCard(self, index):
|
||||
try:
|
||||
self.cards[index.row()] = self.deck.s.first("""
|
||||
self.cards[index.row()] = self.deck.db.first("""
|
||||
select id, question, answer, combinedDue, reps, factId, created, modified,
|
||||
interval, factor, noCount, type, (select tags from facts where
|
||||
facts.id = cards.factId), (select created from facts where
|
||||
|
@ -212,7 +212,7 @@ facts.id = cards.factId), firstAnswered from cards where id = :id""",
|
|||
|
||||
def getCard(self, index):
|
||||
try:
|
||||
return self.deck.s.query(Card).get(self.getCardID(index))
|
||||
return self.deck.db.query(Card).get(self.getCardID(index))
|
||||
except IndexError:
|
||||
return None
|
||||
|
||||
|
@ -368,7 +368,7 @@ class EditDeck(QMainWindow):
|
|||
self.config['iconSize']))
|
||||
self.dialog.toolBar.toggleViewAction().setText(_("Toggle Toolbar"))
|
||||
# flush all changes before we load
|
||||
self.deck.s.flush()
|
||||
self.deck.db.flush()
|
||||
self.model = DeckModel(self.parent, self.parent.deck)
|
||||
self.dialog.tableView.setSortingEnabled(False)
|
||||
self.dialog.tableView.setShowGrid(False)
|
||||
|
@ -457,7 +457,7 @@ class EditDeck(QMainWindow):
|
|||
("models", "select tags from models", "contents.png"),
|
||||
("cms", "select name from cardModels", "Anki_Card.png")):
|
||||
d = {}
|
||||
tagss = self.deck.s.column0(sql)
|
||||
tagss = self.deck.db.column0(sql)
|
||||
for tags in tagss:
|
||||
for tag in parseTags(tags):
|
||||
d[tag] = 1
|
||||
|
@ -553,20 +553,20 @@ class EditDeck(QMainWindow):
|
|||
"question", "answer", "created", "modified", "due", "interval",
|
||||
"reps", "factor", "noCount", "firstAnswered"):
|
||||
return
|
||||
old = self.deck.s.scalar("select sql from sqlite_master where name = :k",
|
||||
old = self.deck.db.scalar("select sql from sqlite_master where name = :k",
|
||||
k="ix_cards_sort")
|
||||
if old and key in old:
|
||||
return
|
||||
self.parent.setProgressParent(self)
|
||||
self.deck.startProgress(2)
|
||||
self.deck.updateProgress(_("Building Index..."))
|
||||
self.deck.s.statement("drop index if exists ix_cards_sort")
|
||||
self.deck.db.statement("drop index if exists ix_cards_sort")
|
||||
self.deck.updateProgress()
|
||||
if key in ("question", "answer"):
|
||||
key = key + " collate nocase"
|
||||
self.deck.s.statement(
|
||||
self.deck.db.statement(
|
||||
"create index ix_cards_sort on cards (%s)" % key)
|
||||
self.deck.s.statement("analyze")
|
||||
self.deck.db.statement("analyze")
|
||||
self.deck.finishProgress()
|
||||
self.parent.setProgressParent(None)
|
||||
|
||||
|
@ -788,14 +788,14 @@ class EditDeck(QMainWindow):
|
|||
self.dialog.tableView.selectionModel().selectedRows()]
|
||||
|
||||
def selectedFacts(self):
|
||||
return self.deck.s.column0("""
|
||||
return self.deck.db.column0("""
|
||||
select distinct factId from cards
|
||||
where id in (%s)""" % ",".join([
|
||||
str(self.model.cards[idx.row()][0]) for idx in
|
||||
self.dialog.tableView.selectionModel().selectedRows()]))
|
||||
|
||||
def selectedFactsAsCards(self):
|
||||
return self.deck.s.column0(
|
||||
return self.deck.db.column0(
|
||||
"select id from cards where factId in (%s)" %
|
||||
",".join([str(s) for s in self.selectedFacts()]))
|
||||
|
||||
|
@ -946,7 +946,7 @@ where id in (%s)""" % ",".join([
|
|||
sf = self.selectedFacts()
|
||||
if not sf:
|
||||
return
|
||||
mods = self.deck.s.column0("""
|
||||
mods = self.deck.db.column0("""
|
||||
select distinct modelId from facts
|
||||
where id in %s""" % ids2str(sf))
|
||||
if not len(mods) == 1:
|
||||
|
@ -955,7 +955,7 @@ where id in %s""" % ids2str(sf))
|
|||
parent=self)
|
||||
return
|
||||
# get cards to enable
|
||||
cms = [x.id for x in self.deck.s.query(Fact).get(sf[0]).\
|
||||
cms = [x.id for x in self.deck.db.query(Fact).get(sf[0]).\
|
||||
model.cardModels]
|
||||
d = AddCardChooser(self, cms)
|
||||
if not d.exec_():
|
||||
|
@ -965,7 +965,7 @@ where id in %s""" % ids2str(sf))
|
|||
self.parent.setProgressParent(self)
|
||||
self.deck.startProgress()
|
||||
self.deck.setUndoStart(n)
|
||||
facts = self.deck.s.query(Fact).filter(
|
||||
facts = self.deck.db.query(Fact).filter(
|
||||
text("id in %s" % ids2str(sf))).order_by(Fact.created).all()
|
||||
self.deck.updateProgress(_("Generating Cards..."))
|
||||
ids = []
|
||||
|
@ -986,7 +986,7 @@ where id in %s""" % ids2str(sf))
|
|||
|
||||
def onChangeModel(self):
|
||||
sf = self.selectedFacts()
|
||||
mods = self.deck.s.column0("""
|
||||
mods = self.deck.db.column0("""
|
||||
select distinct modelId from facts
|
||||
where id in %s""" % ids2str(sf))
|
||||
if not len(mods) == 1:
|
||||
|
@ -1088,7 +1088,7 @@ where id in %s""" % ids2str(sf))
|
|||
sf = self.selectedFacts()
|
||||
if not sf:
|
||||
return
|
||||
mods = self.deck.s.column0("""
|
||||
mods = self.deck.db.column0("""
|
||||
select distinct modelId from facts
|
||||
where id in %s""" % ids2str(sf))
|
||||
if not len(mods) == 1:
|
||||
|
@ -1151,12 +1151,12 @@ where id in %s""" % ids2str(sf))
|
|||
restoreGeom(win, "findDupes")
|
||||
fields = sorted(self.currentCard.fact.model.fieldModels, key=attrgetter("name"))
|
||||
# per-model data
|
||||
data = self.deck.s.all("""
|
||||
data = self.deck.db.all("""
|
||||
select fm.id, m.name || '>' || fm.name from fieldmodels fm, models m
|
||||
where fm.modelId = m.id""")
|
||||
data.sort(key=itemgetter(1))
|
||||
# all-model data
|
||||
data2 = self.deck.s.all("""
|
||||
data2 = self.deck.db.all("""
|
||||
select fm.id, fm.name from fieldmodels fm""")
|
||||
byName = {}
|
||||
for d in data2:
|
||||
|
@ -1291,7 +1291,7 @@ class AddCardChooser(QDialog):
|
|||
restoreGeom(self, "addCardModels")
|
||||
|
||||
def displayCards(self):
|
||||
self.cms = self.parent.deck.s.all("""
|
||||
self.cms = self.parent.deck.db.all("""
|
||||
select id, name, active from cardModels
|
||||
where id in %s
|
||||
order by ordinal""" % ids2str(self.cms))
|
||||
|
|
|
@ -36,10 +36,10 @@ class CardLayout(QDialog):
|
|||
else:
|
||||
self.model = factOrModel
|
||||
# see if there's an available fact
|
||||
id = self.deck.s.scalar(
|
||||
id = self.deck.db.scalar(
|
||||
"select id from facts where modelId = :id", id=self.model.id)
|
||||
if id:
|
||||
self.fact = self.deck.s.query(Fact).get(id)
|
||||
self.fact = self.deck.db.query(Fact).get(id)
|
||||
else:
|
||||
# generate a dummy one
|
||||
self.fact = self.deck.newFact(self.model)
|
||||
|
@ -51,8 +51,8 @@ class CardLayout(QDialog):
|
|||
self.plastiqueStyle = QStyleFactory.create("plastique")
|
||||
if self.card:
|
||||
# limited to an existing template
|
||||
self.cards = [self.deck.s.query(Card).get(id) for id in
|
||||
self.deck.s.column0(
|
||||
self.cards = [self.deck.db.query(Card).get(id) for id in
|
||||
self.deck.db.column0(
|
||||
"select id from cards where factId = :fid "
|
||||
"order by ordinal", fid=self.fact.id)]
|
||||
type = 0
|
||||
|
@ -210,7 +210,7 @@ class CardLayout(QDialog):
|
|||
self.form.allowEmptyAnswer.setChecked(card.allowEmptyAnswer)
|
||||
self.form.alignment.setCurrentIndex(card.questionAlign)
|
||||
self.form.typeAnswer.clear()
|
||||
self.typeFieldNames = self.deck.s.column0("""
|
||||
self.typeFieldNames = self.deck.db.column0("""
|
||||
select fieldModels.name as n from fieldModels, cardModels
|
||||
where cardModels.modelId = fieldModels.modelId
|
||||
and cardModels.id = :id
|
||||
|
@ -477,7 +477,7 @@ order by n""", id=card.id)
|
|||
f.name = _("Field %d") % (len(self.model.fieldModels) + 1)
|
||||
self.deck.addFieldModel(self.model, f)
|
||||
try:
|
||||
self.deck.s.refresh(self.fact)
|
||||
self.deck.db.refresh(self.fact)
|
||||
except:
|
||||
# not yet added
|
||||
self.updateFact()
|
||||
|
@ -488,7 +488,7 @@ order by n""", id=card.id)
|
|||
|
||||
def updateFact(self):
|
||||
oldFact = self.fact
|
||||
model = self.deck.s.query(Model).get(oldFact.model.id)
|
||||
model = self.deck.db.query(Model).get(oldFact.model.id)
|
||||
fact = self.deck.newFact(model)
|
||||
for field in fact.fields:
|
||||
try:
|
||||
|
|
|
@ -88,7 +88,7 @@ class FactEditor(object):
|
|||
def refresh(self):
|
||||
if self.fact:
|
||||
try:
|
||||
self.deck.s.refresh(self.fact)
|
||||
self.deck.db.refresh(self.fact)
|
||||
except InvalidRequestError:
|
||||
# not attached to session yet, add cards dialog will handle
|
||||
return
|
||||
|
@ -576,7 +576,7 @@ class FactEditor(object):
|
|||
"where fieldModelId = :fmid and value = :val and id != :id "
|
||||
"and chksum = :chk")
|
||||
val = self.textForField(field)
|
||||
return not self.deck.s.scalar(
|
||||
return not self.deck.db.scalar(
|
||||
req, val=val, fmid=field.fieldModel.id,
|
||||
id=field.id, chk=fieldChecksum(val))
|
||||
|
||||
|
@ -586,7 +586,7 @@ class FactEditor(object):
|
|||
old = self.fact.tags
|
||||
self.fact.tags = canonifyTags(unicode(self.tags.text()))
|
||||
if old != self.fact.tags:
|
||||
self.deck.s.flush()
|
||||
self.deck.db.flush()
|
||||
self.deck.updateFactTags([self.fact.id])
|
||||
self.fact.setModified(textChanged=True, deck=self.deck)
|
||||
self.deck.flushMod()
|
||||
|
|
|
@ -224,7 +224,7 @@ you can enter it here. Use \\t to represent tab."""),
|
|||
self.dialog.status.setText(txt)
|
||||
self.file = None
|
||||
self.maybePreview()
|
||||
self.parent.deck.s.flush()
|
||||
self.parent.deck.db.flush()
|
||||
self.parent.reset()
|
||||
self.modelChooser.deinit()
|
||||
|
||||
|
|
|
@ -392,7 +392,7 @@ Please do not file a bug report with Anki.<br>""")
|
|||
self.disableCardMenuItems()
|
||||
elif state == "deckFinished":
|
||||
self.currentCard = None
|
||||
self.deck.s.flush()
|
||||
self.deck.db.flush()
|
||||
self.hideButtons()
|
||||
self.disableCardMenuItems()
|
||||
self.switchToCongratsScreen()
|
||||
|
@ -417,7 +417,7 @@ Please do not file a bug report with Anki.<br>""")
|
|||
if self.lastState == "editCurrentFact":
|
||||
return self.moveToState("saveEdit")
|
||||
self.mainWin.actionRepeatAudio.setEnabled(False)
|
||||
self.deck.s.flush()
|
||||
self.deck.db.flush()
|
||||
self.showEditor()
|
||||
elif state == "saveEdit":
|
||||
self.mainWin.actionRepeatAudio.setEnabled(True)
|
||||
|
@ -491,10 +491,10 @@ Please do not file a bug report with Anki.<br>""")
|
|||
if self.state != "showAnswer":
|
||||
return
|
||||
# force refresh of card then remove from session as we update in pure sql
|
||||
self.deck.s.refresh(self.currentCard)
|
||||
self.deck.s.refresh(self.currentCard.fact)
|
||||
self.deck.s.refresh(self.currentCard.cardModel)
|
||||
self.deck.s.expunge(self.currentCard)
|
||||
self.deck.db.refresh(self.currentCard)
|
||||
self.deck.db.refresh(self.currentCard.fact)
|
||||
self.deck.db.refresh(self.currentCard.cardModel)
|
||||
self.deck.db.expunge(self.currentCard)
|
||||
# answer
|
||||
self.deck.answerCard(self.currentCard, quality)
|
||||
self.lastQuality = quality
|
||||
|
@ -514,7 +514,7 @@ Please do not file a bug report with Anki.<br>""")
|
|||
<b>%s</b>... is a <a href="http://ichi2.net/anki/wiki/Leeches">leech</a>.""")
|
||||
% stripHTML(stripSounds(self.currentCard.question)).\
|
||||
replace("\n", " ")[0:30])
|
||||
if isLeech and self.deck.s.scalar(
|
||||
if isLeech and self.deck.db.scalar(
|
||||
"select 1 from cards where id = :id and type < 0", id=cardId):
|
||||
txt += _(" It has been suspended.")
|
||||
self.setNotice(txt)
|
||||
|
@ -997,7 +997,7 @@ Debug info:\n%s""") % traceback.format_exc(), help="DeckErrors")
|
|||
self.onNew(path=path)
|
||||
# ensure all changes come to us
|
||||
self.deck.modified = 0
|
||||
self.deck.s.commit()
|
||||
self.deck.db.commit()
|
||||
self.deck.syncName = u"something"
|
||||
self.deck.lastLoaded = self.deck.modified
|
||||
if self.config['syncUsername'] and self.config['syncPassword']:
|
||||
|
@ -1667,14 +1667,14 @@ not be touched.""") %
|
|||
# counts & time for today
|
||||
todayStart = self.deck.failedCutoff - 86400
|
||||
sql = "select count(), sum(userTime) from revlog"
|
||||
(reps, time_) = self.deck.s.first(
|
||||
(reps, time_) = self.deck.db.first(
|
||||
sql + " where time > :start", start=todayStart)
|
||||
h['timeToday'] = sessionColour % (
|
||||
anki.utils.fmtTimeSpan(time_ or 0, short=True, point=1))
|
||||
h['repsToday'] = sessionColour % reps
|
||||
# and yesterday
|
||||
yestStart = todayStart - 86400
|
||||
(reps, time_) = self.deck.s.first(
|
||||
(reps, time_) = self.deck.db.first(
|
||||
sql + " where time > :start and time <= :end",
|
||||
start=yestStart, end=todayStart)
|
||||
h['timeTodayChg'] = str(
|
||||
|
@ -1684,10 +1684,10 @@ not be touched.""") %
|
|||
limit = self.deck.sessionTimeLimit
|
||||
start = self.deck.sessionStartTime or time.time() - limit
|
||||
start2 = self.deck.lastSessionStart or start - limit
|
||||
last10 = self.deck.s.scalar(
|
||||
last10 = self.deck.db.scalar(
|
||||
"select count(*) from revlog where time >= :t",
|
||||
t=start)
|
||||
last20 = self.deck.s.scalar(
|
||||
last20 = self.deck.db.scalar(
|
||||
"select count(*) from revlog where "
|
||||
"time >= :t and time < :t2",
|
||||
t=start2, t2=start)
|
||||
|
@ -2198,7 +2198,7 @@ it to your friends.
|
|||
if self.deck and not self.deck.syncName:
|
||||
if interactive:
|
||||
if (not self.config['mediaLocation']
|
||||
and self.deck.s.scalar("select 1 from media limit 1")):
|
||||
and self.deck.db.scalar("select 1 from media limit 1")):
|
||||
ui.utils.showInfo(_("""\
|
||||
Syncing sounds and images requires a free file synchronization service like \
|
||||
DropBox. Click help to learn more, and OK to continue syncing."""),
|
||||
|
|
|
@ -71,7 +71,7 @@ class ModelProperties(QDialog):
|
|||
if txt[0]:
|
||||
self.currentCard.name = txt[0]
|
||||
self.needRebuild = True
|
||||
self.deck.updateCardTags(self.deck.s.column0(
|
||||
self.deck.updateCardTags(self.deck.db.column0(
|
||||
"select id from cards where cardModelId = :id",
|
||||
id=self.currentCard.id))
|
||||
self.updateCards()
|
||||
|
|
|
@ -263,7 +263,7 @@ sync was aborted. Please report this error.""")
|
|||
# server to save, then save local
|
||||
client.server.finish()
|
||||
self.deck.lastLoaded = self.deck.modified
|
||||
self.deck.s.commit()
|
||||
self.deck.db.commit()
|
||||
self.setStatus(_("Sync complete."))
|
||||
else:
|
||||
changes = False
|
||||
|
|
Loading…
Reference in a new issue