Replace remaining literal searches in aqt

This commit is contained in:
RumovZ 2021-01-28 11:19:07 +01:00
parent ea46e24662
commit 77765d4896
4 changed files with 23 additions and 13 deletions

View file

@ -2,6 +2,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html # License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
import aqt import aqt
from anki.collection import NamedFilter
from anki.consts import * from anki.consts import *
from aqt.qt import * from aqt.qt import *
from aqt.utils import TR, disable_help_button, showInfo, showWarning, tr from aqt.utils import TR, disable_help_button, showInfo, showWarning, tr
@ -159,26 +160,29 @@ class CustomStudy(QDialog):
dyn = self.mw.col.decks.get(did) dyn = self.mw.col.decks.get(did)
# and then set various options # and then set various options
if i == RADIO_FORGOT: if i == RADIO_FORGOT:
dyn["terms"][0] = ["rated:%d:1" % spin, DYN_MAX_SIZE, DYN_RANDOM] search = self.mw.col.search_string(forgot_in=spin)
dyn["terms"][0] = [search, DYN_MAX_SIZE, DYN_RANDOM]
dyn["resched"] = False dyn["resched"] = False
elif i == RADIO_AHEAD: elif i == RADIO_AHEAD:
dyn["terms"][0] = ["prop:due<=%d" % spin, DYN_MAX_SIZE, DYN_DUE] search = self.mw.col.search_string(due_in=spin)
dyn["terms"][0] = [search, DYN_MAX_SIZE, DYN_DUE]
dyn["resched"] = True dyn["resched"] = True
elif i == RADIO_PREVIEW: elif i == RADIO_PREVIEW:
dyn["terms"][0] = ["is:new added:%s" % spin, DYN_MAX_SIZE, DYN_OLDEST] search = self.mw.col.search_string(name=NamedFilter.NEW, added_in=spin)
dyn["terms"][0] = [search, DYN_MAX_SIZE, DYN_OLDEST]
dyn["resched"] = False dyn["resched"] = False
elif i == RADIO_CRAM: elif i == RADIO_CRAM:
type = f.cardType.currentRow() type = f.cardType.currentRow()
if type == TYPE_NEW: if type == TYPE_NEW:
terms = "is:new " terms = self.mw.col.search_string(name=NamedFilter.NEW)
ord = DYN_ADDED ord = DYN_ADDED
dyn["resched"] = True dyn["resched"] = True
elif type == TYPE_DUE: elif type == TYPE_DUE:
terms = "is:due " terms = self.mw.col.search_string(name=NamedFilter.DUE)
ord = DYN_DUE ord = DYN_DUE
dyn["resched"] = True dyn["resched"] = True
elif type == TYPE_REVIEW: elif type == TYPE_REVIEW:
terms = "-is:new " terms = self.mw.col.search_string(negate=True, name=NamedFilter.NEW)
ord = DYN_RANDOM ord = DYN_RANDOM
dyn["resched"] = True dyn["resched"] = True
else: else:
@ -187,7 +191,9 @@ class CustomStudy(QDialog):
dyn["resched"] = False dyn["resched"] = False
dyn["terms"][0] = [(terms + tags).strip(), spin, ord] dyn["terms"][0] = [(terms + tags).strip(), spin, ord]
# add deck limit # add deck limit
dyn["terms"][0][0] = 'deck:"%s" %s ' % (self.deck["name"], dyn["terms"][0][0]) dyn["terms"][0][0] = self.mw.col.search_string(
deck=self.deck["name"], searches=[dyn["terms"][0][0]]
)
self.mw.col.decks.save(dyn) self.mw.col.decks.save(dyn)
# generate cards # generate cards
self.created_custom_study = True self.created_custom_study = True

View file

@ -4,8 +4,8 @@
from typing import List, Optional from typing import List, Optional
import aqt import aqt
from anki.collection import InvalidInput, NamedFilter
from anki.lang import without_unicode_isolation from anki.lang import without_unicode_isolation
from anki.rsbackend import InvalidInput
from aqt.qt import * from aqt.qt import *
from aqt.utils import ( from aqt.utils import (
TR, TR,
@ -47,8 +47,12 @@ class DeckConf(QDialog):
self.initialSetup() self.initialSetup()
self.loadConf() self.loadConf()
if search: if search:
self.form.search.setText(search + " is:due") search = self.mw.col.search_string(searches=[search], name=NamedFilter.DUE)
self.form.search_2.setText(search + " is:new") self.form.search.setText(search)
search_2 = self.mw.col.search_string(
searches=[search], name=NamedFilter.NEW
)
self.form.search_2.setText(search_2)
self.form.search.selectAll() self.form.search.selectAll()
if self.mw.col.schedVer() == 1: if self.mw.col.schedVer() == 1:

View file

@ -1141,7 +1141,7 @@ title="%s" %s>%s</button>""" % (
deck = self.col.decks.current() deck = self.col.decks.current()
if not search: if not search:
if not deck["dyn"]: if not deck["dyn"]:
search = 'deck:"%s" ' % deck["name"] search = self.col.search_string(deck=deck["name"])
while self.col.decks.id_for_name( while self.col.decks.id_for_name(
without_unicode_isolation(tr(TR.QT_MISC_FILTERED_DECK, val=n)) without_unicode_isolation(tr(TR.QT_MISC_FILTERED_DECK, val=n))
): ):

View file

@ -71,8 +71,8 @@ class Overview:
elif url == "opts": elif url == "opts":
self.mw.onDeckConf() self.mw.onDeckConf()
elif url == "cram": elif url == "cram":
deck = self.mw.col.decks.current() deck = self.mw.col.decks.current()["name"]
self.mw.onCram("'deck:%s'" % deck["name"]) self.mw.onCram(self.mw.col.search_string(deck=deck))
elif url == "refresh": elif url == "refresh":
self.mw.col.sched.rebuild_filtered_deck(self.mw.col.decks.selected()) self.mw.col.sched.rebuild_filtered_deck(self.mw.col.decks.selected())
self.mw.reset() self.mw.reset()