Open 4Source opened 6 months ago
Hi @4Source
Wow. Man, you've put in so much work to get to this point. I've only had a chance to look at this briefly, but had a few questions for you.
Are the "deck priority" and "card priority" headings crossed over against the column content?
I'm wondering if it would be possible to stage the development, rather than adding in everything all in one go.
So I'm curious which options are ones that:
@st3v3nmw might think differently, and in the end this is his baby, but I know that for every feature added it requires more than just the implementation time. There is writing the unit test cases, having it reviewed by Stephen or myself et cetera.
Hence why I'm wondering if it would be possible to stage the development. Ones that are "nice to have" could be moved to a separate issue, and you could see if people comment and indicate that they would use it if it was implemented.
Kudos once again for thinking this all through, it must have taken serious effort!
Cheers Ronny
Yeah this took a while. I really thought about this a while (couple of weeks now).
Are the "deck priority" and "card priority" headings crossed over against the column content?
Ohh yes there are switched I will fix this.
I'm wondering if it would be possible to stage the development, rather than adding in everything all in one go.
Yes I Think this should be possible. And for sure easier to review. A possible Solution could be to firstly ignore the Round robin
options and just implement it with only the Complete
Deck priority this would halve the amount of possible combinations. Also the Any first
could be set to only be allowed when Deck & Card order are both set to Random
. This would only keep the existing Configurations but would setup the Base for the Additional Configurations. Which could be added in 2. stage or any later stage of development.
So I'm curious which options are ones that:
- you want to see because it will be helpful for you
- other users have requested in other issues (I do keep an eye out on most things, nothing immediately comes to mind)
- you think would be "nice to have"
I'am at the moment not happy with the currently available options and thought I couldn't be the only one who don't would like to have more control how the review presents me the cards. And adding more and more Options to the existing drop down would not be really efficient. And would make a later refactoring harder. I didn't find any related issues, so I don't think others have requested something similar.
@st3v3nmw might think differently, and in the end this is his baby, but I know that for every feature added it requires more than just the implementation time.
This is one of the reasons why I created this issue, to avoid wasting my time implementing something what don't get included.
There is writing the unit test cases, having it reviewed by Stephen or myself et cetera.
Whit the unit test cases I could help and implement them by myself the review part on the other hand I cant really help you only thing I could do add more Comments while going through this.
This is now a lot more but I added a better description of the configurations and the option for random
Deck priority. Also give each row a development stage in a order I think it would make sense. For me every thing including Stage 3 is what I would like to have. Stage 4 in my opinion is a bonus but not really necessary.
It feels like I am spamming so sry for that.
Deck order | Card order | Card priority | Deck priority | Explained | Dev Stage | Replaces current |
---|---|---|---|---|---|---|
seq | seq | New first | Complete | Starts at the first deck. First all new cards in the deck are gone through if there are any in this deck, then all due cards in the deck. After completing the deck, the same procedure is followed for the next deck. | 1 | Sequentially within a deck (All new cards first) & Sequentially (once all cards in previous deck reviewed) |
seq | seq | Due first | Complete | Starts at the first deck. First all due cards in the deck are gone through if there are any in this deck, then all new cards in the deck. After completing the deck, the same procedure is followed for the next deck. | 1 | Sequentially within a deck (All due cards first) & Sequentially (once all cards in previous deck reviewed) |
seq | seq | Any first | Complete | Starts at the first deck. No cards are prioritized, they are all gone through in the deck one after the other. After completing the deck, the same procedure is followed for the next deck. | 2 | |
seq | seq | New first | Round robin | Starts at the first deck. A new card is selected from the deck if there is none in this deck or after the card is completed, the next deck is moved to. If there are no more new cards in any deck, all due cards are processed using the same procedure "one card per deck". | 3 | |
seq | seq | Due first | Round robin | Starts at the first deck. A due card is selected from the deck if there is none in this deck or upon completion of the card, the next deck is moved to. If there are no more due cards in any deck, all new cards are processed using the same "one card per deck" procedure. | 3 | |
seq | seq | Any first | Round robin | Starts at the first deck. A card is selected from the deck, after completing the card, the next deck is moved to. All cards get processed using the same "one card per deck" procedure. | 3 | |
seq | seq | New first | rnd | Starts with the first deck. A new card is selected from the deck, if there is no card in this deck, it goes to the next deck. After the card has been completed, a random decision is made as to whether another card should be chosen from the deck or from the next deck. If there are no new cards left in any deck, all due cards will be processed using the same “one card per deck” process. | 4 | |
seq | seq | Due first | rnd | Starts with the first deck. A due card is selected from the deck, if there is no due card in that deck, the next deck is moved to. After the card has been completed, a random decision is made as to whether another card should be chosen from the deck or from the next deck. If there are no more cards due in any deck, all new cards will be processed using the same “one card per deck” process. | 4 | |
seq | seq | Any first | rnd | Starts with the first deck. A card is selected from the deck. After the card has been completed, a random decision is made as to whether another card should be chosen from the deck or from the next deck. All cards are processed using the same “one card per deck” process. | 4 | |
seq | rnd | New first | Complete | Starts on the first deck. First, all new cards in the deck are gone through in random order, if there are any in that deck, then all due cards in the deck. After completing the deck, the same procedure is followed for the next deck. | 1 | Randomly within a deck (All new cards first) & Sequentially (once all cards in previous deck reviewed) |
seq | rnd | Due first | Complete | Starts on the first deck. First, all due cards in the deck are gone through in random order, if there are any in that deck, then all new cards in the deck. After the deck is completed, the same procedure is followed for the next deck. | 1 | Randomly within a deck (All due cards first) & Sequentially (once all cards in previous deck reviewed) |
seq | rnd | Any first | Complete | Starts on the first deck. All cards in the deck are gone through in random order. After the deck is completed, the same procedure is followed for the next deck. | 2 | |
seq | rnd | New first | Round robin | Starts on the first deck. A new random card is selected from the deck if there is no card in that deck, or after the card is completed, is moved to the next deck. If there are no new cards left in any deck, all due cards will be processed using the same “one card per deck” process. | 3 | |
seq | rnd | Due first | Round robin | Starts on the first deck. A due random card is selected from the deck if there is no card in that deck, or after the card is completed, is moved to the next deck. If there are no more cards due in any deck, all new cards will be processed using the same “one card per deck” process. | 3 | |
seq | rnd | Any first | Round robin | Starts with the first deck. A random card is selected from the deck and moved to the next deck once the card is completed. All cards are processed using the same “one card per deck” process. | 3 | |
seq | rnd | New first | rnd | Start with the first deck. A new random card is selected from the deck. If there is no card in this deck, it moves to the next deck. After the card is completed, a random decision is made as to whether another card should be selected from the deck or from the next deck. If there are no new cards left in any deck, all due cards will be processed using the same “one card per deck” process. | 4 | |
seq | rnd | Due first | rnd | Start with the first deck. A due random card is selected from the deck. If there is no card in this pile, it moves to the next pile. After the card is completed, a random decision is made as to whether another card should be selected from the deck or from the next deck. If there are no cards due in any deck, all new cards will be processed using the same “one card per deck” process. | 4 | |
seq | rnd | Any first | rnd | Start with the first deck. A card is randomly selected from the deck. After the card is completed, a random decision is made as to whether another card should be selected from the deck or from the next deck. All cards are processed using the same “one card per deck” process. | 4 | |
rnd | seq | New first | Complete | Goes randomly through all decks. First all new cards in the deck are gone through if there are any in this deck, then all due cards in the deck. After completing the deck, the same procedure is followed for the next random deck. | 1 | Sequentially within a deck (All new cards first) & Randomly (once all cards in previous deck reviewed) |
rnd | seq | Due first | Complete | Goes randomly through all decks. First all due cards in the deck are gone through if there are any in this deck, then all new cards in the deck. After completing the deck, the same procedure is followed for the next random deck. | 1 | Sequentially within a deck (All due cards first) & Randomly (once all cards in previous deck reviewed) |
rnd | seq | Any first | Complete | Goes randomly through all decks. No cards are prioritized, they are all gone through in the deck one after the other. After completing the deck, the same procedure is followed for the next random deck. | 2 | |
rnd | seq | New first | Round robin | Goes randomly through all decks. A new card is selected from the deck if there is none in this deck or after the card is completed, the next deck is moved to. If there are no more new cards in any deck, all due cards are processed using the same procedure "one card per deck". | 3 | |
rnd | seq | Due first | Round robin | Goes randomly through all decks. A due card is selected from the deck if there is none in this deck or upon completion of the card, the next deck is moved to. If there are no more due cards in any deck, all new cards are processed using the same "one card per deck" procedure. | 3 | |
rnd | seq | Any first | Round robin | Goes randomly through all decks. A card is selected from the deck, after completing the card, the next deck is moved to. All cards get processed using the same "one card per deck" procedure. | 3 | |
rnd | seq | New first | rnd | Goes randomly through all decks. A new card is selected from the deck, if there is no card in this deck, it goes to the next deck. After the card has been completed, a random decision is made as to whether another card should be chosen from the deck or from the next deck. If there are no new cards left in any deck, all due cards will be processed using the same “one card per deck” process. | 4 | |
rnd | seq | Due first | rnd | Goes randomly through all decks. A due card is selected from the deck, if there is no due card in that deck, the next deck is moved to. After the card has been completed, a random decision is made as to whether another card should be chosen from the deck or from the next deck. If there are no more cards due in any deck, all new cards will be processed using the same “one card per deck” process. | 4 | |
rnd | seq | Any first | rnd | Goes randomly through all decks. A card is selected from the deck. After the card has been completed, a random decision is made as to whether another card should be chosen from the deck or from the next deck. All cards are processed using the same “one card per deck” process. | 4 | |
rnd | rnd | New first | Complete | Goes randomly through all decks. First, all new cards in the deck are gone through in random order, if there are any in that deck, then all due cards in the deck. After completing the deck, the same procedure is followed for the next random deck. | 1 | Randomly within a deck (All new cards first) & Randomly (once all cards in previous deck reviewed) |
rnd | rnd | Due first | Complete | Goes randomly through all decks. First, all due cards in the deck are gone through in random order, if there are any in that deck, then all new cards in the deck. After the deck is completed, the same procedure is followed for the next random deck. | 1 | Randomly within a deck (All due cards first) & Randomly (once all cards in previous deck reviewed) |
rnd | rnd | Any first | Complete | Goes randomly through all decks. All cards in the deck are gone through in random order. After the deck is completed, the same procedure is followed for the next random deck. | 2 | |
rnd | rnd | New first | Round robin | Goes randomly through all decks. A new random card is selected from the deck if there is no card in that deck, or after the card is completed, is moved to the next deck. If there are no new cards left in any deck, all due cards will be processed using the same “one card per deck” process. | 3 | |
rnd | rnd | Due first | Round robin | Goes randomly through all decks. A due random card is selected from the deck if there is no card in that deck, or after the card is completed, is moved to the next deck. If there are no more cards due in any deck, all new cards will be processed using the same “one card per deck” process. | 3 | |
rnd | rnd | Any first | Round robin | Goes randomly through all decks. A random card is selected from the deck and moved to the next deck once the card is completed. All cards are processed using the same “one card per deck” process. | 3 | |
rnd | rnd | New first | rnd | Goes randomly through all decks. A new random card is selected from the deck. If there is no card in this deck, it moves to the next deck. After the card is completed, a random decision is made as to whether another card should be selected from the deck or from the next deck. If there are no new cards left in any deck, all due cards will be processed using the same “one card per deck” process. | 4 | |
rnd | rnd | Due first | rnd | Goes randomly through all decks. A due random card is selected from the deck. If there is no card in this pile, it moves to the next pile. After the card is completed, a random decision is made as to whether another card should be selected from the deck or from the next deck. If there are no cards due in any deck, all new cards will be processed using the same “one card per deck” process. | 4 | |
rnd | rnd | Any first | rnd | Goes randomly through all decks. A card is randomly selected from the deck. After the card is completed, a random decision is made as to whether another card should be selected from the deck or from the next deck. All cards are processed using the same “one card per deck” process. | 1 | rnd card from random deck & Every card a random deck with a random card Ignoring new and due |
seq
: Sequentialrnd
: RandomThe main goal at stage 1 is to prepare the code to accept further modifications. Only implementing the existing functionallity without modifying the unit tests everything should work the same.
Add the function that there is no prioritization of due/new.
New unit test are requiered at this stage.
Implements the Round robin option for Card priority.
New unit test are requiered at this stage.
Implements the random option for Card priority.
New unit test are requiered at this stage.
This feature is on top of the #814 should add more control how to go through the cards during review.
I am currently working on it but I would like to here some feedback before continue.
Current Functionality
The new system should consist of 4 drop-down menus which are: Deck order In which order the decks get selected.
Card order In which order the cards in a deck get selected.
Deck priority How the deck order is prioritized complete the deck or only one card per deck. Could probably extended with a random option.
Card priority Which cards get prioritized to complete first.
The resulting options are listed here:
This should nearly address any possible way someone would like to configure the review at least when deck priority includes a random option. And if there are any other needs I think on this base there could be easily added in future.
I would love to hear your thoughts on this, so please share.