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 -*-
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
import aqt
from anki.collection import NamedFilter
from anki.consts import *
from aqt.qt import *
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)
# and then set various options
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
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
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
elif i == RADIO_CRAM:
type = f.cardType.currentRow()
if type == TYPE_NEW:
terms = "is:new "
terms = self.mw.col.search_string(name=NamedFilter.NEW)
ord = DYN_ADDED
dyn["resched"] = True
elif type == TYPE_DUE:
terms = "is:due "
terms = self.mw.col.search_string(name=NamedFilter.DUE)
ord = DYN_DUE
dyn["resched"] = True
elif type == TYPE_REVIEW:
terms = "-is:new "
terms = self.mw.col.search_string(negate=True, name=NamedFilter.NEW)
ord = DYN_RANDOM
dyn["resched"] = True
else:
@ -187,7 +191,9 @@ class CustomStudy(QDialog):
dyn["resched"] = False
dyn["terms"][0] = [(terms + tags).strip(), spin, ord]
# 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)
# generate cards
self.created_custom_study = True

View file

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

View file

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

View file

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