Feature #8016

Drag-and-drop issue (ticket) ordering

Added by James Robertson about 11 years ago. Updated over 2 years ago.

Status:NewStart date:2011-03-30
Priority:NormalDue date:
Assignee:-% Done:


Target version:-


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.

Related issues

Related to Redmine - Feature #9183: Update grouped tickets/issues using drag-and-drop New 2011-09-05
Related to Redmine - Feature #9412: Drag and Drop Issues to Set Parent-Child Relationships New 2011-10-12
Related to Redmine - Feature #9184: Inline issue editing within list view/custom query New 2011-09-05
Related to Redmine - Feature #22802: Add the posibility to set/change the position of an issue... New


#1 Updated by Etienne Massip about 11 years ago

Are you talking about the issue list ?

You can already create a custom query with default sorting of issues by their priority.

#2 Updated by James Robertson about 11 years ago

Thanks Etienne. But I want to be able to order tickets precisely (ie. this High ticket, then this High ticket, then the next High ticket, etc.)

#3 Updated by Etienne Massip about 11 years ago

This is done usually by planning issues, setting start and due dates with "precedes" / "follows" relationships.

Then just sort by start date & due date.

If you change, e.g., an issue due date, then the following issues will have their dates changed too.

#4 Updated by James Robertson about 11 years ago

Thanks for the suggestion, but sounds a bit cumbersome for our scenarios.

Scenario 1:
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.

Scenario 2:
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 about 11 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.

#6 Updated by Josh McArthur about 11 years ago

Hi Andrew,

I am just starting an implementation of this issue now - it could save me quite a bit of time if I could take a look at your code and try and translate it to Ruby - is it on Github?

#7 Updated by Maciej Blomberg almost 11 years ago


any progress on this one?

#8 Updated by Josh McArthur almost 11 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.

#9 Updated by johnny bravo over 10 years ago

This is exactly the functionality we need as well. We spend a lot of time having to separately communicate to our developer exactly which issues to work on.

#10 Updated by James Robertson over 10 years ago

I've been thinking about this feature some more and realise that a first-cut implementation can actually be a lot simpler than I first described:
  • 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? :-)


#11 Updated by Adam N. over 10 years ago


#12 Updated by Anonymous over 10 years ago


#13 Updated by Romain Vignes about 10 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.

#14 Updated by Bodo Maass almost 10 years ago


It would be great to have this. Meanwhile I'll take a look at the Backlogs plugin.

#15 Updated by Bodo Maass almost 10 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.

#16 Updated by Terence Mill almost 10 years ago


#18 Updated by Nathan Cooper almost 10 years ago


#19 Updated by Mathias Fischer about 9 years ago


#20 Updated by Leonardo Salgado almost 9 years ago


#21 Updated by Mariusz Dalewski almost 9 years ago


#23 Updated by Randy Syring over 8 years ago


#24 Updated by Daniel Hochman over 8 years ago


#25 Updated by Jethro Yu over 8 years ago


#26 Updated by matthias rebel over 8 years ago


#27 Updated by jonathan ben over 8 years ago


#28 Updated by Stephen Johnson over 8 years ago


#29 Updated by Alexey Acidoff over 8 years ago

+2 (me and my boss))

#30 Updated by Daniel Albuschat about 8 years ago

+1, James Robertson's two-year-old attempt seems feasible to me.
Although sorting in one specific view (in a version, for example) would be enough for us. Could be even integrated in the Roadmap.

#31 Updated by Jacq Jacq about 8 years ago


#32 Updated by Enmos Proje about 8 years ago


#33 Updated by Fedir RYKHTIK almost 8 years ago

+1 Using such functionality on similar app, very handy

#34 Updated by Artyom Tuprikov almost 8 years ago

+1, also I need to grant read-only access to the queue for all users so they could see their position in the queue.

#35 Updated by Laurent Girard almost 8 years ago


#36 Updated by Alex Alex about 7 years ago


Toshi MARUYAMA may be are you add for issues "User vote for issue", and we don't need to write "+1" every time) ?

#37 Updated by Maicon Strey about 7 years ago


#38 Updated by Steven Prutzman about 7 years ago

See also: #9184...

Would like this for the purposes of re-ranking a list. I use a custom field ("Rank") to order my list by priority. It is supremely time consuming to edit each ticket individually when priorities change.

#39 Updated by Laurent Dairaine about 7 years ago


#40 Updated by Toshi MARUYAMA about 7 years ago

  • Related to Feature #9184: Inline issue editing within list view/custom query added

#41 Updated by ksamak k over 6 years ago


#42 Updated by Fredrik Liljegren over 6 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.

#43 Updated by Marius BALTEANU over 5 years ago

I added a patch in #22802 that implements the drag-and-drop issue ordering in roadmap and version page.

#44 Updated by Go MAEDA over 5 years ago

  • Related to Feature #22802: Add the posibility to set/change the position of an issue in a version added

#45 Updated by Susana Mielgo about 5 years ago


#46 Updated by Nadav Kavalerchik over 3 years ago


#47 Updated by Frederic Defoy over 2 years ago


Also available in: Atom PDF