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-card-template = Card Type
|
||||||
card-stats-note-type = Note Type
|
card-stats-note-type = Note Type
|
||||||
card-stats-deck-name = Deck
|
card-stats-deck-name = Deck
|
||||||
|
card-stats-preset = Preset
|
||||||
card-stats-note-id = Note ID
|
card-stats-note-id = Note ID
|
||||||
card-stats-card-id = Card ID
|
card-stats-card-id = Card ID
|
||||||
card-stats-review-log-rating = Rating
|
card-stats-review-log-rating = Rating
|
||||||
|
|
|
@ -56,6 +56,8 @@ message CardStatsResponse {
|
||||||
// not set if due date/state not available
|
// not set if due date/state not available
|
||||||
optional float fsrs_retrievability = 19;
|
optional float fsrs_retrievability = 19;
|
||||||
string custom_data = 20;
|
string custom_data = 20;
|
||||||
|
string preset = 21;
|
||||||
|
optional string original_deck = 22;
|
||||||
}
|
}
|
||||||
|
|
||||||
message GraphsRequest {
|
message GraphsRequest {
|
||||||
|
|
|
@ -41,6 +41,18 @@ impl Collection {
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.current_retrievability(state.into(), days)
|
.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 {
|
Ok(anki_proto::stats::CardStatsResponse {
|
||||||
card_id: card.id.into(),
|
card_id: card.id.into(),
|
||||||
note_id: card.note_id.into(),
|
note_id: card.note_id.into(),
|
||||||
|
@ -62,6 +74,12 @@ impl Collection {
|
||||||
memory_state: card.memory_state.map(Into::into),
|
memory_state: card.memory_state.map(Into::into),
|
||||||
fsrs_retrievability,
|
fsrs_retrievability,
|
||||||
custom_data: card.custom_data,
|
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.cardStatsCardTemplate(), value: stats.cardType });
|
||||||
statsRows.push({ label: tr2.cardStatsNoteType(), value: stats.notetype });
|
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.cardStatsCardId(), value: stats.cardId });
|
||||||
statsRows.push({ label: tr2.cardStatsNoteId(), value: stats.noteId });
|
statsRows.push({ label: tr2.cardStatsNoteId(), value: stats.noteId });
|
||||||
|
|
Loading…
Reference in a new issue