mirror of
https://github.com/ankitects/anki.git
synced 2025-12-12 22:36:55 -05:00
support did:[deck id] search
This commit is contained in:
parent
97778bec43
commit
9214c4a700
2 changed files with 7 additions and 0 deletions
|
|
@ -2,6 +2,7 @@
|
||||||
// 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
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
decks::DeckID,
|
||||||
err::{AnkiError, Result},
|
err::{AnkiError, Result},
|
||||||
notetype::NoteTypeID,
|
notetype::NoteTypeID,
|
||||||
};
|
};
|
||||||
|
|
@ -64,6 +65,7 @@ pub(super) enum SearchNode<'a> {
|
||||||
EditedInDays(u32),
|
EditedInDays(u32),
|
||||||
CardTemplate(TemplateKind),
|
CardTemplate(TemplateKind),
|
||||||
Deck(Cow<'a, str>),
|
Deck(Cow<'a, str>),
|
||||||
|
DeckID(DeckID),
|
||||||
NoteTypeID(NoteTypeID),
|
NoteTypeID(NoteTypeID),
|
||||||
NoteType(Cow<'a, str>),
|
NoteType(Cow<'a, str>),
|
||||||
Rated {
|
Rated {
|
||||||
|
|
@ -283,6 +285,7 @@ fn search_node_for_text_with_argument<'a>(
|
||||||
"mid" => SearchNode::NoteTypeID(val.parse()?),
|
"mid" => SearchNode::NoteTypeID(val.parse()?),
|
||||||
"nid" => SearchNode::NoteIDs(check_id_list(val)?),
|
"nid" => SearchNode::NoteIDs(check_id_list(val)?),
|
||||||
"cid" => SearchNode::CardIDs(check_id_list(val)?),
|
"cid" => SearchNode::CardIDs(check_id_list(val)?),
|
||||||
|
"did" => SearchNode::DeckID(val.parse()?),
|
||||||
"card" => parse_template(val.as_ref()),
|
"card" => parse_template(val.as_ref()),
|
||||||
"is" => parse_state(val.as_ref())?,
|
"is" => parse_state(val.as_ref())?,
|
||||||
"flag" => parse_flag(val.as_ref())?,
|
"flag" => parse_flag(val.as_ref())?,
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,9 @@ impl SqlWriter<'_> {
|
||||||
SearchNode::NoteTypeID(ntid) => {
|
SearchNode::NoteTypeID(ntid) => {
|
||||||
write!(self.sql, "n.mid = {}", ntid).unwrap();
|
write!(self.sql, "n.mid = {}", ntid).unwrap();
|
||||||
}
|
}
|
||||||
|
SearchNode::DeckID(did) => {
|
||||||
|
write!(self.sql, "c.did = {}", did).unwrap();
|
||||||
|
}
|
||||||
SearchNode::NoteType(notetype) => self.write_note_type(&norm(notetype))?,
|
SearchNode::NoteType(notetype) => self.write_note_type(&norm(notetype))?,
|
||||||
SearchNode::Rated { days, ease } => self.write_rated(*days, *ease)?,
|
SearchNode::Rated { days, ease } => self.write_rated(*days, *ease)?,
|
||||||
SearchNode::Tag(tag) => self.write_tag(&norm(tag))?,
|
SearchNode::Tag(tag) => self.write_tag(&norm(tag))?,
|
||||||
|
|
@ -505,6 +508,7 @@ impl SearchNode<'_> {
|
||||||
match self {
|
match self {
|
||||||
SearchNode::AddedInDays(_) => RequiredTable::Cards,
|
SearchNode::AddedInDays(_) => RequiredTable::Cards,
|
||||||
SearchNode::Deck(_) => RequiredTable::Cards,
|
SearchNode::Deck(_) => RequiredTable::Cards,
|
||||||
|
SearchNode::DeckID(_) => RequiredTable::Cards,
|
||||||
SearchNode::Rated { .. } => RequiredTable::Cards,
|
SearchNode::Rated { .. } => RequiredTable::Cards,
|
||||||
SearchNode::State(_) => RequiredTable::Cards,
|
SearchNode::State(_) => RequiredTable::Cards,
|
||||||
SearchNode::Flag(_) => RequiredTable::Cards,
|
SearchNode::Flag(_) => RequiredTable::Cards,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue