From e5622c70dec6cb09296f21f4274f10680d7ff5a9 Mon Sep 17 00:00:00 2001 From: Mikhail Mitrofanov Date: Fri, 11 Sep 2026 14:02:57 +0300 Subject: [PATCH] Fix deck filter --- src/core/deck.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/core/deck.rs b/src/core/deck.rs index 74c4343..29c65c8 100644 --- a/src/core/deck.rs +++ b/src/core/deck.rs @@ -1,3 +1,4 @@ +use std::collections::HashMap; use crate::app::AppState; use crate::core::srs::OrderModule::{Fsrs, RandomSRS, SemiRandomSRS, WorstWordsSRS}; use crate::core::srs::{ @@ -13,6 +14,7 @@ use log::info; use rhai::{Engine, Scope}; use std::sync::Arc; use std::time::Instant; +use crate::data::Id; #[derive(Clone)] pub struct DeckData { @@ -154,10 +156,11 @@ impl DeckData { if let Ok(ast) = ast { let groups = state.word_groups.read().iter().cloned().collect::>(); let dictionary = &state.dictionary.read(); + let fields : HashMap = HashMap::from_iter(state.custom_fields.read().iter().map(|f| (f.id, f.identifier.clone()))); let query = dictionary.query_par(Arc::new(move |word| { let mut more = rhai::Map::new(); - for iced in &word.additional { - more.insert(iced.0.clone().into(), iced.1.clone().into()); + for kv in &word.additional { + more.insert(fields[&kv.0].clone().into(), kv.1.clone().into()); } let mut scope = Scope::new(); let group_name = groups[groups