Edgewall Software

Opened 15 years ago

Last modified 19 months ago

#2130 new enhancement

Sort Milestones in Roadmap and NewTicket alphabetically (as an option)

Reported by: jan.linnenkohl@… Owned by:
Priority: normal Milestone: next-major-releases
Component: roadmap Version:
Severity: normal Keywords: sort milestones
Cc: Branch:
Release Notes:
API Changes:
Internal Changes:


I use Trac for different components with different version number. The milestones are sorted in the sequence I added them plus a sort over the date that is set.

It would be very nice to get them optional sorted alphabetically.

The milestone listbox in the "New Ticket" looks now as the following example:

  • ComponentA 1.0
  • ComponentB 2.1
  • ComponentC 0.3
  • ComponentC 0.4
  • ComponentA 1.1
  • ComponentB 2.3

I want to have an option in the "Roadmap" to sort it alphabetically and my be as default in the "New Ticket" settings. Then it should look like the following:

  • ComponentA 1.0
  • ComponentA 1.1
  • ComponentB 2.1
  • ComponentB 2.3
  • ComponentC 0.3
  • ComponentC 0.4

Attachments (0)

Change History (11)

comment:1 by anonymous, 15 years ago

Milestone: 0.9

comment:2 by anonymous, 15 years ago

Resolution: worksforme
Status: newclosed

The trunk already sorts the lists alphabetically and has done this for quite awhile. The roadmap still also sorts by due date, but that is a prefer feature.

comment:3 by jan, 15 years ago

Resolution: worksforme
Status: closedreopened

I think you are wrong for the NewTicket. I just looked at the https://ssl.bulix.org/projects/demo/newticket, where version 0.9b2 is running. There are the entries under milestones not sorted alphabetically. It seems to be sorted in the same order as in the roadmap. I would prefer the alphabetically order, because it's hard to find an special version in an unsorted listbox.

For the roadmap I would suggest another checkbox "Show milestones alphabetically" (in the same dialog as the checkbox "Show already completed milestones"). When I search for a special version it's hard to know, how the "due date" is set.

comment:4 by anonymous, 15 years ago

Summary: Sort Milesstones in Roadmap and NewTicket alphabetically (as an option)Sort Milestones in Roadmap and NewTicket alphabetically (as an option)

comment:5 by Christopher Lenz, 15 years ago

Milestone: 0.9
Resolution: wontfix
Status: reopenedclosed

Sorting by due date is the natural thing to do for milestones. Your problem is (AFAICT) that you're trying to maintain multiple projects in a single Trac environment. At least for me, milestones don't make sense on a per-component basis. After all, you want the entire system/project to reach a milestone, not just some part of it.

So, I don't think that we should officially support pseudo-multi-project deployment in Trac. Rather, we need #130 at some point, where stuff like this would be more natural.

comment:6 by ma@…, 13 years ago

I support the request for the possibility to sort milestones alphabetically as an option… we use Trac for quite large projects with a number of milestones.. It can be hard to find the correct milestone for a ticket when you have to read a long list sorted by due dates (and closed milestones as well).


comment:7 by Christian Boos, 13 years ago

See also #1440.

comment:8 by anonymous, 2 years ago

Resolution: wontfix
Status: closedreopened

#13018 was closed as a duplicate.

This is still missing. We have many milestones in one Trac instance without a problem, except that the milestone sorting is confusing. Milestones already have names, so why not allow sorting by them as an option?

comment:9 by tt2473@…, 22 months ago

I'm surprised to see that this request has been around for so long with no resolution. I too have many milestones in one TRAC instance and are unable to sort on the milestones. Why is sorting on the milestone such a problem to resolve?

comment:10 by anonymous, 22 months ago


from trac.util import embedded_numbers
from trac.ticket.model import Milestone

def better_milestone_order(m):
    return (not bool(m.completed),
            not bool(m.due),
old_select = Milestone.select
def new_select(cls, env, include_completed=True):
    milestones = old_select(env, include_completed)
    return sorted(milestones, key=better_milestone_order)
Milestone.select = classmethod(new_select)

comment:11 by anonymous, 19 months ago

Component: generalroadmap
Milestone: next-major-releases
Owner: Jonas Borgström removed
Priority: highnormal
Status: reopenednew
Type: defectenhancement
Version: 0.9b2

th:wiki:RoadmapPlugin allows sorting milestones by name among other things.

Modify Ticket

Change Properties
Set your email in Preferences
as new The ticket will remain with no owner.
The ticket will be disowned.
as The resolution will be set. Next status will be 'closed'.
The owner will be changed from (none) to anonymous. Next status will be 'assigned'.

Add Comment

E-mail address and name can be saved in the Preferences .
Note: See TracTickets for help on using tickets.