Drag-and-drop issue (ticket) ordering
We would really like to be able to specify an exact order for the resolution of tickets, by draggin and dropping them into order.
Priority should be automatically modified (ie. if an Urgent is moved 'below' a High it should be re-prioritised as High)
Alternatively, optionally the Priority of tickets (eg. Urgent, High, Normal and Low) should be respected (ie. can not drag a High beneath a Normal or above an Urgent). [Tricky]
New tickets should automatically be ordered at the bottom of their Priority.
#4 Updated by James Robertson over 8 years ago
Thanks for the suggestion, but sounds a bit cumbersome for our scenarios.
We have several customer who websites/applications we support. We provide a fixed number of hours of support per month. In some cases there are many tickets (High, Medium (Normal) and Low) to be worked through over a period of months. The customer would like to be able to specify, and adjust, an exact order for these tickets.
We use Redmine to manage in progress, Agile projects. Our Agile methodology calls for all tickets (Stories) to be ordered and re-ordered as prioritiies change.
In neither of these cases are start or end dates used. Also, although there is an implied "precedence" between the tickets there is no technical basis for this. (Besides; setting and changing individual "precedes" and "follows" manually, would be very painful in these cases.)
So, can you accept my need to have a drag-and-drop interface to set an exact order - however that may be manifest technically.
#5 Updated by Andrew Betts over 8 years ago
I agree with James completely, and this affects our workflow in exactly the same way as he has described.
I implemented a hackish solution to this, but not knowing Ruby I did it in PHP, so it's unlikely to be of any use to anyone. But if anyone wants the code I'd be happy to share it.
#8 Updated by Josh McArthur over 8 years ago
Not really - I got bogged down in an implementation that would work for our company, vs. something that would work for everyone - and then ran out of time and had to move onto paid work. If some free time comes up again soon, I'll take another look at it.
The main problem I came across was working out an approach that would work across the multiple views a list of issues has - i.e it can apply across multiple projects, groupings can be used, etc etc.
#10 Updated by James Robertson about 8 years ago
- New custom field data-type: "sort order" (?)
- Store as integer (1 is highest sort order)
- Must be unique within (open) tickets of a project
- On save, if the sort order integer has changed, any (one) ticket with the same or higher sort order integer are deprecated by one.
- Add drag-and-drop to any Issue (ticket) filter that is sorted on a "sort order" field.
- new/re-opened tickets are assigned the next highest integer (i.e appear at bottom of list)
- Forget about everything else! :-)
Lots more stuff could be added later, but this would be a great first step! What do you think? Any more likely now? :-)
#13 Updated by Romain Vignes over 7 years ago
There is a similar mechanism already implemented in the Backlogs plugin
A "Position" field is added to issues that are stored in "User Story" trackers and is updated automatically according to drag&drop operations done in the "Backlogs" view.
Maybe the source code if this plugin could be of interest for a more generic issue ordering plugin.
#15 Updated by Bodo Maass about 7 years ago
By looking at this I also found the Stuff To Do Plugin. Someone made a patch to allow it to run on Redmine 2.0. It has a nice implementation of the reordering-by-dragging that is requested here, albeit only for a specific view.
If this code could be applied to all issue views in Redmine, that would be awesome. Unfortunately I don't know Ruby and Redmine well enough to attempt this myself.
#17 Updated by Terence Mill about 7 years ago
#42 Updated by Fredrik Liljegren about 4 years ago
We tried some drag'n'drop plugins, but decided to make our own: https://github.com/Textalk/apilapse
It works directly from browser via redmine api, using the user's API-key. You just define different areas binding to different definitions and a custom field for priority.
It's poorly documented as of today, since we're the only users (afaik), but works well for our needs.