mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 14:02:21 -04:00
Show preset and original deck in card info (#3055)
* Show preset and original deck in card info * Make original_deck optional
This commit is contained in:
parent
184ad8068e
commit
9228c87b3a
4 changed files with 29 additions and 1 deletions
|
@ -11,6 +11,7 @@ card-stats-new-card-position = Position
|
|||
card-stats-card-template = Card Type
|
||||
card-stats-note-type = Note Type
|
||||
card-stats-deck-name = Deck
|
||||
card-stats-preset = Preset
|
||||
card-stats-note-id = Note ID
|
||||
card-stats-card-id = Card ID
|
||||
card-stats-review-log-rating = Rating
|
||||
|
|
|
@ -56,6 +56,8 @@ message CardStatsResponse {
|
|||
// not set if due date/state not available
|
||||
optional float fsrs_retrievability = 19;
|
||||
string custom_data = 20;
|
||||
string preset = 21;
|
||||
optional string original_deck = 22;
|
||||
}
|
||||
|
||||
message GraphsRequest {
|
||||
|
|
|
@ -41,6 +41,18 @@ impl Collection {
|
|||
.unwrap()
|
||||
.current_retrievability(state.into(), days)
|
||||
});
|
||||
|
||||
let original_deck = if card.original_deck_id == DeckId(0) {
|
||||
deck.clone()
|
||||
} else {
|
||||
self.storage
|
||||
.get_deck(card.original_deck_id)?
|
||||
.or_not_found(card.original_deck_id)?
|
||||
};
|
||||
let config_id = original_deck.config_id().unwrap();
|
||||
let preset = self
|
||||
.get_deck_config(config_id, true)?
|
||||
.or_not_found(config_id.to_string())?;
|
||||
Ok(anki_proto::stats::CardStatsResponse {
|
||||
card_id: card.id.into(),
|
||||
note_id: card.note_id.into(),
|
||||
|
@ -62,6 +74,12 @@ impl Collection {
|
|||
memory_state: card.memory_state.map(Into::into),
|
||||
fsrs_retrievability,
|
||||
custom_data: card.custom_data,
|
||||
preset: preset.name,
|
||||
original_deck: if original_deck != deck {
|
||||
Some(original_deck.human_name())
|
||||
} else {
|
||||
None
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
@ -105,7 +105,14 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|||
|
||||
statsRows.push({ label: tr2.cardStatsCardTemplate(), value: stats.cardType });
|
||||
statsRows.push({ label: tr2.cardStatsNoteType(), value: stats.notetype });
|
||||
statsRows.push({ label: tr2.cardStatsDeckName(), value: stats.deck });
|
||||
let deck: string;
|
||||
if (stats.originalDeck) {
|
||||
deck = `${stats.deck} (${stats.originalDeck})`;
|
||||
} else {
|
||||
deck = stats.deck;
|
||||
}
|
||||
statsRows.push({ label: tr2.cardStatsDeckName(), value: deck });
|
||||
statsRows.push({ label: tr2.cardStatsPreset(), value: stats.preset });
|
||||
|
||||
statsRows.push({ label: tr2.cardStatsCardId(), value: stats.cardId });
|
||||
statsRows.push({ label: tr2.cardStatsNoteId(), value: stats.noteId });
|
||||
|
|
Loading…
Reference in a new issue