mirror of
https://github.com/ankitects/anki.git
synced 2025-09-19 14:32:22 -04:00
When updating all FSRS parameters at once, exclude suspended cards
This commit is contained in:
parent
f413274fba
commit
656cfe0b9c
2 changed files with 9 additions and 4 deletions
|
@ -22,7 +22,9 @@ use crate::scheduler::fsrs::memory_state::UpdateMemoryStateEntry;
|
|||
use crate::scheduler::fsrs::memory_state::UpdateMemoryStateRequest;
|
||||
use crate::scheduler::fsrs::weights::ignore_revlogs_before_ms_from_config;
|
||||
use crate::search::JoinSearches;
|
||||
use crate::search::Negated;
|
||||
use crate::search::SearchNode;
|
||||
use crate::search::StateKind;
|
||||
use crate::storage::comma_separated_ids;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
|
@ -267,9 +269,12 @@ impl Collection {
|
|||
None
|
||||
}
|
||||
});
|
||||
let search = SearchNode::DeckIdsWithoutChildren(comma_separated_ids(&search))
|
||||
.and(SearchNode::State(StateKind::Suspended).negated())
|
||||
.try_into_search()?;
|
||||
Ok(UpdateMemoryStateEntry {
|
||||
req: weights,
|
||||
search: SearchNode::DeckIdsWithoutChildren(comma_separated_ids(&search)),
|
||||
search,
|
||||
ignore_before: config
|
||||
.map(ignore_revlogs_before_ms_from_config)
|
||||
.unwrap_or(Ok(0.into()))?,
|
||||
|
|
|
@ -18,6 +18,7 @@ use crate::scheduler::fsrs::weights::single_card_revlog_to_items;
|
|||
use crate::scheduler::fsrs::weights::Weights;
|
||||
use crate::scheduler::states::fuzz::with_review_fuzz;
|
||||
use crate::search::Negated;
|
||||
use crate::search::Node;
|
||||
use crate::search::SearchNode;
|
||||
use crate::search::StateKind;
|
||||
|
||||
|
@ -38,7 +39,7 @@ pub(crate) struct UpdateMemoryStateRequest {
|
|||
|
||||
pub(crate) struct UpdateMemoryStateEntry {
|
||||
pub req: Option<UpdateMemoryStateRequest>,
|
||||
pub search: SearchNode,
|
||||
pub search: Node,
|
||||
pub ignore_before: TimestampMillis,
|
||||
}
|
||||
|
||||
|
@ -60,8 +61,7 @@ impl Collection {
|
|||
ignore_before,
|
||||
} in entries
|
||||
{
|
||||
let search =
|
||||
SearchBuilder::all([search.into(), SearchNode::State(StateKind::New).negated()]);
|
||||
let search = SearchBuilder::all([search, SearchNode::State(StateKind::New).negated()]);
|
||||
let revlog = self.revlog_for_srs(search)?;
|
||||
let reschedule = req.as_ref().map(|e| e.reschedule).unwrap_or_default();
|
||||
let last_revlog_info = if reschedule {
|
||||
|
|
Loading…
Reference in a new issue