"Order of queues" new setting

related Learn "learning" queue only after others, don't mix it with other two queues, only populate "learning" queue" · Issue #8025 · ankidroid/Anki-Android · GitHub

CURRENTLY:

we have a “Order” option with “New cards in random order”, “New cards in order added”

EXPECTED:

rename the “Order” to “Order of new cards” AND add a new option “Order of queues” with

  1. the “select” with options
  • Simultaneously “new” and “review”
  • First “new” queue then “review”
  • First “review” queue then “new”
  1. the “checkbox” with
  • The “new” and “learning” split (only active for non-simultaneous mode when “new” follows after “review” or vice-versa)
  1. the “checkbox” with
  • The “review” and “learning” split (only active for non-simultaneous mode when “new” follows after “review” or vice-versa)

ORRRRRRRRRRRRRRRRR

  1. the “select” with options
  • Simultaneously “new” and “review”
  • First “new” queue then “review”
  • First “review” queue then “new”
  1. the “checkbox” with (HIDDEN when non-simultaneous)
  • The “new” and “learning” split
  1. the “checkbox” with (HIDDEN when non-simultaneous)
  • The “review” and “learning” split

in purescript or haskell the “proper” data type (that allows OR) would look like

data OrderOfNewCards =
  | OrderOfNewCards__NewCardsInRandomOrder
  | OrderOfNewCards__NewCardsInOrderAdded

data OrderOfQueues__SubsettingForNonSimultaneousMode =
  { isNewAndLearningSplit :: Boolean
  , isReviewAndLearningSplit :: Boolean
  }

data OrderOfQueues =
  | OrderOfQueues__FirstNewThenReview OrderOfQueues__SubsettingForNonSimultaneousMode
  | OrderOfQueues__FirstReviewThenNew OrderOfQueues__SubsettingForNonSimultaneousMode
  | OrderOfQueues__Simultaneous

re case 3: NOTE: very interesting case.

Here I dont want to be “interrupted” with a “learning” queue.

instead, I want to learn/see the “new” queue IN FULL one by one in order specified by “Order of new cards” setting AND THEN “learning” queue with cards in order specied by the algorithm

N.B. IF I UNDERSTAND CORRECTLY -

  • the cards in “learning” queue are always in order specied by the algorithm
    AND
  • the cards in “review” queue are always in order specified by “due” field

TEST:

HAVING:
"new" with card_new_1, card_new_2
"review" with card_review_1, card_review_2
"learning" with card_learning_1, card_learning_2

Typical session will be:

from new -> card_new_1 -> "AGAIN"
from new -> card_new_2 -> "AGAIN"

from review -> card_review_1 -> "AGAIN"
from review -> card_review_2 -> "AGAIN"
from review -> card_new_1 -> "AGAIN"
from review -> card_new_2 -> "AGAIN"

from review -> card_review_1 -> "AGAIN"
from review -> card_review_2 -> "AGAIN"
from review -> card_new_1 -> "AGAIN"
from review -> card_new_2 -> "AGAIN"

from review -> card_review_1 -> "GOOD"
from review -> card_review_2 -> "GOOD"
from review -> card_new_1 -> "GOOD"
from review -> card_new_2 -> "GOOD"

from learning -> card_learning_1 -> "AGAIN"
from learning -> card_learning_2 -> "AGAIN"

from learning -> card_learning_1 -> "GOOD"
from learning -> card_learning_2 -> "GOOD"
1 Like

To put it clearly: this proposal improves current scheduling algorithm to allow not only SOME specific cases, but ALL POSSIBLE (see image)

1 Like