Do not reset original_due when card stays in filtered deck (#2988)

This commit is contained in:
Abdo 2024-02-07 06:27:54 +03:00 committed by GitHub
parent 146a3d936e
commit 85a8824c8c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 4 additions and 5 deletions

View file

@ -657,7 +657,6 @@ def test_filt_reviewing_early_normal():
# answer 'good' # answer 'good'
col.sched.answerCard(c, 3) col.sched.answerCard(c, 3)
assert c.due == col.sched.today + c.ivl assert c.due == col.sched.today + c.ivl
assert not c.odue
# should not be in learning # should not be in learning
assert c.queue == QUEUE_TYPE_REV assert c.queue == QUEUE_TYPE_REV
# should be logged as a cram rep # should be logged as a cram rep

View file

@ -31,7 +31,6 @@ impl CardStateUpdater {
if self.card.original_due != 0 { if self.card.original_due != 0 {
self.card.original_due self.card.original_due
} else { } else {
// v2 scheduler resets original_due on first answer
self.card.due self.card.due
} }
} }

View file

@ -148,7 +148,10 @@ impl CardStateUpdater {
match filtered { match filtered {
FilteredState::Preview(next) => self.apply_preview_state(current, next), FilteredState::Preview(next) => self.apply_preview_state(current, next),
FilteredState::Rescheduling(next) => { FilteredState::Rescheduling(next) => {
self.apply_normal_study_state(current, next.original_state) let revlog = self.apply_normal_study_state(current, next.original_state);
self.card.original_due = self.card.due;
revlog
} }
} }
} }
@ -163,7 +166,6 @@ impl CardStateUpdater {
next: NormalState, next: NormalState,
) -> RevlogEntryPartial { ) -> RevlogEntryPartial {
self.card.reps += 1; self.card.reps += 1;
self.card.original_due = 0;
self.card.desired_retention = self.desired_retention; self.card.desired_retention = self.desired_retention;
let revlog = match next { let revlog = match next {

View file

@ -70,7 +70,6 @@ impl Card {
self.deck_id = self.original_deck_id; self.deck_id = self.original_deck_id;
self.original_deck_id.0 = 0; self.original_deck_id.0 = 0;
// original_due is cleared if card answered in filtered deck
if self.original_due != 0 { if self.original_due != 0 {
self.due = self.original_due; self.due = self.original_due;
} }