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
- the “select” with options
- Simultaneously “new” and “review”
- First “new” queue then “review”
- First “review” queue then “new”
- the “checkbox” with
- The “new” and “learning” split (only active for non-simultaneous mode when “new” follows after “review” or vice-versa)
- the “checkbox” with
- The “review” and “learning” split (only active for non-simultaneous mode when “new” follows after “review” or vice-versa)
ORRRRRRRRRRRRRRRRR
- the “select” with options
- Simultaneously “new” and “review”
- First “new” queue then “review”
- First “review” queue then “new”
- the “checkbox” with (HIDDEN when non-simultaneous)
- The “new” and “learning” split
- 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"