Fellow community members,
In your experience, what is the best way to manage an ever-changing job queue? That is, a list of jobs that are in order of priority. My challenge: job priority will change regularly (for example, managing a list of 100 jobs and one must be bumped up to the top or bumped down a few rows). How can I control the order of a queue in the UX?
Help appreciated
Jesse,
I would create an additional column in your job table that holds the priority value. Something like 1 being high priority, 2 medium, 3 low. Then you can sort your table view by that column. Then you can create a couple actions to easily increment or decrement those values to adjust the priorities.
If you need finer control of priority ordering, youโll need more than 3 priority values.
Thanks Marc. How would you work around the issue with having two rows with the same priority value? For example, letโs say I move #1 to #2 - I would then also have to move #2 to #1. Editing two rows doesnโt feel like a natural way of sorting.
@Jesse Sort based on two columns: First by the aforementioned โPriorityโ value, second by a ChangeTimeStamp column which only updates when the priority column is updatedโฆ
There still is some odd behaviours here, such as the following example:
Coffee - P5
Orange - P4
Banana - P4
Carrot - P3
If you want to rank Carrot in between Orange and Banana, you could not just rank up Carrot to P4. This would sort it between Coffee and Orange.
You could, however, rank down Banana.
Also, ranking down Orange would but it between Banana and Carrot, not necessarily to the bottom To get Orange to the bottom you would have to first rank it down, then rank down Carrotโฆ
Iโm sure theres a way to achieve a more intuitive behaviour, but it will take some thought.
Found a somewhat-solutionโฆ Here is a demo video, and there is a sample app at the bottom of this postโฆ
Some issues with this solution:
In any case, maybe this will work for you. To do this, you require an additional column, and two actions:
Column: 'priorityโ
Action: 'item_rankupโ
IF(COUNT(SELECT(table[priority],[priority]>[_THISROW].[priority]))<2,
IF(COUNT(SELECT(table[priority],[priority]>[_THISROW].[priority]))=0,
[priority],
ANY(SELECT(table[priority],[priority]>[_THISROW].[priority]))+1
),
(INDEX(SORT(SELECT(table[priority],[priority]>[_THISROW].[priority])),1)+
INDEX(SORT(SELECT(table[priority],[priority]>[_THISROW].[priority])),2))/2
)
Action: 'item_rankdownโ
IF(COUNT(SELECT(table[priority],[priority]<[_THISROW].[priority]))<2,
IF(COUNT(SELECT(table[priority],[priority]<[_THISROW].[priority]))=0,
[priority],
ANY(SELECT(table[priority],[priority]<[_THISROW].[priority]))-1
),
(INDEX(SORT(SELECT(table[priority],[priority]<[_THISROW].[priority]),TRUE),1)+
INDEX(SORT(SELECT(table[priority],[priority]<[_THISROW].[priority]),TRUE),2))/2
)
Thank you so much for your insight and time.
I ended up opting for a simple subpar solution using quickedit and SOME automation with workflows to automatically put items at the end of the queue.
I think managing a queue is something appsheet could solve on a platform level. There needs to be some functionality built right into the app for this.
User | Count |
---|---|
43 | |
28 | |
24 | |
24 | |
13 |