From 05124eecf78c546dc67dcec34542b59e47e8cb32 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Sun, 22 Aug 2021 11:07:00 +1000 Subject: [PATCH] adding options to sort by ascending/descending ease --- ftl/core/deck-config.ftl | 2 ++ proto/anki/deckconfig.proto | 5 ++++- rslib/src/storage/card/mod.rs | 6 ++++++ ts/deck-options/DisplayOrder.svelte | 2 ++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ftl/core/deck-config.ftl b/ftl/core/deck-config.ftl index 3f94a327c..b4ecfce6c 100644 --- a/ftl/core/deck-config.ftl +++ b/ftl/core/deck-config.ftl @@ -134,6 +134,8 @@ deck-config-sort-order-due-date-then-deck = Due date, then deck deck-config-sort-order-deck-then-due-date = Deck, then due date deck-config-sort-order-ascending-intervals = Ascending intervals deck-config-sort-order-descending-intervals = Descending intervals +deck-config-sort-order-ascending-ease = Ascending ease +deck-config-sort-order-descending-ease = Descending ease deck-config-display-order-will-use-current-deck = Anki will use the display order from the deck you select to study, and not any subdecks it may have. diff --git a/proto/anki/deckconfig.proto b/proto/anki/deckconfig.proto index 9f4c3ec90..9c305d121 100644 --- a/proto/anki/deckconfig.proto +++ b/proto/anki/deckconfig.proto @@ -54,7 +54,8 @@ message DeckConfig { REVIEW_CARD_ORDER_DECK_THEN_DAY = 2; REVIEW_CARD_ORDER_INTERVALS_ASCENDING = 3; REVIEW_CARD_ORDER_INTERVALS_DESCENDING = 4; - // REVIEW_CARD_ORDER_RELATIVE_OVERDUE = 3; + REVIEW_CARD_ORDER_EASE_ASCENDING = 5; + REVIEW_CARD_ORDER_EASE_DESCENDING = 6; } enum ReviewMix { REVIEW_MIX_MIX_WITH_REVIEWS = 0; @@ -73,6 +74,8 @@ message DeckConfig { uint32 new_per_day = 9; uint32 reviews_per_day = 10; + + // not currently used uint32 new_per_day_minimum = 29; float initial_ease = 11; diff --git a/rslib/src/storage/card/mod.rs b/rslib/src/storage/card/mod.rs index 38d407328..23484cee8 100644 --- a/rslib/src/storage/card/mod.rs +++ b/rslib/src/storage/card/mod.rs @@ -584,6 +584,8 @@ enum ReviewOrderSubclause { Random, IntervalsAscending, IntervalsDescending, + EaseAscending, + EaseDescending, } impl ReviewOrderSubclause { @@ -594,6 +596,8 @@ impl ReviewOrderSubclause { ReviewOrderSubclause::Random => "fnvhash(id, mod)", ReviewOrderSubclause::IntervalsAscending => "ivl asc", ReviewOrderSubclause::IntervalsDescending => "ivl desc", + ReviewOrderSubclause::EaseAscending => "factor asc", + ReviewOrderSubclause::EaseDescending => "factor desc", } } } @@ -605,6 +609,8 @@ fn review_order_sql(order: ReviewCardOrder) -> String { ReviewCardOrder::DeckThenDay => vec![ReviewOrderSubclause::Deck, ReviewOrderSubclause::Day], ReviewCardOrder::IntervalsAscending => vec![ReviewOrderSubclause::IntervalsAscending], ReviewCardOrder::IntervalsDescending => vec![ReviewOrderSubclause::IntervalsDescending], + ReviewCardOrder::EaseAscending => vec![ReviewOrderSubclause::EaseAscending], + ReviewCardOrder::EaseDescending => vec![ReviewOrderSubclause::EaseDescending], }; subclauses.push(ReviewOrderSubclause::Random); diff --git a/ts/deck-options/DisplayOrder.svelte b/ts/deck-options/DisplayOrder.svelte index 3ac1c9c9f..39e4ef274 100644 --- a/ts/deck-options/DisplayOrder.svelte +++ b/ts/deck-options/DisplayOrder.svelte @@ -40,6 +40,8 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html tr.deckConfigSortOrderDeckThenDueDate(), tr.deckConfigSortOrderAscendingIntervals(), tr.deckConfigSortOrderDescendingIntervals(), + tr.deckConfigSortOrderAscendingEase(), + tr.deckConfigSortOrderDescendingEase(), ];