Projects onedev server Issues #790
#790  Sort/Reorder Cards in Column (Board view)
Open
Quin opened 3 months ago

It's possible to move the cards between columns, but is there a way to move the cards up and down the column to reorder them?
I find it easier to manage that way (I can list them in order of priority).

Jory de Kort commented 4 weeks ago

This would be awesome. Missing this feature as well.

jbauer commented 4 weeks ago

I have created a custom field named "priority" and really assign a priority to issues. Then you can modify the base query of the board and add order by "priority"

You could also create a second board that has columns for priority instead of state and then move issues between priority columns to assign that priority.

Quin commented 4 weeks ago

@jbauer you know what, I did think of doing something similar, but OneDev already has "Priority" field. However, I may see if I can set "order by priority" as part of the default view. I may try to make a board using OneDev's priority too.
Ideally, I'd still like to set the "order" of the tasks visually (i.e. "do this task before this"), as most tasks would be "normal".

jbauer commented 4 weeks ago

@quin452 I see. If priority is the same but tasks really need to be solved in a given order because they depend on each other, then I usually use blocked by / blocking issue relations. Sometimes I also just make a markdown todo list inside a single issue and do not create issues for all the smaller sub-tasks. Then you have a check list in the desired order and a developer can work on completing this check list.

I think manual ordering using some integer based sort column in the database could be difficult to get right. For example I have roughly 10 different boards (one for each developer, one for planing priorities, one for tracking requirements engineering, ...). Ordering issues in one board would then affect ordering in other boards which might not be desired. Other people might want it to affect all boards. What would you do if a board base query contains an order by but there is also information about manual ordering stored on some issues? How to reset manual ordering if you don't want it anymore? Should manual ordering also be taken into account when viewing issues in list view or even global list view? So there are definitely some edge cases to think about.

Robin Shen commented 3 weeks ago

@jbauer this is my concern as well. OneDev board is a bit different from traditional board in that cards can not be controlled freely, and subject to various rules when moving. This is necessary to keep boards/cards consistent, synchronized and automated.

jbauer commented 3 weeks ago

@robin Maybe having that Github feature that allows creating issues from todo lists could help a bit.

For example I could imagine creating one issue and then type a todo list with nested todos in that issue. Then OneDev could provide some controls to create issues from all of these todos and automatically relate them using blocking / blocked by issue relation to reflect the todo hierarchy. Then the root issue (the one that has the markdown todo list) will have that blocked by link in board view that you can use to expand the UI and see all the blocking issues. These issues could then be sorted in the order of the todo items but only in that expanded view that appears when clicking the blocked by link.

I hope you understand what I mean. But it could be tricky to keep the blocking / blocked by issue relations up-to-date if the markdown todo list items are edited (moved up / down, changing hierarchy, etc.) after issues have been created and linked to the todo list items.

Robin Shen commented 3 weeks ago

@jbauer yes GitLab/GitHub has separate todo, and I do not like how it works, as it complicates things. Eventually users want the todo list to have some features of issues.

Quin commented 3 weeks ago

I've used GitLabs ToDo.
How I used it was to create the task, then mark it as "to do". This then allowed you to go to the "todo" page and see all the tasks marked as todo.

It wasn't very good, as any update to the task (even adding time, or changing a field) marked the task as "done" even when it should still be "todo".

Regarding the ordering, assuming that Boards are some form of Object, could there be an "order" field which is just an array of all the tasks, by ID. So the "order to do things" be stored in there? And with multiple columns, maybe a multidimensional array (if needed).
Whenever they're moved around, "Order" would be updated.

Board {
  Order {
    Column A {
      12, 35, 24, 1
    },
    Column B {
      10, 11, 13, 7
    }
  }
}
Robin Shen commented 3 weeks ago

@quin452 board in OneDev is simply a query to select issues into different columns. Introducing a separate todo list besides issues will complicate things a lot. Introducing a separate order field into issues will be more simple, but as @jbauer mentioned, it will conflict with current ordering if issues are already sorted by some other fields.

issue 1 of 1
Type
Improvement
Priority
Normal
Assignee
Not assigned
Issue Votes (2)
Watchers (7)
Reference
issue onedev/server#790
Please wait...
Page is in error, reload to recover