Fixing partial adding bug

This commit is contained in:
2026-08-16 14:23:00 +03:00
parent 51c8d7be74
commit 11b38479c1
4 changed files with 41 additions and 63 deletions
+1 -26
View File
@@ -655,7 +655,7 @@ impl CardSetSettings {
count: None,
worst_words_list: None,
open_mode: OrderMode::Default,
append_mode: AppendMode::Full,
append_mode: AppendMode::Manual,
}
}
@@ -719,29 +719,4 @@ impl CardSetSettings {
pub fn require_speech(&self) -> bool {
self.forward == "speech" || self.backward == "speech"
}
pub(crate) fn update_worst_words(&mut self, state: &AppState) {
if self.worst_words_list.is_some() {
return;
}
let connection = &state.connection;
let mut stats = load_stats_of_set(self, connection);
stats.sort_by_key(|s| s.calculated_score() as i32);
let avg = stats.iter().map(|s| s.calculated_score()).sum::<f32>() / stats.len() as f32;
let avg = avg * 0.7;
let bad: Vec<WordData> = stats
.iter()
.take_while(|word| word.calculated_score() < avg)
.map(|stat| {
state.dictionary[state
.dictionary
.binary_search_by_key(&stat.word_id, |x| x.id)
.unwrap()]
.clone()
})
.collect();
self.worst_words_list = Some(bad.clone());
}
}