Only run empty_filtered_deck on filtered decks. (#4139)

Fixes #4138.
This commit is contained in:
Matt Brubeck 2025-06-30 02:47:14 -07:00 committed by GitHub
parent 0be87b887e
commit 7720c7de1a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 9 additions and 5 deletions

View file

@ -28,7 +28,7 @@ impl Collection {
let card_count = match deck.kind {
DeckKind::Normal(_) => self.delete_all_cards_in_normal_deck(deck.id)?,
DeckKind::Filtered(_) => {
self.return_all_cards_in_filtered_deck(deck.id)?;
self.return_all_cards_in_filtered_deck(deck)?;
0
}
};

View file

@ -64,7 +64,8 @@ impl Collection {
pub fn empty_filtered_deck(&mut self, did: DeckId) -> Result<OpOutput<()>> {
self.transact(Op::EmptyFilteredDeck, |col| {
col.return_all_cards_in_filtered_deck(did)
let deck = col.get_deck(did)?.or_not_found(did)?;
col.return_all_cards_in_filtered_deck(&deck)
})
}
@ -78,8 +79,11 @@ impl Collection {
}
impl Collection {
pub(crate) fn return_all_cards_in_filtered_deck(&mut self, did: DeckId) -> Result<()> {
let cids = self.storage.all_cards_in_single_deck(did)?;
pub(crate) fn return_all_cards_in_filtered_deck(&mut self, deck: &Deck) -> Result<()> {
if !deck.is_filtered() {
return Err(FilteredDeckError::FilteredDeckRequired.into());
}
let cids = self.storage.all_cards_in_single_deck(deck.id)?;
self.return_cards_to_home_deck(&cids)
}
@ -195,7 +199,7 @@ impl Collection {
timing,
};
self.return_all_cards_in_filtered_deck(deck.id)?;
self.return_all_cards_in_filtered_deck(deck)?;
self.build_filtered_deck(ctx)
}