﻿ticket	summary	component	version	milestone	type	severity	owner	status	created	_changetime	_description	_reporter
886	Add support for Master tickets	ticket system	devel	next-major-releases	enhancement	major		new	2004-11-05T12:44:10+01:00	2023-04-13T09:07:18+02:00	"It would be cool if you could create master tickets that other tickets refer to. Work could then be broken down into chunks (and assigned to different people), but the master ticket could only be closed when all referring tickets had been resolved.

You could also have it so that referring tickets are excluded from the Roadmap ticket counts."	dmurphy25@…
11719	Auto-preview breaks TicketExt plugin, possibily others	ticket system	1.0.1	next-major-releases	defect	major		new	2014-08-15T18:27:07+02:00	2021-07-03T20:18:35+02:00	"When auto-preview kicks in and new ticket content is returned via XHR, `trac/ticket/templates/ticket.html` uses jQuery's `.replaceWith()` function to update the page.  This has the effect of dropping all the `display: none` added to the page on initial load by `TicketExt`.

One solution is to pass pass the XHR response through the same filters as the initial page load so the same manipulation (e.g., setting display attributes) can be applied.

Another is to change contents rather than replace the entire DOM subtree.  This can be done with:

{{{#!diff
diff --git a/trac/ticket/templates/ticket.html b/trac/ticket/templates/ticket.ht
index 353ef63..d0865c3 100644
--- a/trac/ticket/templates/ticket.html
+++ b/trac/ticket/templates/ticket.html
@@ -79,7 +79,14 @@
         $(""#propertyform"").autoSubmit({preview: '1'}, function(data, reply) {
           var items = $(reply);
           // Update ticket box
-          $(""#ticket"").replaceWith(items.filter('#ticket'));
+          var newProps = $('table.properties td', items);
+          $('#ticket table.properties td').each(function(i) {
+            $(this).html(newProps.eq(i).html());
+          });
+          var newDescription = $('div.description div.searchable', items);
+          $('#ticket div.description div.searchable').html(newDescription.html());
+          if (items.hasClass('ticketdraft'))
+            $('#ticket').addClass('ticketdraft');
           // Unthread, unrevert and update changelog
           if (!$('#trac-comments-oldest').checked())
             $('#trac-comments-oldest').click().change();
}}}

though this is likely a partial fix.

(This has also been discussed at th:#11923.)"	chris.nelson.1022@…
1962	Due dates on tickets & email notification on overdue dates	ticket system	0.8.4	next-major-releases	enhancement	minor		new	2005-08-25T04:25:51+02:00	2021-06-03T22:03:37+02:00	"It maye be there already but i cannot find it. One things as a software project manager that drives me crazy about track is the inability to add a due date to tickets. Prioritization is all well and good, and most certainly handy, but as part of the timeline / roadmap and the ticket inspector you REALLY need to have a due date on a ticket. It'd also be fantastic for Trac to notify the allocated user that the ticket is now overdue and bug them on a daily / configurable timeframe. As i said, correct me if this is already in trac (please tell me where!!) but if it's not, this is a really string feature request & i think a definite must have. 

Thanks - trac is awesome & we;'re really starting to use it now :)

Regards

Owen"	owen@…
31	Bug dependencies/relations feature	ticket system	devel	next-major-releases	enhancement	normal		new	2004-01-29T05:53:39+01:00	2022-08-30T20:23:04+02:00	"A simple list of related bugs without logical/implicit constraints might be useful. It'd be nice to be able to relate bugs and issues in a useful manner. 

It would also thus allow for reports showing ""a bug and all related bugs"" in some fashion, which could be neat. 

This would also require checking for circular dependencies/relations.

"	daniel
1084	Percentage complete	ticket system	0.8	next-major-releases	enhancement	normal		new	2004-12-26T16:53:05+01:00	2023-02-11T22:54:18+01:00	"Im using Trac in my projet to track bugs, but also to maintaint a list of tasks to do. One thing that would be great is the possibility to have a ""percentage complete"" field. This way the task can be updated to reflect the percentage complete. Right now the task can only be ""0% complete"" or ""100% complete"". I mean a task is either finished or unfinished, which is not always the case."	cerel
2463	Mandatory fields in tickets	ticket system	0.9.2	next-major-releases	enhancement	normal		new	2005-12-09T11:18:09+01:00	2020-08-07T00:45:49+02:00	It would be great with ability to set some ticket fields as mandatory. These fields should be verified before allowing submit when creating a new ticket.	johan.regnell@…
9648	[PATCH] Improve ticket fields with tooltips	ticket system	0.12	next-major-releases	enhancement	normal		new	2010-09-27T11:29:42+02:00	2017-03-07T02:56:26+01:00	"I've created a patch that allows a Trac admin to specify tooltips for arbitrary ticket fields in Trac:

[[Image(tooltip.png)]]

This way the admin can explain a certain field in more detail (for example the difference between priority and severity) or provide information about the syntax used in that field.

The tooltips appear in the following places:

 * the ticket box on the top of an existing ticket page (only on labels, not on values)
 * in the ticket history for changes values
 * the ticket input fields (on labels and input fields)

All labels get a help cursor if a tooltip is available.

Tooltips are specified in the `trac.ini` under the new section `[ticket-hints]`. Just assign the tooltip value to the name of the field. The user may also provide the same tooltip in multiple languages by appending the language code to the field name. Works for built-in fields as well as for custom fields (this patch is a generalization of #899). Example:

{{{
[ticket-hints]
reporter = The reporter of this ticket
owner = The owner of this ticket

blockedby = Tickets preventing this one from closing. Accepts comma delimited ticket number (without #)

complexity = The estimated complexity involved in fixing this ticked.
complexity_de = Die geschätzte Komplexität zur Lösung des Tickets
}}}

I've decided to use the `trac.ini` for localization as it would be too much overhead to create translation files for just some tooltips.
"	Sebastian Krysmanski <sebastian@…>
3370	Custom query RSS feed differes from CSV, Tab files	ticket system	0.9.4	unscheduled	enhancement	normal		new	2006-07-10T03:41:48+02:00	2021-02-28T19:55:05+01:00	"The RSS feed for a custom ticket query does not contain same fields as what the CSV and Tab Separated files do. The following important fields appear to be missing from the RSS feed: owner, type, priority, mileston and resolution.

"	tomek.piatek@…
12188	Suggest / autocomplete keywords in ticket properties	ticket system			enhancement	normal		new	2015-08-27T13:58:40+02:00	2023-02-22T22:06:48+01:00	Similar to the requests for users (#7628) and milestones (comment:12:ticket:7628 / #1901) it would be a huge time saver to get suggestions and autocompletion for ''keywords'' that have been used before on other tickets.	anonymous
9740	Impossible to CC a username with spaces	ticket system	0.12-stable	1.6.1	defect	normal		new	2010-11-01T14:22:20+01:00	2021-05-28T21:54:30+02:00	"It is impossible to CC a username with spaces in the username such as ""Joe Bloggs"", attempting to enter that treats as two different users Joe and Bloggs.

Suggest first attempt to establish that usernames separated by commas as known usernames before splitting by spaces for known usernames."	david+trac@…
11469	Add a custom field admin panel	ticket system		1.7.1	enhancement	normal		new	2014-02-03T05:27:06+01:00	2022-11-16T06:31:12+01:00	"The th:CustomFieldAdminPlugin seems to be a reasonable start for integrating a custom field admin panel to the Trac core. Here is an outline of the changes:
 * Rework the template for minor enhancements (e.g. #11027 and #11056), improved styling and to make the markup more consistent with the other ticket `admin_*` templates.
 * Add a `CustomField` class to `trac.ticket.model` that wraps the configuration. Later on, the storage can be changes from //trac.ini// to the database without changing the interface.
 * Modify the `CustomFieldAdminPanel` class to inherit from `TicketAdminPanel` and refactor.
 * Add functional test cases.

Proposed changes will be posted within the next few days."	Ryan J Ollos
13282	Ticket timeline events can't be filtered using a permission policy	ticket system		1.7.1	defect	normal		new	2020-05-02T05:05:15+02:00	2021-05-28T21:28:12+02:00	I'm trying to implement a solution for private ticket comments (th:#13776) and finding that the permission checking for timeline events is too coarse to implement a permissions policy that filters by resource realm `comment` and resource id `cnum`.	Ryan J Ollos
1233	Descriptions of Components	ticket system	0.8	next-dev-1.7.x	enhancement	major		new	2005-02-28T15:52:00+01:00	2020-12-29T09:45:39+01:00	"One annoying problem we have with our existing bug-tracking system is that users often
don't know what component to select for a ticket. They often end up choosing an inappropriate one.

One could argue that better component names would minimise this, but I've often found users to be
endlessly creative in their quest to misunderstand the (seemingly) obvious ;-)
A nice feature of bugzilla is that the component selector label is a link to a page listing the components for the project, along with owner and description. (If you prefer the link could be a separate item, like a '?' icon.)

(Currently I'm conducting a trial of trac, and I quite like it!)"	Matthew Harrison
5211	Ticket - Wiki Integration enhancement/suggestion	ticket system		next-dev-1.7.x	enhancement	minor		new	2007-04-24T17:36:50+02:00	2020-12-29T09:45:39+01:00	"Supposing that one used CamelCase to name their components, and that one then created wiki pages for their components; how about having the 'Component' column of reports created by the ticket system contain clickable links for each component that has a wiki page created for it.  Also perhaps, in the case that components do not have a page already created; those components might have a link to create the wiki page.

Thanks,
Cullen"	Cullen Newsom <cullennewsom@…>
10532	Show word diff when summary changes (instead of <old value> to <new value>)	ticket system	0.13dev	next-dev-1.7.x	enhancement	minor		new	2012-01-19T09:47:24+01:00	2020-12-29T09:45:39+01:00	"In this [http://trac.edgewall.org/ticket/8135#comment:11 summary change] you do not see any changes at once - and I guess there is not a change at all (which might be a defect).

It would be better readable if summary changes would be displayed in a diff view instead of ""<old value> to <new value>"" manner, since most summary changes are typos or small changes.

If it is a bigger change (maybe using some smart algorithm to determine that it has changed more than 50%) Trac could display it in this way: <old value> to <new value>."	framay <franz.mayer@…>
8069	[PATCH] Support list of users as options list in ticket custom field	ticket system	0.11.3	next-dev-1.7.x	enhancement	normal		new	2009-02-18T19:57:54+01:00	2020-12-29T09:45:39+01:00	"In the process of migrating from a Borland StarTeam install to Trac+SVN, I needed the ability to assign multiple users to a ticket.  Borland provided the ability to include custom Change Request fields which could be limited to the list of valid users within the StarTeam project.

Attached is a patch which implements similar behavior in Trac.  The patch introduces a simple variable replacement scheme to the options attribute of a custom ticket field.  The INI section looks like this:

{{{
[ticket-custom]
devtest_assigned = select
devtest_assigned.label = Dev Tester Assigned
devtest_assigned.options = $userlist
}}}

Code in ticket/api.py checks for a select custom field which has an options attribute of literally ""$userlist"".  If such a field is found, the field is passed to the existing function eventually_restrict_owner() to insert the listing of valid users.

The attached trivial three-line patch appears to work well against Trac-0.11.3."	Zachary Bedell <zbedell@…>
10040	Support for integer/float custom fields	ticket system		next-dev-1.7.x	enhancement	normal		new	2011-02-22T12:38:30+01:00	2020-12-29T09:45:39+01:00	"See http://article.gmane.org/gmane.comp.version-control.subversion.trac.devel/6561 for some discussion.

We'd like to be able to mark some custom fields as ""contains integer"" or ""contains floating number"". This would then let us sort numerically, validate user input, add an aggregation/summing feature, and so on.

We're not thinking of changing the ''storage'' type, nor, currently, the Python type that exists in the ticket.fields list. Instead, we just validate the user input and then later we can also attempt to convert the field value to the numeric type if we want to do sorting or summing.

This can fix #3080, but walks in the wrong way for FieldRefactoring.
"	pipern
10948	[PATCH] Clone functionality should also be available for users with TICKET_CREATE permission	ticket system	1.0	next-dev-1.7.x	enhancement	normal		new	2012-11-12T09:20:15+01:00	2020-12-29T09:45:39+01:00	"As described in ticket [ticket:4686#comment:14], it would be nice to enable clone functionality also for ""normal"" users, which have `TICKET_CREATE` permission. As you could copy / clone a ticket manually with `TICKET_CREATE` permission (by copy-paste) it should be sufficient to check `TICKET_CREATE` permission in `clone.py`.

As described in [ticket:10856#comment:6] it would also make more sense to put the clone-button on top of the properties table, since when you clone a ticket you clone '''all''' properties and not only the description."	franz.mayer@…
11367	Ticket change history not updated when deleting or renaming Components, Versions and Ticket System Enums	ticket system		next-dev-1.7.x	defect	normal		new	2013-11-16T06:29:59+01:00	2020-12-29T09:45:39+01:00	"Similar to what we saw in #4582 for milestones, the ticket change history of associated tickets is not updated when deleting or renaming the following ticket system items:
 * Components
 * Enums (Priorities, Resolution, Severities, Ticket Types)
 * Versions

The current behavior is that on rename the ticket field's value has the new name, and on delete the ticket field's value has the deleted name."	Ryan J Ollos
11856	Default values of ticket workflow fields should be configured in the [ticket-workflow] section	ticket system		next-dev-1.7.x	enhancement	normal		new	2014-12-02T01:21:31+01:00	2023-07-18T15:15:19+02:00	"The fields //resolution// and //status// in the list of `Ticket.protected_fields` ([browser:/tags/trac-1.0.2/trac/ticket/model.py@:51-52#L49]) are only modified by the workflow. #2045 moves Trac one step closer to adding `owner` to `Ticket.protected_fields` and only allowing the workflow to change the owner field (see comment:60:ticket:2045).

Having `default_resolution` and `default_owner` as attributes of a ticket workflow action and configured through the `[ticket-workflow]` section rather than the `[ticket]` section has a few advantages:
 * It should be clear that these fields are controlled by the ticket workflow.
 * Unique default values can be provided for each action in the workflow.

I've also found the attribute names `set_owner` and `set_resolution` to be a bit confusing. We might consider renaming these to `resolutions` / `owners` or `allowed_resolutions` / `allowed_owners`.

For completeness, we could also consider adding `restrict_owner` as a workflow attribute, replacing or overriding `[ticket] restrict_owner`. This was mentioned in comment:1:ticket:11976."	Ryan J Ollos
11861	Add email fields property to TicketSystem	ticket system		next-dev-1.7.x	enhancement	normal		new	2014-12-03T16:02:21+01:00	2020-12-29T09:45:39+01:00	In comment:3:ticket:11594 adding `email_fields` to the `TicketSystem` was discussed. A patch that needs more work was proposed in [a6ea05df/rjollos.git]. The proposed change will be further investigated in this ticket.	Ryan J Ollos
13185	Keywords: remove duplicates and fixup separators	ticket system		next-dev-1.7.x	enhancement	normal		new	2019-07-30T23:10:45+02:00	2022-07-12T05:47:17+02:00	"In comment:16:ticket:13179, the following changes to the keywords field were proposed:
* Fixup separators. Example: `kw1, kw2; kw3 kw4` -> `kw1, kw2, kw3, kw4` (or use whitespace rather than comma separators). This would match the behavior for the CC field.
* Remove duplicates."	Ryan J Ollos
13206	Add ICustomFieldTypeProvider interface	ticket system		next-dev-1.7.x	enhancement	normal		new	2019-09-06T20:51:38+02:00	2023-04-07T05:38:06+02:00	"Copied from [ticket:11469#comment:4]:
> Replying to [comment:3 rjollos]:
> >  * th:#7156 - API for defining new types of custom fields?
> 
> Previously, I've worked it in https://github.com/jun66j5/trac-customfieldadminplugin/commit/8532c814 by reference to FieldRefactoring. In the branch, it added `ICustomFieldTypeProvider` interface which allows to define new types.

I'd like to consider rebasing these changes and including in a 1.5.x release.

Use cases:
* th:comment:8:ticket:10284"	Ryan J Ollos
221	Creating TR for multiple components	ticket system		next-major-releases	enhancement	critical		new	2004-04-02T02:41:40+02:00	2020-09-09T13:20:24+02:00	"Its sometimes necessary to fix a bug in both a branch release and the mainline trunk. It would be very useful to have a method by which a ticket can be assigned to multiple releases 

----
Note: see rather #4298 for the association to multiple versions (or milestones). This ticket is focused on the association to multiple '''components''' (cf. comment:10)"	banerjed@…
4298	tickets linked to multiple versions	ticket system	0.10.2	next-major-releases	enhancement	critical		new	2006-11-30T09:00:23+01:00	2016-04-10T12:08:45+02:00	"As far as I understand, bug 2945 dealt only with description changes for requirement issues.

I have a different scenario. Say I have a project with versions 1.0, 1.0.1, 1.0.2 and 1.1. a bug is found in 1.0. it is fixed in some way in 1.0.2 and in another way in 1.1

What I'd like to have is the ability to see all open bugs in 1.0 or 1.0.1 (the above bug included), in 1.0.2 (the above bug is fixed, and the comment describing the fix affects 1.0.2) and 1.1 (the bug is fixed in another way)

I think it means only the ability to associate status changes with a version. maybe also priority and severity (in the above scenario, the fix in 1.0.2 may have been partial, not exactly closing the bug for the 1.0.x stream, but lowering the priority)"	ittayd@…
1329	Ticket Search should (optionally) search only non-closed tickets	ticket system	0.8.1	next-major-releases	enhancement	major		new	2005-03-21T09:19:37+01:00	2015-05-26T20:50:57+02:00	"One of the popular uses for searching (I believe) is to search the ticket database if an issue has already been filed. It would help if the search would only search tickets that have not been closed. 

This request is similar to Ticket #584 but I would like a way to filter the results so that only open tickets are displayed in the search result. It does not help much if you need to browse loads of resolved tickets to find the one open ticket you are looking for.

''fixed typos''"	Norbert Unterberg <nepo@…>
2464	Conditional fields in tickets	ticket system	0.9.2	next-major-releases	enhancement	major		new	2005-12-09T11:34:48+01:00	2021-08-19T21:34:04+02:00	"Not necessarily all possible fields should be presented to the user. There could be preconditions attached to fields, for checking if they're applicable at all and for checking if the current user can actually set/modify them.

Then, as an advanced case, instead of being an all or nothing situation, the possible content of one field could be dependent on the ticket state: see #1299, #2752 and [#comment:13].


=== Use cases ===
==== Ability to have different ticket fields for different ticket types ====
''(original one)''
When using quite different types of tickets (bug-report, requirement, etc), there is a need for different fields depending on the ticket type. 
This might add just the flexibility required for complying with existing development processes. 
Great feature in particular when support for master and child tickets is planned, trac could be more of a requirements management system beyond the issue database approach.
See also duplicates: #4028, #4643

==== Abilty to have different ticket fields for different ticket components ====
As for ticket types, but for components.
See #2752

==== Hide the ''Keywords:'' field ====
See #3281

==== Hide some fields for new tickets ====
See #1580.
This could be achieved quite simply by putting the ticket `id` in the condition.

"	johan.regnell@…
8637	"""Add to CC"" for anonymous with TICKET_APPEND permissions"	ticket system	0.11.5	next-major-releases	enhancement	major		new	2009-09-04T16:25:46+02:00	2014-07-31T15:41:40+02:00	"Currently when `always_notify_updater` is set to `false` an commenter/updater has to put himself/herself to the CC list of a ticket to be notified about future changes. However, to do so the user is required to have `TICKET_MODIFY` permissions. If an administrator only want the users to be able to comment on tickets (i.e. only grants `TICKET_APPEND` permissions) the user has no way of being notified about future changes.

So it would be nice to activate this checkbox even when the user only has `TICKET_APPEND` permissions."	Sebastian Krysmanski <sebastian@…>
3320	Custom fields can't be hidden	ticket system	devel	next-major-releases	enhancement	minor		new	2006-06-26T16:16:35+02:00	2015-05-26T20:50:57+02:00	"Though this is already fixed in the new workflow branch, it would be nice to fix this for 0.10. 

All that needs to be done is add to following [source:trunk/trac/ticket/api.py@3444#L161 here]:
{{{
#!python
'skip': config.getbool(name + '.skip', False)
}}}"	coderanger@…
6249	Customized field labels for standard fields	ticket system		next-major-releases	enhancement	minor		new	2007-10-26T14:56:12+02:00	2015-05-26T20:50:57+02:00	I'd like to be able to easily modify the labels on standard fields.	anonymous
9149	Conf option for showing previous query instead of default query	ticket system	0.12dev	next-major-releases	enhancement	minor		new	2010-03-19T12:38:50+01:00	2010-06-23T17:53:27+02:00	"Trac stores query_href into session. It would be nice to have option for using that value as a default value.

{{{
[query]
default_query = ${session_query_href}
}}}"	anonymous
9478	Concurrent ticket modifications is still possible	ticket system	0.12	next-major-releases	defect	minor		new	2010-07-02T14:02:03+02:00	2015-07-28T12:31:04+02:00	"Before saving a ticket modification, we try to detect if the page was not already modified by another user (r5449). However this check is not done within a single transaction, and therefore it can be ineffective if two changes happen concurrently.

See ticket:9235#comment:10 for an example (or `comments:10` actually ;-) )."	Christian Boos
10027	TicketQuery groups without translation	ticket system	0.12.2	next-major-releases	defect	minor		new	2011-02-14T15:49:28+01:00	2011-02-25T11:11:46+01:00	"I'm using Trac 0.12.2 with German language.
On my WikiStart page I have a TicketQuery with ""order=milestone"". The group title results in ""test milestone Tickets:"". Due to my language settings I would expect something like ""test Meilenstein Tickets:"" as the German word ""Meilenstein"" is associated with the English ""Milestone"".

Without having it tested, I assume it's the same e.g. for component (""Komponente"") and all these normally translated default fields. (see [source:/tags/trac-0.12.2/trac/ticket/query.py#L1338 here])"	the3illings@…
918	[patch] Custom Ticket Fields should support the multiple selection type	ticket system	devel	next-major-releases	enhancement	normal		new	2004-11-12T19:42:28+01:00	2018-05-12T08:56:20+02:00	"I propose an addition to the TracTicketsCustomFields.

Currently, there is support for the
simple selection field:
{{{
<field>.type = select
}}}

I would like to have the {{{multi}}} type as well, for multiple selection fields.

The usage in {{{trac.ini}}} for {{{multi}}}
would be the same as it is for {{{select}}}.

I implemented it in a crude way (see the accompanying patch).

I'm not entirely pleased with the patch: 
 * the support for query is partial (i.e. it won't work)
 * the display of the fields is not as neat as I would like

A better solution would involve a change in the database:
drop the unicity constraint on the {{{(id,name)}}} pair for 
the {{{ticket_custom}}} table. 
With that, the query support would be easier to add.

"	Christian Boos
2662	assign tickets to multiple users	ticket system	0.9.3	next-major-releases	enhancement	normal		new	2006-01-25T13:36:02+01:00	2021-09-19T18:37:53+02:00	It would be very nice, if I could assign a ticket to more than one user. I set the restrict owner-parameter to false and typed in two users. I tried with different syntax, but the trac system did not notice the ticket to belong to the them. Would be fine...	mala
2961	custom comment fields	ticket system	0.9.4	next-major-releases	enhancement	normal		new	2006-03-30T21:41:12+02:00	2018-02-26T12:59:51+01:00	"I'd like a function similar to TracTicketsCustom, but for comments.  

I'm looking to integrate time tracking into Trac to eliminate some double entry, but unlike all the folks at #710, I'd like my ""hours spent"" field to be on the comment, so we can track who is putting in the time when, and not just have one field on the ticket everyone keeps updating."	Ryan@…
3749	recent ticket-comments macro	ticket system	0.9.6	next-major-releases	enhancement	normal		new	2006-09-18T23:14:26+02:00	2020-05-19T19:23:14+02:00	I think it would be nice to have a page that lists recent ticket comments to see what tickets are being actively discussed.	Gary Wilson <gary.wilson@…>
4130	Ticket Component Interface Fails to Properly Check for Existing Component	ticket system	0.10	next-major-releases	defect	normal		new	2006-11-11T00:33:08+01:00	2015-05-26T20:50:57+02:00	"When using the ticket.model.Component class, it will raise a `TracError` if passed the name of a non-existent component on instantiation.

If the component is instantiated with an existing component name, it will assert an error if one tries to call insert().  However, if one instantiates the object with out a name, and then sets the name and owner after the fact, and then calls insert(), no checking of duplicate rows is done.

Possible borkage:
{{{
#!python
c = Component(env)
c.name = 'component1'
c.owner = 'sombody'
c.insert()
}}}

The API should be modified to either raise a TracError in the case in question, and/or provide a method for discovering whether or not a Component exist.

Personally, I think that the following would be desired behavior:
{{{
#!python
c = Component(env, 'new component')
c.insert()
}}}
Where the insert() is a noop if the component already exists.  The `exists` property could also reflect whether or not the Component instance references an existing component or not.
{{{
#!python
c = Component(env, 'new component')
if not c.exists:
  c.insert()
}}}
I find this preferable to:
{{{
#!python
try:
  c = Component(env, 'new component')
except TracError:
  c = Component(env)
  c.name = 'new component'
  c.insert()
}}}
"	pacopablo
4549	[PATCH] Ticket std/custom fields improvements - sql based values, order by, labels, value evals,  ...	ticket system	0.10	next-major-releases	enhancement	normal		new	2007-01-16T14:05:36+01:00	2017-01-02T16:49:48+01:00	"Hi, 

First to say, I find Trac very useful and programmed nicely (appologies for my English). 

Revision 5 is trac 0.10. 
Ticket fields std/custom improvements:
 * field values (combo) filled with sql
 * customized order of fields
 * std fields - customized label/default values
 * values - evaluation of variables
 
TRAC.INI with samples: 
{{{
      std fields
      default_* - default values
      order_*   - order by (not applicable for some fields - e.g. ticket title)
      label_*   - labels
      
      custom fields
      req_who.options   - sql filling the fields
      req_when.value = $(today) - variable evaluation 
      *.order
}}}

I plan to implement following - but the question is when :(  
   * obligatory/optional/hidden field definition in ini
   * init ticket callback - can change field definition (value, type, order ...)
   * save ticket callback - can check/reject/change field values
   * ticket initialization 
   * add to ticket/ticket_change ""status by user"" (like unread ticket, ticket, ...)
     can be used also as internal mail ... instead of sending the mail mark ticket/ticket_change
     to be read by some users
   * customized home page for the user - will show number of unread tickets 
     newly 
   * ticket ""factory"" for periodical tickets - e.g. one ticket generated for every month

It would be nice to have customized statuses, so in the future trac could be some kind of workflow 
system (add allowed state-transitions/persons).  
Each status could have extra fields, e.g. if status is ""fixed"" then field could be revision number.

Hope this will be useful.

Best regards from Croatia, 
Robert"	trebor74hr@…
5031	Queries ought to support less/great than for ordered values (i.e. priorities and severities)	ticket system	0.10.2	next-major-releases	enhancement	normal		new	2007-03-27T10:48:40+02:00	2014-02-19T19:06:36+01:00	I.e. expand the [is|is not] operator set a bit.	macke@…
5999	From ticket to wiki : add links to ticket/comment metadata when appropriate	ticket system		next-major-releases	enhancement	normal		new	2007-09-10T11:24:56+02:00	2015-05-26T20:50:57+02:00	"In a ticket, we have several metadata that relates to something existing in the Trac system: milestone, component, etc.

It would be helpful to have these fields link to their actual wiki page (or to a template-based url, defined in the configuration file):
 * the milestone field would redirect to the milestone page,
 * the component would redirect to the component view in the milestone page,

Plus, in case these would exist as well in the near future:
 * each keyword could redirect to a search page looking for every item with this keyword,
 * each person (reporter, owner, on cc list, anyone who adds to the ticket) could redirect to a user page summarizing done and pending work in the whole Trac.

While not adding direct context to a ticket, it would make it easier to access data related to it, without a need for a manually typed search or several clicks."	romain.dalverny@…
6154	better formatted rss feed	ticket system	0.10.4	next-major-releases	enhancement	normal		new	2007-10-09T01:18:19+02:00	2015-05-26T20:50:57+02:00	"would be nice to have more contents and details in the rss feed.

The Bucktracker Bugdar has a nice layout for RSS Feeds

see e.g. (with a rss reader)
http://www.bluestatic.org/bugs/syndicate.php"	markus.staab@…
6330	'Back to query' when no query has been used	ticket system	devel	next-major-releases	defect	normal		new	2007-11-12T12:59:29+01:00	2015-05-26T20:50:57+02:00	"I'm not sure whether its a feature or a bug:

When a ticket is entered in the search box with the quickjump syntax, the ticket page contains the usual ""previous ticket"", ""back to query"" and ""next ticket"" links.

The ""back to query"" link is quite unexpected, as no query has been used to reach the ticket page, and the default report ({6}) seems to come a bit out of the blue to me.

I would have expected that in this case (no query, direct access to the ticket) the 'Back to query' link not to be shown, and that 'previous ticket' and 'next ticket' links lead to the immediate existing tickets, ''i.e.'' for ticket #''N'', 'previous ticket' jumps to ticket #''N,,-1,,'' and 'next ticket' jumps to ticket #''N,,+1,,'', whatever their status (closed or not)
"	Emmanuel Blot
7176	Workflow actions indistinguishable from user changes	ticket system	devel	next-major-releases	defect	normal		new	2008-04-30T03:17:34+02:00	2015-05-26T20:50:57+02:00	" - someone writes a workflow action that modifies a user-modifiable ticket field
 - user selects that action, and previews the change
 - user selects a different action
 - user previews or submits changes

The changes made by the workflow action will still be present; they will not be reverted.

Internally, the code does not differentiate between user changes and workflow changes across a preview.

The correct behavior here, particularly in cases where the user modifies the same fields as the workflow, is open for debate.
"	Eli Carter
7196	restrict ticket properties to add/edit only/...	ticket system		next-major-releases	enhancement	normal		new	2008-05-05T10:16:39+02:00	2015-05-26T20:50:57+02:00	"would be nice to have the ability to define if a property should be readonly/disabled/not mentioned at all, if in ticket add-mode/edit-mode...

so e.g. the milestone field could be set to edit-mode, so the creator is not able to choose the value for it... this is the intended behavior  on t.e.o.

also the priorty field should be set by a developer, so maybe also a restriction to some usertypes would be great..

such restriction would also make sense for other fields and also in other scenarios.

this would improve the user-experience and help also the developer team, because of less misfilled tickets"	Markus.Staab
7419	Custom ticket status: customised ordering of statuses	ticket system	0.11-stable	next-major-releases	enhancement	normal		new	2008-07-09T17:52:49+02:00	2019-12-03T03:44:58+01:00	"We have a large number of custom ticket statuses now, thanks to 0.11 - it would be nice if I could define a sort order in the config file (similar to how you can do so in a [TracIni#milestone-groups-section ""[milestone-groups]""] section) so that when ordering tickets by status, they appear in my defined order."	trac+jon@…
7660	Be able to search for commenters by name	ticket system	0.11.1	next-major-releases	enhancement	normal		new	2008-09-23T00:57:03+02:00	2009-10-26T15:35:12+01:00	"Somewhat related/started by http://trac.edgewall.org/ticket/7581

On the Pidgin instance of Trac I would like to be able to search  (via the query module) for tickets that have been commented by myself...so search for text such as:

    ""...ago by bernmeister..."" 

Or really, just search for ""bernmeister"".

At the moment there are a lot of Pidgin tickets I've touched and I want to search across all tickets to tell me which ones I've touched that are still NEW (or PENDING or CLOSED or ...).

BTW, Pidgin's Trac instance does NOT have ticket reports enabled. 

What say you (please)?"	anonymous
7850	[patch] Update default_<enum> options in trac.ini when enum value is updated/deleted	ticket system	devel	next-major-releases	enhancement	normal		new	2008-12-01T18:49:08+01:00	2023-04-19T18:08:14+02:00	"I had a user complained that he deleted a component, but that the component was still showing up as the default when creating new tickets.

I explained that this is the expected behavior, since the default_component is still set to that component, causing it to be displayed.  But he pointed it that it's somewhat user-hostile to keep a default_component setting for a component that no longer exists, and I'm inclined to agree.

Likewise the default_ setting should be updated when an enum value is updated."	ebray
7884	Ticket should contain a field for the expected time to complete/fix it	ticket system	none	next-major-releases	enhancement	normal		new	2008-12-12T18:26:14+01:00	2017-05-08T11:14:10+02:00	"This would give a number of benefits, and among them:
 * a (super)user that has the rights to change the priority of the tickets can rearrange them based on the time to handle them
 * a milestone could show an expected time to be completed as the sum of the time of each ticket"	dusty@…
8403	Encourage users to select meaningful values for 'required' fields	ticket system	none	next-major-releases	enhancement	normal		new	2009-06-19T23:14:06+02:00	2009-06-26T15:57:26+02:00	"When an enum field, in particular, is marked as 'required', the blank option is removed from the select element, and the first option is selected by default, if no other default value is set.

The problem with this is that it often leads to users submitting tickets with those fields left in their default values.  It doesn't force them to select a meaningful value.

A decent workaround is to have a catchall (like 'general' for the Component field) as the default value for the field.  But I've had use cases where we want to make sure the user has paid some attention to the field.  The desired behavior here would be to have something like 'Select a Component...' as the first option.  If this option is selected when the form is submitted, a warning would be displayed, and the ticket would not be saved."	ebray
8670	Ticket owner list should not depend on TICKET_MODIFY permission	ticket system	none	next-major-releases	enhancement	normal		new	2009-09-15T00:11:24+02:00	2012-02-10T22:50:27+01:00	"It's nice to be able to use `restrict_owner` in the `[ticket]` section of trac.ini to yield a select box (dropdown) for the ""Assign to"" field.

But the list contains everyone who has a profile and has TICKET_MODIFY privileges. It would be very, very nice to have a restrict_group option after it, which would allow me to define a group with a given privilege constellation (e.g. developers), and then only have their names appear as candidates."	fewayne@…
8672	Filter ticket queries by user groups	ticket system	none	next-major-releases	enhancement	normal		new	2009-09-15T15:20:27+02:00	2015-03-30T18:37:03+02:00	"We had a need to filter the results of a TicketQuery by user groups (from the permission system) to keep query results from becoming overwhelming. The attached patch does this by expanding a 'username' like '@software' in the owner field of a query to all the users with that role. This is a very rough implementation for now (the group functionality should be provided by the permissions system and there should be a way to list groups on the Custom Query page) but I'm putting it up anyway in the hope that the idea is useful.

We use this like

{{{
[[TicketQuery(status=blocked,order=owner,owner=@software)]]
}}}
"	joshua.hoke@…
9510	Action block stays visible when no actions available	ticket system	0.11-stable	next-major-releases	defect	normal		new	2010-07-20T12:20:58+02:00	2015-03-02T22:27:22+01:00	"The action block on the ticket page is visible (empty) even if there are no actions available.

I've implemented a custom workflow for our trac site, removing the ""leave"" action for users that were having just that option (senseless). In that case though, the action block is still there, empty (senseless and ugly now :))."	fredck@…
9550	Ticket should be divisible	ticket system		next-major-releases	enhancement	normal		new	2010-08-06T04:51:22+02:00	2015-05-26T20:50:57+02:00	"Sometimes tickets are entered into the ticket system that contain more than one issue. These tickets should be diversible. When something like this happens I create new tickets with the parts and assign them to their owners. The all new ticket ids are put into the 'parent'.
It would be nice if trac could help with this task and manage a parent/child relationship between tickets. When childs of a ticket are created the parent ticket should be set on hold until all children are resolved. The parent could show a progress bar or something. Notifications for children should be send to their subscribers and the subscribers of the parent ticket."	stephan@…
9735	TicketQuery adds reporter by default	ticket system	0.12dev	next-major-releases	defect	normal		new	2010-10-31T02:01:36+01:00	2011-10-29T18:28:35+02:00	`TicketQuery` macro adds reporter row by default if using `rows` option. It seems this is [source:trunk/trac/ticket/query.py#L430 hard-coded]. It would be great to be able to disable this feature for those who wants more concise output.	Mitar
9738	"Add ""attach file"" button at the end of the ticket"	ticket system	0.12dev	next-major-releases	enhancement	normal		new	2010-10-31T21:39:09+01:00	2014-08-02T06:47:32+02:00	"Add ""attach file"" button at the end of the ticket as some (novice) users have problems finding a way to attach a file. They are used from wiki that button is at the bottom and in ticket also a change ticket form is at the bottom. So it is not really reasonable to imagine that there is one button up there (if you missed it). Even the anchor link to attachments does not help much. So I believe it would be useful to simply add ""attach file"" at the bottom, too."	Mitar
9807	Wrong sections are collapsed by default!	ticket system		next-major-releases	enhancement	normal		new	2010-11-10T01:38:35+01:00	2015-03-19T15:20:49+01:00	"Collapsing the sections in a ticke is great - the trouble is that the section that is used 99% of the time is the ""modify"" section which is pre-collapsed.

An ideal solution would be to make this system configurable (or even user configurable).

It is going to pee-off my users to now have to press that extra button... petty I know.... but its the truth."	morgand
10125	CommitTicketUpdater should call manipulators and listeners	ticket system	0.12-stable	next-major-releases	enhancement	normal		new	2011-04-10T21:35:04+02:00	2015-05-26T20:50:57+02:00	"I don't use this hook myself, but I frequently get questions about it on IRC and try to help out. One very frequent request is some or handling for additional fields or related plugins that need to act on what gets updated on the ticket.

Example can be also adjusting estimates or time spent on fixing bugs, or updating some other related fields and structures.

Anyway, I quickly scanned the source and see that we don't call ticket system manipulators or listeners? That would provide the hooks to either change fields directly together with commit-update, or be handle updating of related information after-the-fact via listener.

Any reason not to call manipulators and listeners?"	osimons
10325	Way to delete ticket comments versions	ticket system	0.12.2	next-major-releases	enhancement	normal		new	2011-08-20T23:03:11+02:00	2011-08-20T23:58:49+02:00	"In a similar way that it is possible to delete just wiki page versions, it would be great to be able to delete also ticket comments versions. Currently it is possible only to delete the comment as a whole, with all versions.

Similar maybe also for summary versions?"	Mitar
10381	Use full width for custom textarea fields, and make them collapsible	ticket system	0.12.2	next-major-releases	enhancement	normal		new	2011-09-29T11:14:09+02:00	2015-03-03T15:34:58+01:00	"The content of custom textareas might get very big, so it would be better to place these fields in full width after description field.

Furthermore it would be nice, if these fields are collapsable, so you could close them, if you do not need them at the moment."	anonymous
10396	"[PATCH] New extension point interface to reformat the ""replying to"" block in a comment"	ticket system	0.12-stable	next-major-releases	enhancement	normal		new	2011-10-05T12:13:27+02:00	2015-12-19T16:53:00+01:00	"Sometimes you don't want the original text in a response on a ticket in the ""Replying to"" line. Instead some sort of
custom formatting (e.g. abbreviation, reference no.) could be used preferably.

Solution:
A new extension point ITicketCommentFormatter defined in ticket/api.py.

The function quote_original() in ticket/web_ui.py calls the plugins, that implement the new extension point.
So it is possible to reformat the ""replying to"" block in a comment, to leave it unchanged or to drop it at all.
"	juliak <kavalerchik@…>
10755	[PATCH] CommitTicketUpdater does not allow user to define what state to jump to	ticket system	0.12.3	next-major-releases	enhancement	normal		new	2012-07-02T22:27:07+02:00	2022-03-16T23:13:24+01:00	The CommitTicketUpdater will only ever close a ticket. In general, the closed state is for when no more work is to be done, aka ''after'' QA has verified the fix. Trac should allow configuration of what state name the ticket will get updated to.	patrick.little
10983	PATCH (and RFC) for IQueryPreprocessor extension point	ticket system	0.11.6	next-major-releases	enhancement	normal		new	2012-12-13T18:27:55+01:00	2018-06-14T19:47:14+02:00	"I'm working in 0.11.6 and I don't expect this to be adopted there but I'd like to get feedback on structure, naming, etc. so I can make this patch more acceptable before porting to an active version.

In my PM work, I find it desirable to query tickets based in special ways like asking for all the tickets required by a ticket (and their predecessors, etc.) or all the descendants of a ticket.  My plugin supports this with `goal=id|id|...` and `root=id|id|...` but every place I want this support, I have to modify plugin source to use my preprocessor or query wrapper.  For example, I did this locally for Estimation Tools so I could do a workload chart of all the work in a ticket's predecessors.

By adding an extension point to the core query system, all ticket queries can benefit from the PM logic.  For example, you could do `[[TicketQuery(goal=self)]]` in a ticket to list all the ticket's predecessors.

This patch defines and uses IQueryPreprocessor to accomplish this extensible query system.  Then I implement this interface in my PM plugin:

{{{
#!py
class PMQueryHelper(Component):
    implements(IQueryPreprocessor)

    def __init__(self):
        self.pm = TracPM(self.env)


    # IQueryPreprocessor methods

    # Return the list of constraints handled by process_constraints()
    def custom_constraints(self):
        return ['root', 'goal', 'scheduled']

    # Turn custom constraints (e.g., root) into standard contraints (e.g., id)
    #
    # @param req the Trac web request object, may be None
    # @param constraints hash indexed by contraint name (e.g., 'root',
    #   'id').  Each entry is a list of values.
    #
    # @return updated constraints.
    def process_constraints(self, req, constraints):
        # constraint values are lists, TracPM.preQuery() expects
        # pipe-delimited strings.
        options = {}
        for constraint in self.custom_constraints():
            if constraint in constraints:
                options[constraint] = ""|"".join(constraints[constraint])
                del constraints[constraint]

        ids = list(self.pm.preQuery(options, req))

        if len(ids):
            if 'id' not in constraints:
                constraints['id'] = []
            for tid in ids:
                if tid not in constraints['id']:
                    constraints['id'].append(tid)
        
        return constraints
}}}

and the above `TicketQuery()` works."	chris.nelson.1022@…
11301	intermittent failure with notification test	ticket system	1.0-stable	next-major-releases	defect	normal		new	2013-09-15T18:32:54+02:00	2013-09-17T00:41:15+02:00	"The usual `make test` after a recent pull on trunk gave me the following:
{{{
ERROR: test_from_author (trac.ticket.tests.notification.NotificationTestCase)
Using the reporter or change author as the notification sender
----------------------------------------------------------------------
Traceback (most recent call last):
  File ""c:\Trac\repos\trunk\trac\ticket\tests\notification.py"", line 369, in test_from_author
    ticket.save_changes('noemail', 'More changes')
  File ""c:\Trac\repos\trunk\trac\ticket\model.py"", line 387, in save_changes
    old_db_values[name], db_values.get(name, '')))
  File ""c:\Trac\repos\trunk\trac\db\util.py"", line 121, in execute
    cursor.execute(query, params)
  File ""c:\Trac\repos\trunk\trac\db\util.py"", line 54, in execute
    r = self.cursor.execute(sql_escape_percent(sql), args)
  File ""c:\Trac\repos\trunk\trac\db\sqlite_backend.py"", line 78, in execute
    result = PyFormatCursor.execute(self, *args)
  File ""c:\Trac\repos\trunk\trac\db\sqlite_backend.py"", line 56, in execute
    args or [])
  File ""c:\Trac\repos\trunk\trac\db\sqlite_backend.py"", line 48, in _rollback_on_error
    return function(self, *args, **kwargs)
IntegrityError: columns ticket, time, field are not unique

----------------------------------------------------------------------
Ran 1212 tests in 13.759s

FAILED (errors=1)
}}}
Twice in a row... also on 1.0-stable, then not anymore: I could do 10 runs without any errors. Wonder if it's a timing issue or something like that. The errors all happened with Python 2.7 but I don't think this has anything to do with it.

Looking at the code, I find a succession of 4 `save_changes` calls, without much done in between. It might simply be that the 3rd `save_changes` (line 369) happens within the same microsecond(?) than the 2nd `save_changes` (line 361).

This raises the interesting question if we should try to fix this for the tests only or if it would be useful to introduce a small delay in general for the `save_changes` so that this API becomes ""timing"" safe.

For example, here's a very simple way to reproduce this error:
{{{#!diff
Index: trac/ticket/tests/model.py
===================================================================
--- trac/ticket/tests/model.py	(revision 12049)
+++ trac/ticket/tests/model.py	(working copy)
@@ -110,6 +110,8 @@
         ticket2 = self._create_a_ticket()
         ticket2.insert()
         ticket2['summary'] = 'Bar'
+        ticket2['foo'] = 'New value 0'
+        ticket2.save_changes('santa', 'this is my comment 0')
         ticket2['foo'] = 'New value'
         ticket2.save_changes('santa', 'this is my comment')
         return ticket2
}}}

But ""fixing"" this is not straightforward, as experimenting shows that it's not obvious how to pick the appropriate value for the delay. On Windows, adding a call to `time.sleep(0.001)` did the trick, but 0.0001 didn't. I wonder if 0.001 would be good enough for all platforms and versions of Python.

Then of course, using ""time"" as part of the key was also not the best idea we ever had..."	Christian Boos
11452	Implement a set_field workflow action	ticket system		next-major-releases	enhancement	normal		new	2014-01-21T08:13:21+01:00	2015-07-28T10:01:15+02:00	"As mentioned on the [https://groups.google.com/d/msg/trac-users/lxDpEoiF8ws/VvQXnM0YmNMJ mailing list], it would be nice to have a `set_field` action that would couple a specified field to a workflow action in the same way that `set_owner` and `set_resolution` couple the owner and resolution fields to the workflow action.
"	Ryan J Ollos
11633	Allow CommitTicketReferenceMacro to be used in tickets that aren't referenced in the changeset message	ticket system		next-major-releases	enhancement	normal		new	2014-05-31T19:12:08+02:00	2016-05-10T01:10:22+02:00	"It was discussed in gdiscussion:trac-users:sCVEU-z8y_A that it would be useful to allow the !CommitTicketReferenceMacro to be used from tickets that the changeset does not reference. Currently the message //The changeset message doesn't reference this ticket// is displayed for that use case.

TODO: Document on CommitTicketUpdater page."	Ryan J Ollos
11637	Hide versions and components	ticket system		next-major-releases	enhancement	normal		new	2014-06-02T07:43:02+02:00	2019-12-05T03:55:09+01:00	Closed milestones are only visible on the ticket form for users that possess `TICKET_ADMIN`. However, all Versions and Components are visible for all users, and the only way to hide them is to delete them. These lists can grown very long, and it would be nice to narrow the list that is seen from the ticket form, while keeping the entries on the Query form.	Ryan J Ollos
11702	Add a macro for listing ticket Components	ticket system		next-major-releases	enhancement	normal		new	2014-08-03T08:23:47+02:00	2022-11-02T17:52:58+01:00	"As discussed in comment:9:ticket:1233, it would be nice to have a macro for listing ticket system //Components//. comment:25:ticket:1233 suggests having a link to the query page from an //open tickets// column generated by the macro.

The `TicketQuery` macro might be the most similar in term of existing macros, given its output //format//s that we might want to pattern after.

Macros for //Milestones//, //Versions// and //Ticket enums// might follow after this one. A macro for listing ticket enums could be used on the TracTicketTriage#StatusandResolution page.

The macro would be useful on the TracTicketTriage, where we currently do not list the components.

Addition of this macro would deprecate [th:ComponentsProcessorMacro]."	Ryan J Ollos
11879	Prevent ticket workflow hints from wrapping	ticket system		next-major-releases	enhancement	normal		new	2014-12-12T20:46:30+01:00	2015-03-02T22:27:22+01:00	"It would be nice to prevent the text wrapping in the workflow hint that is seen even with the default workflow.

One option would be to prevent line wrapping and truncate overflow with ellipsis. The entire hint could be shown in the `title` of the `span`.

[[Image(20141212T104313.png,100%)]]"	Ryan J Ollos
11939	Workflow graph should account for user/group permissions	ticket system		next-major-releases	defect	normal		new	2015-01-27T09:11:12+01:00	2017-05-18T18:12:42+02:00	"The workflow actions have a [TracWorkflow#BasicTicketWorkflowCustomization permissions] attribute. Workflows can be configured such that different users will be configured with different actions. It would be useful to be able to visualize the workflow for a particular user or group using the [WikiMacros#Workflow-macro WorkflowMacro]. The !WorkflowMacro could be modified to accept a `username_or_group` argument.

In the ticket workflow dialog the workflow for that user could be shown in a popover. Alternatively, it might be more useful to show all the workflow transitions but make it clear which transitions the current user is allowed to initiate."	Ryan J Ollos
11959	"Add custom fields to ""Group results by"" drop down in Custom Query page."	ticket system	1.0.1	next-major-releases	enhancement	normal		new	2015-02-12T19:21:21+01:00	2015-08-09T05:33:28+02:00	"Currently, the ""Group results by"" drop down in the ""Custom Query"" page only includes standard fields.  No custom ticket fields appear there.

It would be very useful to include custom fields there.
"	anonymous
12077	Ticket workflow should support negated permissions	ticket system		next-major-releases	enhancement	normal		new	2015-05-17T01:38:13+02:00	2015-07-28T22:46:02+02:00	"This would support the user case of overlapping workflow actions in which it is redundant to show both actions to a user that has the higher permission. For example, consider a case in which any user with `TICKET_MODIFY` can reopen a ticket, but only a user with `TICKET_ADMIN` can reopen and change the owner of a ticket. The user with `TICKET_ADMIN` would see both the //reopen// and //reopen_and_assign// actions, which is redundant.
{{{#!ini
reopen.permissions = TICKET_MODIFY, !TICKET_ADMIN
reopen_and_assign.permissions = TICKET_ADMIN
}}}"	Ryan J Ollos
12162	Edit comment should be AJAX or standalone edit screen	ticket system		next-major-releases	enhancement	normal		new	2015-08-09T12:06:55+02:00	2019-09-06T19:51:32+02:00	"As of today's trunk, editing a comment means the request still loads all the other comments, which on a big ticket is massively slow.

I have yet to feel I need to take a look at other comments while editing my target.

AJAX would be preferred, it's cleraly the fastest way to do it, but perhaps an incremental improvement could be achived much quicker by just patching out the other comments from the edit page load. "	lkraav <leho@…>
12485	Add an ITicketCommentProvider interface	ticket system		next-major-releases	enhancement	normal		new	2016-05-21T01:31:23+02:00	2018-02-26T13:10:13+01:00	"The design of the CommitTicketUpdater makes it difficult to retroactively add changeset comments (#11478). !CommitTicketUpdater comments added retroactively are not likely to be in the correct chronological order. It would be difficult to remove !CommitTicketUpdater comments if it's later decided to use a plugin such as [th:TracTicketChangelogPlugin] instead of having the changeset comments inline in the ticket changelog. The repository links are no longer correct if the repository name is changed (although this is generally true for TracLinks to the repository).

I've also used the [https://wiki.jenkins-ci.org/display/JENKINS/Trac+Publisher+Plugin Jenkins Trac Publisher Plugin] which has similar issues.

I've considered another approach.
* Add an `ITicketCommentProvider` interface, that returns a comment along with a timestamp and possibly some other metadata. The ticket changelog would be created from data provided by `ITicketCommentProvider` implementations.
* One of the `ITicketCommentProvider` methods could be `get_comment_filter`, so that it would be possible to have a filter such as //Show changesets// or //Show build results//.
* The full history of a `ITicketCommentProvider` source would be available upon activating the plugin, and the comments would have the correct chronological ordering.
* !CommitTicketUpdater would create a table associating tickets with changeset. As an aside, the table would also be useful for th:#12621.
* !CommitTicketUpdater would provide comments through an implementation of `ITicketCommentProvider`.

One difficult aspect might be, on activating the plugin it might be desired to remove all previous instances of comments containing `CommitTicketReferenceMacro` instances. This could be done in an upgrade script, or through a script provided in `contrib`."	Ryan J Ollos
12854	"""rows"" can be used as custom field but rows=... condition in query doesn't work"	ticket system		next-major-releases	defect	normal		new	2017-06-27T05:43:08+02:00	2019-09-06T19:51:32+02:00	"Ticket with //rows// field can be created like this but query:status!=closed&rows=42 ignores `rows=42` condition.

{{{#!ini
[ticket-custom]
rows = text
}}}

Because `rows` parameters is used for full rows feature in ticket query. See also wiki:TracQuery#Fullrows.

I think we should add `'rows'` to `TicketSystem.reserved_field_names` because field named `rows` might be rarely used."	Jun Omae
10232	Validating Ticket accounts for new or removed fields?	ticket system	0.11.5	next-stable-1.6.x	defect	normal		new	2011-06-23T16:33:44+02:00	2023-09-23T22:33:10+02:00	"On IRC today there appeared an issue that brought back memories of #4447 and #9663.

A user has permission to reopen a ticket, and when doing so the preview looks like this:

{{{
#!div style=""background:#EEE""
 * '''status''' changed from ''closed'' to ''reopened''
 * '''resolution''' ''answered'' deleted
}}}

Just like it should. And `trac.ticket.web_ui.TicketModule._validate_ticket()` accounts for the fact that workflow may change these two fields. Problem is that the user sees an error:

{{{
#!div style=""background:#FFFFBB""
'''Warning:''' No permission to change ticket fields.
}}}

The user claims that this happens all the time, and the real question is why `changes` isn't empty after this in initial validation method:
{{{
#!python
changed = set(ticket._old) - set(['status', 'resolution'])
}}}

I suspect this is due to fields being added or removed in the system in the time since the ticket was previously edited. They are changes that will need to be recorded, but when they don't arise from user input it seems wrong to let it be a user problem.

The problem is real, but my hypothesis is not completely researched yet... But, it feels like it makes sense... :-)
"	osimons
10465	Counting of Ticket-Comments defect	ticket system	0.12.1	next-stable-1.6.x	defect	normal		new	2011-11-15T16:50:37+01:00	2023-09-23T22:33:10+02:00	"Hello,

in our trac installation I see the error that the ticket comment after comment 79 gets again the number 3. All comments after that comment are increased from 3.

OS is CentOS 6.

Regards,

Erwin Schliske"	schliske@…
11125	Truncate very long text in the ticket properties dialog	ticket system		next-stable-1.6.x	enhancement	normal		new	2013-03-19T23:17:09+01:00	2023-09-23T22:33:10+02:00	"Use a bit of CSS to prevent this from happening. It's a bit of a corner case because the text would have to be quite long, but will be easy to fix.

[[Image(Overspill.png,100%)]]"	Ryan J Ollos
11530	Ticket default_description cannot include new lines	ticket system		next-stable-1.6.x	enhancement	normal		new	2014-03-10T15:14:04+01:00	2023-09-23T22:33:10+02:00	"Two issues were discussed on the [https://groups.google.com/d/msg/trac-users/lWB2c3U3TtM/IpK3ziT3zPcJ mailing list]:
 1. It should be documented that lines 2:end need to be indented with whitespace to have a multi-line ticket description. For example,
{{{#!ini
[ticket]
default_description = line1 
 line2
 line3
 line4
}}}
 This would be applicable to any `textarea`. Description is currently the only one in `[ticket]` section (TracIni#ticket-section), but we may also need to consider the `value` parameter of `textarea` custom fields (TracTicketsCustomFields#AvailableFieldTypesandOptions).

 2. Empty lines can't be included in the `[ticket] default_description` because `ConfigParser` in Python 2.x does not appear to support empty lines. The empty lines are stripped out. We'll need a workaround such as specifying empty lines with a single `\` character, and then stripping out the character before rendering an empty line in the ticket description."	Ryan J Ollos
11612	ability to set and retain preferred comment order	ticket system	1.0.1	next-stable-1.6.x	defect	normal		new	2014-05-14T04:00:09+02:00	2023-09-23T22:33:10+02:00	"r10989 added the OldestFirst/NewestFirst/Threaded option of viewing comments, which I generally like.

However if I want something other than the default behavior, there does not seem to be a way to save my preference: I need to keep changing it on every ticket.

It would be nice to specify my default-comment-sort-order in ""Preferences"".

Also, the ticket-comment-order CHANGES automatically when I add a comment or reply-to a comment.  If I select ""oldest first"" then reply to a comment, it auto-changes to ""newest first"".  Is this intentional?

I'm on Windows 7.  I typically use Firefox (v29); but verified the same behavior in Chrome (v34) and Internet Explorer (v10)

Trac 1.0.1 using standalone 'tracd' ; Python 2.5.4 on Windows 2008 R2"	jeremy.j.dunn@…
11714	Log unknown attributes in ticket workflow	ticket system		next-stable-1.6.x	enhancement	normal		new	2014-08-11T19:27:48+02:00	2023-09-23T22:33:10+02:00	"It would be useful to either log a warning or raise a `ConfigurationError` when an attribute in the `[ticket-workflow]` section is unknown. For example:
{{{#!ini
[ticket-workflow]
resolve.permission = TICKET_MODIFY
}}}
where `permission` is used rather than `permissions`, should result in a warning such as:
{{{
10:20:50 AM Trac[default_workflow] WARNING: Unknown attribute 'permission' in [ticket-workflow] section of trac.ini: resolve.permission = TICKET_MODIFY
}}}

More extensive changes are planned, but a starting point is log:rjollos.git:t11714."	Ryan J Ollos
12123	progress says 100% but it's not finished!	ticket system	1.0.4	next-stable-1.6.x	defect	normal		new	2015-07-16T10:41:49+02:00	2023-09-23T22:33:10+02:00	"If target value is not equal to current value, it should never say 100%!

[[Image(wrong.PNG)]]"	anonymous
12449	Batch modify should block tickets when selecting unavailable action for the tickets	ticket system		next-stable-1.6.x	defect	normal		new	2016-04-10T20:03:36+02:00	2023-09-23T22:33:10+02:00	"When `[ticket-workflow]` has the following actions and both `reopened` and `closed` tickets are shown in custom query, both `resolve` and `reopen` actions are available in batch modify form.
{{{
resolve = new,assigned,accepted,reopened -> closed
resolve.permissions = TICKET_MODIFY
resolve.operations = set_resolution
reopen = closed -> reopened
reopen.permissions = TICKET_CREATE
reopen.operations = del_resolution
}}}
Then, if a user checks `reopened` and `closed` tickets and submits with `resolve` action, the `resolve` action wouldn't be applied to the `closed` tickets. The behavior is right but just confuse the users.

I think we should block submitting batch modify form when selecting unavailable actions for the tickets.

Example: it seems that //resolve// action is available for #2 in query:id=2|12449 but #2 has been resolved."	Jun Omae
12458	TypeError: coercing to Unicode: need string or buffer, NoneType found	ticket system	1.0.10	next-stable-1.6.x	defect	normal		new	2016-04-18T17:01:08+02:00	2023-09-23T22:33:10+02:00	"It seems that this issue occurs when timeline view shows th:#12742 which has blank summary.

==== How to Reproduce ====

While doing a GET operation on `/timeline`, Trac issued an internal error.

Request parameters:
{{{
{}
}}}

User agent: `Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0`

==== System Information ====
|| '''`Trac`''' || `1.0.10` ||
|| '''`Babel`''' || `2.1.1` ||
|| '''`dnspython`''' || `1.12.0` ||
|| '''`Docutils`''' || `0.12` ||
|| '''`FullBlog`''' || `0.1.5` ||
|| '''`Genshi`''' || `0.6 (without speedups)` ||
|| '''`httplib2`''' || `0.9.2` ||
|| '''`mod_wsgi`''' || `4.3.0 (WSGIProcessGroup /srv/trac-hacks.org WSGIApplicationGroup %{GLOBAL})` ||
|| '''`Pillow`''' || `3.0.0` ||
|| '''`psycopg2`''' || `2.6.1` ||
|| '''`Pygments`''' || `2.1` ||
|| '''`Python`''' || `2.7.9 (default, Mar  1 2015, 13:01:26) ` [[br]] `[GCC 4.9.2]` ||
|| '''`python-oauth2`''' || `1.9.0.post1` ||
|| '''`pytz`''' || `2015.7` ||
|| '''`RPC`''' || `1.1.5` ||
|| '''`setuptools`''' || `20.2.2` ||
|| '''`SpamBayes`''' || `1.1b2` ||
|| '''`Subversion`''' || `1.8.10 (r1615264)` ||
|| '''`jQuery`''' || `1.7.2` ||
|| '''`jQuery UI`''' || `1.8.21` ||
|| '''`jQuery Timepicker`''' || `1.0.1` ||

==== Enabled Plugins ====
|| '''`BlogDraftPlugin`''' || `N/A` ||
|| '''`ChangeLogMacro`''' || `0.4.dev0` ||
|| '''`EmailProcessor`''' || `r10962 ` ||
|| '''`FootNoteMacro`''' || `1.5` ||
|| '''`SvnAuthzAdminPlugin`''' || `1.0.dev0` ||
|| '''`TracAccountManager`''' || `0.5.dev0` ||
|| '''`TracAcronyms`''' || `0.2` ||
|| '''`TracAutoWikify`''' || `0.2` ||
|| '''`TracExtractUrl`''' || `0.3` ||
|| '''`TracFullBlogPlugin`''' || `0.1.5` ||
|| '''`TracHacks`''' || `3.0.1.dev0` ||
|| '''`TracIncludeMacro`''' || `3.0.0.dev0` ||
|| '''`TracIniAdminPanel`''' || `1.0.1` ||
|| '''`TracNewsFlash`''' || `1.0.2` ||
|| '''`TracPoll`''' || `0.3.0.dev0` ||
|| '''`TracServerSideRedirectPlugin`''' || `1.0.0` ||
|| '''`TracSpamFilter`''' || `1.0.9.dev0` ||
|| '''`TracTags`''' || `0.9.dev0` ||
|| '''`TracTocMacro`''' || `11.0.0.5` ||
|| '''`TracVote`''' || `0.5.1.dev0` ||
|| '''`TracWikiExtras`''' || `1.0.dev0` ||
|| '''`TracXMLRPC`''' || `1.1.5` ||

==== Python Traceback ====
{{{
Traceback (most recent call last):
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/trac/web/main.py"", line 554, in _dispatch_request
    dispatcher.dispatch(req)
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/trac/web/main.py"", line 267, in dispatch
    iterable=chrome.use_chunked_encoding)
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/trac/web/chrome.py"", line 1114, in render_template
    encoding='utf-8')
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/core.py"", line 183, in render
    return encode(generator, method=method, encoding=encoding, out=out)
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/output.py"", line 58, in encode
    for chunk in iterator:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/output.py"", line 339, in __call__
    for kind, data, pos in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/output.py"", line 826, in __call__
    for kind, data, pos in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/output.py"", line 670, in __call__
    for kind, data, pos in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/output.py"", line 771, in __call__
    for kind, data, pos in chain(stream, [(None, None, None)]):
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/output.py"", line 586, in __call__
    for ev in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/trac/web/chrome.py"", line 1309, in _generate
    for kind, data, pos in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/filters/transform.py"", line 686, in _unmark
    for mark, event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/filters/transform.py"", line 1145, in __call__
    for mark, event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/filters/transform.py"", line 714, in __call__
    for mark, event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/filters/transform.py"", line 682, in _mark
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/filters/transform.py"", line 686, in _unmark
    for mark, event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/filters/transform.py"", line 1081, in __call__
    for mark, event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/filters/transform.py"", line 117, in __iter__
    event = self.stream.next()
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/filters/transform.py"", line 714, in __call__
    for mark, event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/filters/transform.py"", line 682, in _mark
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/base.py"", line 605, in _include
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/markup.py"", line 378, in _match
    ctxt, start=idx + 1, **vars):
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/markup.py"", line 378, in _match
    ctxt, start=idx + 1, **vars):
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/markup.py"", line 327, in _match
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/base.py"", line 545, in _flatten
    for kind, data, pos in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/path.py"", line 588, in _generate
    subevent = next()
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/base.py"", line 605, in _include
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/markup.py"", line 316, in _strip
    event = next()
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/base.py"", line 545, in _flatten
    for kind, data, pos in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/path.py"", line 588, in _generate
    subevent = next()
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/base.py"", line 605, in _include
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/markup.py"", line 316, in _strip
    event = next()
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/base.py"", line 565, in _flatten
    result = _eval_expr(data, ctxt, vars)
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/base.py"", line 277, in _eval_expr
    retval = expr.evaluate(ctxt)
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/eval.py"", line 178, in evaluate
    return eval(self.code, _globals, {'__data__': data})
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/trac/timeline/templates/timeline.html"", line 59, in <Expression u""event.render('title', context)"">
    <span class=""time"">${format_time(event.date, 'short')}</span> ${event.render('title', context)}
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/trac/timeline/web_ui.py"", line 366, in <lambda>
    provider.render_timeline_event(context, field, event)
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/trac/ticket/web_ui.py"", line 394, in render_timeline_event
    resolution, type)
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/trac/ticket/api.py"", line 576, in format_summary
    summary = type + ': ' + summary
TypeError: coercing to Unicode: need string or buffer, NoneType found
}}}"	Jun Omae
12714	TypeError is raised when passing value to time field via query string of /newticket	ticket system		next-stable-1.6.x	defect	normal		new	2017-03-06T06:43:21+01:00	2023-09-23T22:33:10+02:00	"`/newticket?timefield=0` crashes. `/newticket?timefield=now` and `/newticket?timefield=2017-03-06T12:34:56+00:00` work. However, `/newticket?timefield=2017-03-06T12:34:56Z` differs with `/newticket?timefield=2017-03-06T12:34:56+00:00`.

{{{
02:32:43 PM Trac[main] ERROR: Internal Server Error: <RequestWithSession ""GET '/newticket?timefield=0'"">, referrer None
Traceback (most recent call last):
  File ""/venv/trac/1.2/lib/python2.6/site-packages/trac/web/main.py"", line 613, in _dispatch_request
    dispatcher.dispatch(req)
  File ""/venv/trac/1.2/lib/python2.6/site-packages/trac/web/main.py"", line 273, in dispatch
    iterable=chrome.use_chunked_encoding)
  File ""/venv/trac/1.2/lib/python2.6/site-packages/trac/web/chrome.py"", line 1159, in render_template
    encoding='utf-8')
  ...
  File ""/venv/trac/1.2/lib/python2.6/site-packages/trac/ticket/templates/ticket_box.html"", line 94, in <Expression u""pretty_dateinfo(value, field.format, dateonly=field.format != 'relative') if value else None"">
    ${pretty_dateinfo(value, field.format, dateonly=field.format != 'relative') if value else None}
  File ""/venv/trac/1.2/lib/python2.6/site-packages/trac/timeline/web_ui.py"", line 283, in pretty_dateinfo
    absolute = user_time(req, format_datetime, date)
  File ""/venv/trac/1.2/lib/python2.6/site-packages/trac/util/datefmt.py"", line 909, in user_time
    return func(*args, **kwargs)
  File ""/venv/trac/1.2/lib/python2.6/site-packages/trac/util/datefmt.py"", line 312, in format_datetime
    return _format_datetime(t, format, tzinfo, locale, 'datetime')
  File ""/venv/trac/1.2/lib/python2.6/site-packages/trac/util/datefmt.py"", line 268, in _format_datetime
    t = to_datetime(t, tzinfo or localtz)
  File ""/venv/trac/1.2/lib/python2.6/site-packages/trac/util/datefmt.py"", line 179, in to_datetime
    type(t))
TypeError: expecting datetime, int, long, float, or None; got <type 'unicode'>
}}}"	Jun Omae
12743	Closed milestones always shown on batch modify form	ticket system		next-stable-1.6.x	defect	normal		new	2017-03-23T02:10:48+01:00	2023-09-23T22:33:10+02:00	"Closed milestones are only shown on the ticket page if the user has `TICKET_ADMIN`: [browser:tags/trac-1.2/trac/ticket/web_ui.py@:1582-1583#L1572]. However all milestones are shown on the batch modify form if the user has `TICKET_BATCH_MODIFY` and `MILESTONE_VIEW`, without having `TICKET_ADMIN`.

Also, empty milestone select is shown if user doesn't have `MILESTONE_VIEW`, but field should probably just be hidden."	Ryan J Ollos
12809	Add set_owner_default attribute to specify default value of set_owner in ticket-workflow	ticket system		next-stable-1.6.x	enhancement	normal		new	2017-05-17T04:42:04+02:00	2023-09-23T22:33:10+02:00	"`set_owner` attribute in ticket-workflow currently uses `req.authname` for the default value. It would be useful to specify any username, //reporter//, //previous owner// or //component owner//. That is inspired by th:AdvancedTicketWorkflowPlugin.

|| //action//.set_owner_default = <reporter> || Ticket's reporter ||
|| //action//.set_owner_default = <previous> || Previous owner ||
|| //action//.set_owner_default = <component-owner> || Component's owner ||
|| //action//.set_owner_default = username || Any username ||

I implemented it via `IRequestFilter.post_process_request` with Trac 1.0.x."	Jun Omae
12909	Adding Ticket.select to bulk fetch records	ticket system		next-stable-1.6.x	enhancement	normal		new	2017-09-07T05:05:13+02:00	2023-09-23T22:33:10+02:00	"When retrieving ticket records in custom query, `QueryModule` executes `SELECT` query to `ticket_custom` table N times a `Ticket` instance. That behavior is slow....

I think we could reduce it to 1 time with `Ticket.select` to bulk fetch records.

th:ExcelDownloadPlugin does bulk fetch tickets at th:source:exceldownloadplugin/0.12/tracexceldownload/ticket.py@16204#L57."	Jun Omae
9624	Project-specific ticket prefixes and numbering	ticket system	0.12	topic-multiproject	enhancement	normal		new	2010-09-16T21:12:36+02:00	2020-02-10T13:36:30+01:00	"With the addition of multiple projects in one Trac instance, it could be helpful to assign ticket identifiers with project-specific prefixes and independent numbering.  The prefix would be configured wherever the project is configured. (trac.ini?)  This would help differentiate tickets when referring to them by identifier.  This is how JIRA assigns ticket identifiers.

For example, in a Trac with two project named Database (DATA) and Web Service (WS), the ticket references would look like:

* DATA-102
* WS-93

With the next Database ticket being assigned DATA-103 and the next Web Service ticket being assigned WS-94.  Since changing the way tickets are identified would probably be a huge change, maybe assigned ticket aliases would be a simpler workaround to provide the same functionality?  I'm not sure what the best way to use these identifiers as wiki links would be, but the idea is that something like the following could be used to create wiki links:

* WS-93
* !ticket:WS-93
* #WS-93
* WS:93   (this might be easiest since you can treat each project prefix as a TracLinks namespace?)

Of course, if the identifier is implemented as an alias then it could get confusing with the underlying numeric identifiers.  WS:93 and !#342 could point to the same ticket.  This also raises the question of what happens if a ticket is moved between projects.  I don't have an understanding of the amount of work involved for this type of change, so this is just a suggestion for consideration.  I do think it would be very useful for scenarios with 10+ projects sharing a ticket database.
"	nslowes@…
10681	commit_updater.py create wrong comment number	ticket system	0.12.2	undecided	defect	normal		new	2012-04-27T12:47:43+02:00	2023-05-30T09:31:09+02:00	"

 How to reproduce[[BR]]
 1. create new ticket A,B
 2. add a comment in ticket B
 3. commit message like below TWICE in hg
{{{
refs #B
refs #A

test commit updater
}}}

 Expect result[[BR]]
 Ticket A will have comment 1,2[[BR]]
 Ticket B will have comment 1,2,3

 In fact we get[[BR]]
 Ticket A has comment 1,2[[BR]]
 Ticket B has comment number 1,2,2


"	haterw@…
11197	Batch Modification of Custom Text Area	ticket system	1.0	undecided	enhancement	normal		new	2013-06-03T19:04:28+02:00	2021-02-24T07:54:32+01:00	"Text areas are excluded from batch modification (TracBatchModify#Excludedfields).

There may be utility in allowing batch modification of custom text areas in a case like the following:

There is a custom final resolution text area in a ticket. A group of tickets are resolved by updating registry settings. A `.reg` file updates all the required reg settings. The final resolution is running the reg file on systems to resolve the group of tickets.

Batch modifying the text area would make this more streamlined instead of having to go to each individual ticket to enter the info into the text area."	beardedbrawler@…
11466	in-place modifying of ticket fields like in Apache Bloodhound Trac	ticket system		undecided	enhancement	normal		new	2014-01-29T13:27:49+01:00	2017-06-09T09:10:48+02:00	"If one creates a [https://bh-demo2.apache.org/newticket new Bloodhound demo site ticket], it can modified afterwards by editing the ticket fields in-place!

This is what's missing. The recent Trac version just has a 'modify ticket' section at the bottom of the ticket, and it's quite confusing to have it shown at the top also.

Please backport the in-place editor of Bloodhound for modifying ticket fields in the top area of a Trac ticket."	s-fr@…
2908	No 'register' link (only Login), 'New Ticket' -> 'login' difficult	ticket system	0.12dev	unscheduled	defect	major		new	2006-03-20T20:12:24+01:00	2022-07-09T12:25:40+02:00	"I'm really irritated that most trac sites (including this one) doesn't offer a registration link (only Login).

This leads to some frustrating situations:

I come along, want to report a bug. Trac tells me, I need ""CREATE_TICKET"" permissions. Why do you show ""New Ticket"" if I can't??

Now, I try to find a way to register. But there isn't.

Next, i try to find some other way to post my bug report but there isn't.

I give up.

I suggest that you disable the links to the ticket system when anonymous posting is disabled plus put a big warning next to the option for the site admin."	digulla@…
11644	Add an email domain blacklist/whitelist to prevent proprietary info leaks in notifications	ticket system	0.12.2	unscheduled	enhancement	major		new	2014-06-12T15:01:55+02:00	2018-11-20T10:41:14+01:00	"For organizations potentially dealing with proprietary information within their tickets, it is necessary to be able to block notification emails outside designated domains.  Otherwise a user could inadvertently (or not) include a Cc to an email address that would leak proprietary information to non-need-to-know persons.

I tried using the `admit_domains` attribute in the trac.ini `[notifications]` section to no avail.  rjollos responded to me in gdiscussion:trac-users:7NJDOpvmTCE that this doesn't appear to be the intent of the `admit_domains` attribute and suggested submitting this for possible consideration as a future enhancement."	jeffrey.yoder@…
6820	change display for duplicate tickets	ticket system		unscheduled	enhancement	minor		new	2008-02-12T23:54:26+01:00	2015-05-26T20:55:39+02:00	"When a ticket is marked as a duplicate the ticket link is displayed with a strike-through character in a wiki page or a search. This is confusing, since it indicates to the reader, that the issue is solved, which must not be the case. The ticket is  simply marked as closed, but the request is still open.

Is it possible to use e.g. a double strike through character?

A much better solution would be the build in support for specifying the duplicate ticket, as suggested in #1395. Then the display could change depending on the status of the referenced duplicate ticket. "	trac@…
8736	Boundary of background does not encompass intended fields.	ticket system	none	unscheduled	defect	minor		new	2009-10-13T13:57:16+02:00	2010-09-10T14:47:51+02:00	Fields like the summary or component field are not encompassed by the white background.  See attached image.	Miruba
508	'Related checkins' feature	ticket system	0.7	unscheduled	enhancement	normal		new	2004-06-03T20:52:37+02:00	2010-11-17T09:24:44+01:00	"In CVSTrac, a ticket has a field called ""Related Checkins"" which shows a list of checkins (they would be changsets in trac) and their comments.  

You can add and remove from this list by editing a comma-seperated list of related checkins.

However, the most useful part, is that by putting a ticket number into your checkin message, it automatically adds that checkin to the ""Related Checkins"" of the ticket.

Eg. svn commit -m 'Added the ability to edit existing tickets. This fixes ticket #411'

Then when you view the ticket #411 you can see that checkin there without doing any more work.

This feature made CVSTrac sooo useful, because it was very easy to make this connection from the ticket to the checkins that attempted to fix it.

bonus marks:

The whole idea of two-way linking useful in general -- once you had this feature you might also show wiki pages linking to a ticket, or tickets linking to a wiki page.  Often with information given by people, the incoming links are as relevant as the outgoing ones.  

BUT the automatic pingback from the checkins to the tickets is by far the most useful!
"	dobes
925	[PATCH] Allow wiki syntax in labels for custom fields	ticket system	devel	unscheduled	enhancement	normal		new	2004-11-13T22:11:29+01:00	2017-05-17T01:18:25+02:00	"The proposal is to add a possibility to use Wiki syntax in labels for custom fields.

Example 1: We need to put emphasis on ''Platform'' field
{{{
[ticket-custom]
platform         = select
platform.order   = 1
platform.label   = '''Platform'''
platform.options = |Intel P4|Intel XEON|AMD Athlon 64|Other
}}}

Example 2: We need to define a link to help screen for ''Platform'' field
{{{
[ticket-custom]
platform         = select
platform.order   = 1
platform.label   = [wiki:HelpPlatform Platform]
platform.options = |Intel P4|Intel XEON|AMD Athlon 64|Other
}}}

Attached patch contains an implementation for the proposal.
"	pkou <pkou at ua.fm>
2775	Automatic matching of similar issues	ticket system	0.9.4	unscheduled	enhancement	normal		new	2006-02-17T11:07:42+01:00	2015-05-26T20:55:39+02:00	So in order to make things easier when prioritizing, it would be really cool to see something that displays how many issues there are with closely matching content. This would help when duplicate tickets are created, in order to more easily show the user where the dupes are, and also when prioritizing which issues should be worked on first (if the basis is the amount of requests)	chris@…
3003	milestone could be a ticket	ticket system	0.9.4	unscheduled	enhancement	normal		new	2006-04-09T09:31:51+02:00	2015-05-26T20:55:39+02:00	"can milestones be implemented as tickets too, just by marking a ticket as milestone? a milestone can depend on other milestones, they can be in parallel, they have a responsible, they have an importance, and they depend on the completion of tickets.

currently the milestone concept has a few weaknesses:
 * changes are not tracked
 * no responsible
 * no dependencies (or just implicit by setting dates)
 * consolidated view over multiple trac instances, i.e. have a big milestone consisting of small ones stored in other trac instances.

mark a ticket as a milestone, intertrac, and ticket dependencies would solve 95% of these issues. do you see any disadvantage in doing this?

"	ThurnerRupert
3785	Regular Expression Match against custom field values	ticket system	devel	unscheduled	enhancement	normal		new	2006-09-25T23:42:20+02:00	2015-05-26T20:55:39+02:00	"It would be handy to add an option to the Trac Custom Fields feature that allows a regular expression match string as a sanity check against a custom field.  As some fields require the flexibility of text input, but within certain parameters that a SELECT field doesn't offer, this could be very handy.  The match string would just have to evaluate to true if the field works.

I did a few searches and didn't see anything like this -- please enlighten me if otherwise.  I could attempt to look at a patch if there is interest, though I haven't worked with Python before.

Suggestion for implementation:
{{{
[ticket-custom]
test_date_field = text
test_date_field.label = Test a Date
test_date_field.value = 
test_date_field.match = /\d{4}-\d{2}-\d{2}/
}}}
"	nmelnick@…
4173	"When ""View Ticket"" is selected, sub-options should always be visible."	ticket system	0.10	unscheduled	enhancement	normal		new	2006-11-15T14:00:38+01:00	2015-05-26T20:55:39+02:00	"This request is to help lower the learning curve and to make navigation more obvious.

I've used trac for many months now, but still keep forgetting how to navigate to ""Custom Query"". Some people in my team didn't know this feature exists - they just use Search. Why? The link is not always visible. 

When viewing a ticket (where I spend most of my time), the ""View Tickets"" button is selected (but with no sub-options shown). Therefore I never think to click it again. So instead: 
 * I click something else like ""Search"". Nope not there...
 * I click ""View Tickets"", and the text appearing on the left attracts my view. I don't even notice something small has appeared under ""view tickets"", because there was nothing there before. 
 * I scratch my head and hunt around some more.

'''Proposed solution''':

In all screens where the ""View Tickets"" button is rendered selected, the two sub-options ""Available Reports"" and ""Custom Query"" should also be displayed.

"	l.usherwood@…
5378	ajax bandbox for input of milestone, component, assign to, and cc	ticket system		unscheduled	enhancement	normal		new	2007-05-26T14:01:52+02:00	2015-05-26T20:55:39+02:00	"it would be gread to have a ajax bandbox (see [http://zkoss.org/zkdemo/userguide/ zkoss userguide, bandboxes) for the following fields:
 * milestone: select one, search not necessary if they are sorted right, link to add a new one
 * component, search, select one, link to add a new one
 * assign to, search, select one
 * cc, search, multiple select

with jquery i did not see a similar demo, sorry.



"	ThurnerRupert
6548	different types of ticket need different workflows	ticket system	0.11b1	unscheduled	enhancement	normal		new	2007-12-23T02:02:06+01:00	2017-05-17T00:53:34+02:00	"Actions should be selectable based on the ticket type (different Workflows for different tickets.

This is becoming a frequent request, with clear usecases.  The closest the current implementation will allow is to have a plugin provide a `triage` action that sets the next state based on the ticket type, so a `new` ticket would move to `new_task`, `new_defect`, etc., and the workflow graph would separate at that point."	anonymous
7290	restrict_owner_force Option to populate user list	ticket system		unscheduled	enhancement	normal		new	2008-06-01T20:36:53+02:00	2010-07-02T23:18:04+02:00	"The restrict_owner setting changes the field to a dropdown list that has (1) TICKET_MODIFY rights and (2) logged in at least once.

In an environment where you add users - and want them to be assigned tickets - even if they have not logged in before can be useful. Maybe the following option can be added:

Something like Add restrict_owner_force = TRUE in ini file to populate the list with the TICKET_MODIFY rights, without having logged in. This way either the filtered and unfiltered lists can be made available depending on the environment requirements. I have need for both situations."	bill.meyer@…
7300	[PATCH] Support for ticket reassignment in trac-post-commit-hook	ticket system		unscheduled	enhancement	normal		new	2008-06-04T00:27:22+02:00	2010-07-19T09:34:30+02:00	"I extended [source:trunk/contrib/trac-post-commit-hook trac-post-commit-hook] to support reassignment in the form of:

reassign #1 to user
assign #1 user
"	ian@…
7911	Optional validation for custom fields	ticket system	none	unscheduled	enhancement	normal		new	2008-12-24T18:04:39+01:00	2010-07-03T23:09:21+02:00	"JQuery permits a nice environment to build custom/dynamic drop-down lists for custom fields in trac tickets; unfortunately validation for the ticket fails as the dynamic value for a field with an option list cannot be found in the configuration file.

At least two solutions are possible: 
 1. Add an option for turning off validation in comparing the value against the option list, and
 1. Allow for dynamic validation.

I have implemented the solution for #1 (attached)."	trac@…
8163	Grouping owners	ticket system	none	unscheduled	enhancement	normal		new	2009-03-26T12:18:11+01:00	2010-06-10T21:13:54+02:00	"If I set restrict_owner = 'true' in trac.ini, I can select from a list of people who have the proper permission to edit tickets as ""owner"". The drop down list itself is only alphabetically arranged, without any classifications. 
It would be good if there is a something to set the drop down list like the following example.
{{{
Group 1
- User A
- User D
Group 2
- User E
- User F
Group 3
- User B
- User C
- User G
- User H
}}}
"	repeat <repeat@…>
8653	[PATCH] Don't allow anonymous users to modify some fields	ticket system	0.11.5	unscheduled	enhancement	normal		new	2009-09-09T19:15:47+02:00	2022-11-08T12:06:28+01:00	"This patch lets you set a comma separated list of fields that won't be visible at /newticket time to users without TICKET_MODIFY status. 

Included is a bonus exception check we received when there were non-numeric ticket numbers. 

To use:  in trac.ini, we have this line:
{{{
[ticket]
not_anon_fields=load,priority,keywords,revw,owner,cc,xref,weeks,milestone
}}}

These are fields we do NOT want 'anonymous' users to modify when creating a ticket.  (For example, revw is used to mark a ticket with the name of a reviewer.)

Note that there is a default list of fields hidden as well with this patch. The default could be made empty.
"	Steven R. Loomis <srl@…>
8702	Different workflows when viewing own tickets/others tickets	ticket system	0.11.5	unscheduled	enhancement	normal		new	2009-09-29T22:49:10+02:00	2010-07-04T00:04:49+02:00	"I want to have an ""accept and resolve"" workflow for accepting someone else's ticket and closing it in one step, but it's extraneous when you're viewing your own tickets. It would be nice if I could create a workflow that would only show up when you're viewing your own ticket, or only show up if you're viewing someone else's ticket. Maybe something like `workflow_name.owner = ( self | others | any )` (of course `any` being the default, the current behavior)."	adrian.price@…
9289	Permissions for custom ticket fields	ticket system	0.11.4	unscheduled	enhancement	normal		new	2010-05-04T12:17:24+02:00	2017-02-05T08:55:12+01:00	"I would like to request a feature to be able to specify permissions for custom ticket fields. So that for a defined custom field you would be able to define users which can edit it on ticket opening, edit it later and also see it (or not) altogether.

This is very hard to do properly with a plugin as it requires finding out in `post_process_request` phase where all field has been displayed and removing that (ticket view, RSS, alternative views, ticket notifications, ticket queries, searching tickets...). It would be much easier if Trac would simply remove it from a list of fields in the first place if user would not have access to it (in a given ticket state)."	Mitar
9495	CommitTicketUpdater - git and replayed commits	ticket system	0.12dev	unscheduled	enhancement	normal		new	2010-07-11T20:33:36+02:00	2014-10-13T23:46:13+02:00	"I do all my development over two branches, a stable one and an experimental one, which I merge periodically. So, each time I merge `stable` into `experimental`, commits from `stable` are again passed on to the ticket updater. So, sometimes this ends up producing duplicate comments and the ticket being closed twice...

My opinion is that could be an option that would somehow trigger the detection of duplicate commits and ignore them. I'm not very sure how to do this, if I should check if there's already a comment with the given commit sha1 associated with the ticket (kind of hacky), or checking the past repository history (ignoring the last changeset) for the commit (not sure how fast it will be).

I would be willing to produce a patch for that, if you believe this is something worth investing time on. Otherwise, I can just try changing a bit my commit hook.
However, I believe that this will be a problem with most distributed VCs, so..."	pferreir
9505	Missing feature from ticket query module: color tickets based on contents of field	ticket system		unscheduled	enhancement	normal		new	2010-07-16T18:08:16+02:00	2015-06-11T20:58:31+02:00	"'''Note: The report module is being phased out in its current form because it seriously limits the ability of the Trac team to make adjustments to the underlying database schema. We believe that the query module is a good replacement that provides more flexibility and better usability. While there are certain reports that cannot yet be handled by the query module, we intend to further enhance it so that at some point the reports module can be completely removed. This also means that there will be no major enhancements to the report module anymore.'''

I think that a missing feature is the ability to color tickets based on values. For example, you can color tickets red that have the priority of ""blocker"".

If this already exists, could you please provide some documentation on how to accomplish this query?"	aaronaddleman@…
9706	New ticket_change class: commit	ticket system	0.12-stable	unscheduled	enhancement	normal		new	2010-10-23T00:58:34+02:00	2010-12-28T23:54:39+01:00	"We have had an issue on our instance of TRAC where a developer typed a commit message awkwardly, and (because he had an edit button), attempted to fix the wording.

The problem he had was that upon clicking submit, the page would refresh but the changes would not be applied, yet if he would click edit again, his changes would be present there.

While I do consider this a bug, I respect the fact that as it stands, it would be way too hard and unnecessary to change, because you would cause an instance where a commit message says one thing, and the TRAC comment says another.

I am proposing a new type of value for use in the ticket_change table, ""field"" column, named ""commit"".

This would be functionally identical to the comment 'field' type, except it will show the reply button (maybe), but remove the edit button from view. It should only be set when using the commit ticket updater plugin, and similar methods."	jsalaz@…
9930	Allow configuration of ticket query cache time	ticket system	0.12.1	unscheduled	enhancement	normal		new	2010-12-15T11:36:16+01:00	2021-12-25T01:55:18+01:00	The [/query] page stores the query results for one hour in the user session. When the same query is run in this time period the differences are highlighted with italic font. I would like to be able to alter this behavior, either by disabling the cache or by reducing the cache time, which is hard coded as one hour.	Jorrit Schippers <jorrit@…>
11321	browser doesn't highlite the last opened ticket	ticket system		unscheduled	defect	normal		new	2013-10-07T14:52:09+02:00	2013-10-07T20:07:05+02:00	"go to an ticket overview list,
open a ticket,
now go back (with the BROWSER back) to that overview,

expected:
=> it is clear to see which ticket was last opened

actual:
=> no idea which ticket was opened"	anonymous
11424	Remove `req` from ITicketActionController method signatures	ticket system		unscheduled	enhancement	normal		new	2014-01-01T19:43:22+01:00	2021-06-01T00:35:16+02:00	"Currently all methods of the `ITicketActionController` interface require a `req` request parameter.  This couples the `ITicketActionController` system tightly with web requests, and makes it very difficult to use workflow components at all in contexts other than a web request where the requesting user is directly viewing or acting on a ticket.  This is because a `Request` object is difficult to instantiate directly (needs an environ and start_response); has an indeterminate interface (environ keys, request callbacks, etc); and must be capable of handling exceptional situations like `req.send` and `req.redirect`.

If this coupling were looser, it would become much easier to use workflow in situations like:

 * workflow-aware actions triggered by commit messages (#10755)
 * workflow-aware actions in `ITicketChangeListener` components that subscribe to ticket_change events, where a `req` is not available
 * directly through any Python code that has a Trac environment, a ticket, and a (real or simulated) initiator for a workflow action

I looked through the code of the following `ITicketActionController` implementations:

 * `trac.ticket.default_workflow`
 * th:AdvancedTicketWorkflowPlugin
 * th:WorkflowNotificationPlugin
 * th:MultipleWorkflowPlugin
 * th:TypedTicketWorkflowPlugin
 * th:TestManagerForTracPlugin / th:TracGenericWorkflowPlugin

As far as I can see, the only request properties that are ever accessed in any of these implementations are `req.perm`, `req.args` and `req.authname`.  There are only two exceptions, neither of which seems critical.  (One is discussed below; the other is a hack in my own th:WorkflowNotificationPlugin which I'd prefer to clean up anyway.)

So, I'm proposing to replacing the `req` argument in `ITicketActionController` method signatures with individual arguments `perm` (a Permission object), `args` (a dict), and `author` (a string).  An illustration is provided in the attached patch.

Unlike a Request object, these three parameters are trivial to construct from any calling context and to instantiate directly.

Aside from backwards compatibility concerns, the only potential problem I see, based on the documented interfaces and their implementations in the wild, is that it's recommended to use `trac.web.chrome.add_warning(req, ...)` within a component's `get_ticket_changes` method if `args['preview']` is set and if the component will have any side effects in `apply_action_side_effects`.  In practice, I can only find one use of this recommendation, in th:AdvancedTicketWorkflowPlugin's `TicketWorkflowOpXRef` component.  This could be solved by extending the `get_ticket_changes` method with an optional `add_warning` callback/accumulator (which could be set to `lambda *x: chrome.add_warning(req, *x)` in web contexts, or e.g. a logging.warn call in other contexts) or by extending the interface with a `get_ticket_change_warnings` method."	ethan.jucovy@…
11477	Extend ITicketManipulator (or similar) - Filter Comments	ticket system	1.0.1	unscheduled	enhancement	normal		new	2014-02-06T21:50:03+01:00	2014-03-09T16:23:41+01:00	"Example:

Version 1.0.1 code in ticket/web_ui.py

{{{#!python
def _get_comment_history(self, req, ticket, cnum):
    history = []
    for version, date, author, comment in ticket.get_comment_history(cnum):
        history.append({
            'version': version, 'date': date, 'author': author,
            'comment': _(""''Initial version''"") if version == 0 else '',
            'value': comment,
            'url': self._make_comment_url(req, ticket, cnum, version)
        })
    return history
}}}

If ITicketManipulator in ticket/api.py contained a method like:

{{{#!python
def comment_filter(self, req, version, date, author, comment):
   """"""Validate if a comment can be displayed
    Must return a 4-tuple corresponding to version, date, author, comment
    The 4 may be empty or None to ""nullify display of the comment
    """"""
}}}

The code from above in web-ui.py could be rewritten as:

{{{#!python
def _get_comment_history(self, req, ticket, cnum):
    history = []
    for version, date, author, comment in ticket.get_comment_history(cnum):
        for manipulator in self.ticket_manipulators:
            version, date, author, comment = manipulator.comment_filter(req, version, date, author, comment)
        if version or date or author or comment:
            # Only if the comment has not been fully ""nullified"" add it to the list to display
            history.append({
                'version': version, 'date': date, 'author': author,
                'comment': _(""''Initial version''"") if version == 0 else '',
                'value': comment,
                'url': self._make_comment_url(req, ticket, cnum, version)
                })
    return history
}}}

This allows filtering of comments by Plugins which can create set of rules (user, group, permission based, ...)

The existing th:PrivateCommentPlugin is broken beyond 0.12 because it filters the Template Stream and needs to adapt to changes in the stream.

The proposed modification allows filtering ""objects"" rather than content and therefore eases up the creation of a Comment Filtering Plugin."	anonymous
12907	Avoid duplicate references by commit_updater	ticket system			enhancement	normal		new	2017-09-06T11:27:52+02:00	2017-09-10T05:38:20+02:00	"When creating new branches out of a git repository with commits with references to ticket, CommitTicketUpdater will happily add new, duplicate, comments.

Attached patch for 1.0 adds two features along with their toggles :

1. detection of comments that already reference the changeset that is being ''added'', and skips the update in that case. So no new comment nor email notification;
1. and the disabling of email notifications when a changeset references to a closed ticket. The comment in the ticket **is** added however.

Point number 2 is specially helpful for the case where an svn repository is migrated to git: even though it is nice to have the reference to the git commit, it's useless to spam people about ancient commits.
"	Raphael Geissert <atomo64+trac@…>
2616	Show ticket submission time in Change History	ticket system	0.9.3	next-major-releases	enhancement	minor		new	2006-01-16T20:52:30+01:00	2015-05-26T20:50:57+02:00	"It would be very useful if it were easier to figure out the exact date and time of a ticket's submission. Currently it's only shown as e.g. ""three months ago"" at the detailed ticket view instead of ""2005-10-12 15:18"". All modifications are shown with the exact second it happened, but not the original creation.[[BR]]
I suggest the time of creation is added to the Change History of the ticket view."	johan.levin-atsign-lorensbergs.com
3734	Provide Possibility to 'freeze' a Milestone	ticket system	devel	next-major-releases	enhancement	minor		new	2006-09-16T02:04:54+02:00	2015-05-26T20:50:57+02:00	"It should be possibly to flag a milestone as 'freezed', thus no new tickets can be filed.

see #3730 for an example-conflict."	ilias@…
5663	Suggestions for Ticket Reports	ticket system		next-major-releases	enhancement	minor		new	2007-07-05T21:10:08+02:00	2015-05-26T20:50:57+02:00	"One nice feature of the ticketing system at http://versionone.com/ is the ability to edit ''Ticket Properties'' fields in the table view itself, i.e. via dropdowns right there, without having to open each individual ticket. I know this feature would help me.

Another idea which would help me is to load at least part of the ''Description'' field (even in a plain text version) onto the report page and then show it to me in a popup when I rollover the ticket. This would also help me, as the ''short summary'' is often not enough to recall the full details.

Thanks."	fredthejonester@…
7558	"New TracQuery match operator for ""contains the word"" would be useful"	ticket system	0.11.1	next-major-releases	enhancement	minor		new	2008-08-24T04:52:14+02:00	2017-10-06T00:43:32+02:00	"In a number of situations, it's useful to be able to search field values that ''contain a certain word'', not just a certain string (as `~=` does). The distinction is essentially a word boundary regex versus an all-inclusive regex. That is, I'd like to be able search like this:

{{{
.*\bmyvalue\b.*
}}}

where `\b` is a ""word boundary"" as defined by [http://www.pcre.org/pcre.txt the PCRE standards]. Right now, using `~=`, I can only search like this:

{{{
.*myvalue.*
}}}

The most pressing use case for such a facility (at least for my projects) is support for [http://marc.info/?l=trac&m=121936459010029&w=2 ""subticket keywords"", an extremely flexible technique of associating one ticket with another] by using the TracLinks conventions in the keyword field.

For example, to associate a new ticket as a ""subticket"" of ticket:13, I place `#13` in its keyword field. Currently, this can later be extracted with a TracQuery such as `[[TracQuery(keywords~=#13)]]` however this incorrectly matches `#130`, `#131`, and so on. Thus, a word boundary match operator was [http://marc.info/?l=trac&m=121941561920166&w=2 suggested by Remy Blank later in the same thread].

At first blush, it seems that the TracQuery ""mini language"" is actually [source:trunk/trac/ticket/query.py@7484:439-444#L437 implemented with simple ANSI SQL-based wildcards], which makes implementing word boundary matches non-trivial. I'd imagine one might have to wrap a call to [source:trunk/trac/ticket/query.py@7484:254-311#L254 Query.execute] that catches the results of a `~=` query and then filters these results further (possibly with a [Wikipedia:Decorator_pattern decorator]?)."	meitarm@…
8677	Ability to follow/unfollow a ticket	ticket system	none	next-major-releases	enhancement	minor		new	2009-09-16T09:05:59+02:00	2011-06-07T17:51:05+02:00	"It would be great to be able to start following (receive notifications to email) or stop following any ticket you are watching in one click. This would work for logged in users only of course. 

"	Alexey Timanovsky <timanovsky@…>
11493	Add config option to show changeset files in ticket's comment	ticket system	1.0-stable	next-major-releases	enhancement	minor		new	2014-02-21T02:50:45+01:00	2017-09-09T00:45:38+02:00	"I want to confirm changeset files in comment related to the ticket. It's useful to find a particular file related to the ticket. I made a patch to do this. How does that sound?

{{{ #!ini
[ticket]
commit_ticket_reference_show_files = true
}}}

[[Image(show-changeset-files-in-comment.png)]]"	t2y <tetsuya.morimoto@…>
548	[Patch] Support for subcomponents	ticket system	devel	next-major-releases	enhancement	normal		new	2004-06-15T04:44:22+02:00	2015-12-19T16:59:28+01:00	I'd like to request the addition of a subcomponent field.  This would be useful for breaking large component pieces into smaller subsets.  In particular, the project I'm working on includes a core engine and several plug-in style projects.  It makes sense to keep it all in the same svn repository as well as the same trac db.  However, with the addition of a subcomponet (or feature or something like that), the granularity of tracking for the plug-in projects would be much better.	acarter24@…
1395	Text box for duplicate when a bug is a duplicate	ticket system	devel	next-major-releases	enhancement	normal		new	2005-04-03T13:22:08+02:00	2023-05-04T02:49:53+02:00	"There should be a form item for writing the bug number when you mark a ticket as a duplicate.
Developers are lazy, they tend to forget stuff, etc.
The original bug should get a notice that given bug was marked a dupe of it

"	ludde
2467	Link user name in reports to custom query showing that user's open tickets	ticket system	0.9.2	next-major-releases	enhancement	normal		new	2005-12-09T16:46:10+01:00	2015-05-26T20:50:57+02:00	It would be nice if the usernames in the report view linked to custom queries showing active tickets belonging to that user.	earle at downlode dot org
2497	Change custom query with group to also have a table of contents for group	ticket system	0.9.2	next-major-releases	enhancement	normal		new	2005-12-16T19:28:33+01:00	2015-05-26T20:50:57+02:00	If group results option is selected in a custom query it would be nice if the results starts off with a table of contents (TOC) with links to the coresponding table.  For example if group by components is selected then list of components should be listed with links to the individual component ticket tables.  It may also be good to list the number of tickets that are new, assigned, reopened, and closed for each component in the TOC.	anonymous
3153	Include tickets without milestone in iCal	ticket system	0.9.5	next-major-releases	enhancement	normal		new	2006-05-15T16:53:34+02:00	2015-05-26T20:50:57+02:00	Currently if you wish to download your tickets for a specific project in Ical format that can be read using Mac's Ical (which is what I use). Often I write tickets with no specific milestone on gamedev.acm.cs.rpi.edu and I would like them in the same format as all my other tickets. My request is that the feature enabling me to download milestones to Ical be implimented on the ticket system.	bowenk@…
3255	Context-sensitive new ticket prefill	ticket system	none	next-major-releases	enhancement	normal		new	2006-06-13T00:27:35+02:00	2015-05-26T20:50:57+02:00	"I'd like to extend the idea behind a `worksforme`-ed #3253 as follows: it'd be nice to enter a ticket quickly based on the conditions I'm ''looking at'' right now.

  Example: I create a query for __owner__ ''X'' and __milestone__ ''Y'' using TracQuery. I review the results and decide to add to the workload of ''X'' and create one more task. It'd be great to simply be able to click on a link that says __Create new ticket in this view__ (not a good wording) or something like that.

Similarly, and that's what #3253 was proposing, it'd be nice to create a ticket right from the milestone's page that is assigned to this milestone. Or create a ticket assigned to this milestone and a particular component by clicking one of the `[`now imaginary`]` knobs next to one of the __sort by ''component''__ progress bars on the right of the milestone's view. Or by clicking somewhere in the query that results from clicking on this progress bar... You get the idea.

Moreover, I actually would prefer the standard __New Ticket__ action to be ''context-sensitive'' as I describe above and always prefill ticket fields for me based on what is in the current page's view.

To extend this beyond milestones and queries, when I'm looking at a Wiki page or a commit log or a source code item, and I click __New Ticket__, I'd be glad to see that there's a [wiki:TracLinks TracLink-ified] reference to that object. Maybe that's one of the ideas TracObjectModelProposal is trying to accommodate, but it would need help from Trac on how to ''deduce'' some relations between Trac objects, in this case to help fill out a ticket more quickly."	s.lipnevich@…
4374	Custom Tickets Select Box Auto-generation	ticket system	0.10.2	next-major-releases	enhancement	normal		new	2006-12-11T16:36:37+01:00	2015-05-26T20:50:57+02:00	"It would be nice if instead of specifying all the available options for a select box like: 

option1|option2|option3...

in trac.ini, which could run into hundreds, if instead you could specify some kind of query so that this list is automatically generated from the database and keeps up to date. For example, if you had 'is associated with customer' as a select box and the customers are generated from a 'Customers' table in the database. e.g. 'select name from Customer where active=1' so that only customers who are still active (assuming this list changes quite often) are shown in the list. 

Apologies for the poor example.

At the moment I have written a script that reads trac.ini and modifies this manually but it is far from ideal as it only runs once a day so the data isnt always up-to-date"	a.rodger@…
8135	[PATCH] Prev, Query, Next links at bottom of ticket page	ticket system	0.13dev	next-major-releases	enhancement	normal		new	2009-03-17T19:27:21+01:00	2015-05-26T20:50:57+02:00	"When you're viewing a ticket after selecting it from some report/query, there are usually three links at the top of the page saying (roughly):

* Previous ticket
* Back to Query
* Next ticket

Is there some way to have these links repeated at the bottom of the page? When updating tickets, most of the work happens at the bottom of the page and it's a pain to keep scrolling to the bottom to do the work, then to the top to click ""Next ticket"" then back to the bottom again...

I tried looking around for some HTML templates that I can edit to achieve this but I got as far as finding that the changes I need to make are probably in ticket/web_ui.py before calling it a day.

Can I request this feature be added? Also, if there is a quick hack I can make to my existing (trac 0.11.3) install, I'm all ears...

Ta.
"	srevill@…
8314	Dynamic Default Values	ticket system	0.11-stable	next-major-releases	enhancement	normal		new	2009-05-22T22:30:53+02:00	2015-10-13T22:35:38+02:00	"In the config file, we have options to provide default values for multiple fields. It appears that these can only be string literals though. 

Is it possible, or easy to implement, a dynamic default value. 

More specific:

The way I have permissions set-up, there are several groups. Each user belongs to one of these groups, and has no other permissions set. 

I want this group to be the default value for a field, so that we can later sort them by what group/company these tickets originated from.

thanks"	anonymous
8681	[PATCH] Allow adding usernames to a ticket CC list	ticket system	0.11.4	next-major-releases	enhancement	normal		new	2009-09-22T00:27:26+02:00	2015-12-19T17:03:38+01:00	Allow adding usernames to a ticket CC list instead of e-mail addresses for users which can only select checkbox to add themselves to the CC list (and thus cannot control content). For our setup it would be enough to just add a project-wide configuration switch which would tell Trac whether to prefer usernames or e-mail addresses.	Mitar
13223	"""All Tickets Reported by Me"" should mention if a ticket is open or closed"	ticket system		next-major-releases	enhancement	trivial		new	2019-11-17T19:57:48+01:00	2019-11-17T20:28:47+01:00	"""{9} All Tickets Reported by Me "" should mention if a ticket is open or closed.
Powered by Trac 1.2.2

Quite important, vs. other items it mentions. Do add a column."	jidanni@…
7617	Various ticket fields don't like leading or trailing /	ticket system	0.11.1	next-stable-1.6.x	defect	minor		new	2008-09-10T23:53:29+02:00	2023-09-23T22:33:10+02:00	"As an example, create a milestone where the name either starts or ends with a `/`. It will be visible in the roadmap, but clicking on the link will lead to an error, saying that the milestone cannot be found. The same problem applies to other enumerated fields like components, priorities or versions, when edited in the admin module.

The problem is due to the roadmap module creating links to milestones using `req.href.milestone(milestone_name)`, and `href` stripping leading and trailing slashes at [source:branches/0.11-stable/trac/web/href.py@7493:147#L147 this location]. The same analysis applies to the admin module.

I'm not sure if the solution is to build the milestone and admin links differently, or to remove the automatic stripping in `Href`. Opinions welcome."	Remy Blank
12367	Error message with untranslated text when removing no selected items	ticket system		next-stable-1.6.x	defect	minor		new	2016-02-26T11:46:59+01:00	2023-09-23T22:33:10+02:00	"In /admin/ticket/priority page, `Remove selected items` with no selection shows the following message in French.
{{{
Aucun priority sélectionné
}}}
`priority` text is untranslated....

{{{
2016-02-26 19:27:04,572 Trac[main] WARNING: [192.168.11.11] HTTPInternalError: 500 Erreur Trac (Aucun priority sélectionné)
}}}

It would be good to add localized message for each enum of ticket.
{{{#!diff
diff --git a/trac/ticket/admin.py b/trac/ticket/admin.py
index acd9d4ec5..ef410cbb7 100644
--- a/trac/ticket/admin.py
+++ b/trac/ticket/admin.py
@@ -599,6 +599,7 @@ class AbstractEnumAdminPanel(TicketAdminPanel):

     _type = 'unknown'
     _enum_cls = None
+    _no_item_selected = None

     # TicketAdminPanel methods

@@ -651,7 +652,7 @@ class AbstractEnumAdminPanel(TicketAdminPanel):
                 elif req.args.get('remove'):
                     sel = req.args.get('sel')
                     if not sel:
-                        raise TracError(_(""No %s selected"") % self._type)
+                        raise TracError(gettext(self._no_item_selected))
                     if not isinstance(sel, list):
                         sel = [sel]
                     with self.env.db_transaction:
@@ -789,24 +790,28 @@ class PriorityAdminPanel(AbstractEnumAdminPanel):
     _type = 'priority'
     _enum_cls = model.Priority
     _label = (N_('Priority'), N_('Priorities'))
+    _no_item_selected = N_(""No priority selected"")


 class ResolutionAdminPanel(AbstractEnumAdminPanel):
     _type = 'resolution'
     _enum_cls = model.Resolution
     _label = (N_('Resolution'), N_('Resolutions'))
+    _no_item_selected = N_(""No resolution selected"")


 class SeverityAdminPanel(AbstractEnumAdminPanel):
     _type = 'severity'
     _enum_cls = model.Severity
     _label = (N_('Severity'), N_('Severities'))
+    _no_item_selected = N_(""No severity selected"")


 class TicketTypeAdminPanel(AbstractEnumAdminPanel):
     _type = 'type'
     _enum_cls = model.Type
     _label = (N_('Ticket Type'), N_('Ticket Types'))
+    _no_item_selected = N_(""No ticket type selected"")

     _command_type = 'ticket_type'
     _command_help = {
}}}"	Jun Omae
11759	TypeError raises when non existent comment of ticket is modified	ticket system	0.12-stable	next-stable-1.6.x	defect	normal		new	2014-09-16T05:26:17+02:00	2023-09-23T22:33:10+02:00	"=== How to reproduce
 1. Create new ticket and add comment to the ticket
 2. Show ""Edit"" form for the comment
 3. Remove the comment from another browser
 4. Submit new comment

The issue occurs with both 0.12-stable and 1.0-stable.

{{{
2014-09-16 12:15:40,582 Trac[main] ERROR: Internal Server Error:
Traceback (most recent call last):
  File ""/src/tracdev/git/trac/web/main.py"", line 529, in _dispatch_request
    dispatcher.dispatch(req)
  File ""/src/tracdev/git/trac/web/main.py"", line 243, in dispatch
    resp = chosen_handler.process_request(req)
  File ""/src/tracdev/git/trac/ticket/web_ui.py"", line 174, in process_request
    return self._process_ticket_request(req)
  File ""/src/tracdev/git/trac/ticket/web_ui.py"", line 499, in _process_ticket_request
    ticket.modify_comment(change['date'], req.authname, comment)
TypeError: unsubscriptable object
}}}"	Jun Omae
9457	Unsubmitted comments lost after attaching files	ticket system	0.11.6	unscheduled	enhancement	minor		new	2010-06-23T18:04:02+02:00	2017-05-08T11:14:15+02:00	"While modifying assigned tickets of mine, I've noticed that if I add comments and then go to attach a file, when I selected the ""Back to Ticket#"" button at the top of the page, the attachment is saved but my un-submitted comments are erased.  Trac should save all modifications in memory until the changes are submitted."	andrew.c.martin@…
642	RSS feed with all events for the tickets in a report	ticket system	0.7.1	unscheduled	enhancement	normal		new	2004-07-22T00:13:54+02:00	2015-05-26T20:55:39+02:00	To be able to track all changes of the tickets in the for example My Tickets report. 	anonymous
5866	"[patch] Workflow tweak: handle ""not-state"" transition specifications"	ticket system	devel	unscheduled	enhancement	normal		new	2007-08-13T15:27:47+02:00	2017-05-17T05:55:59+02:00	"I found myself wanting things like this in my `[ticket-workflow]`: 

{{{#!ini
reassign = * -> * 
reassign.operations = set_owner,leave_status 
reassign.permissions = TICKET_MODIFY 

needinfo = * -> needinfo 
needinfo.name = need info 
needinfo.operations = set_owner 
needinfo.permissions = TICKET_MODIFY
}}}


...but this would create two action options for a ticket in the 
""needinfo"" state: ""reassign and leave as needinfo"", and ""assign to new 
owner and leave as needinfo"" ...which are of course the same thing.  I 
wanted to be able to do this instead: 

{{{#!ini
needinfo = *,!needinfo -> needinfo 
needinfo.name = need info 
needinfo.operations = set_owner 
needinfo.permissions = TICKET_MODIFY
}}}
 
This would indicate that the ""needinfo"" state was a valid next state from every other state ''except'' ""needinfo"".  To make this work, make the following tweak to `/trac/ticket/default_workflow.py` (line 161):

{{{#!python
 if oldstates == ['*'] or status in oldstates:
}}}

...becomes... 

{{{#!python
 if ('*' in oldstates or status in oldstates) and (""!%s""%status not in oldstates):
}}}
 
I haven't tested this extensively, and even though it should be backwards-compatible... use with extra initial scrutiny."	Morris
4636	Component field sort order doesn't use locale	ticket system	0.10.3	next-major-releases	defect	minor		new	2007-02-01T11:03:46+01:00	2017-01-26T11:38:44+01:00	The items listed in the ticket drop-down menu for '''Component''' are sorted alphabeticaly.  However, this alphabetical sorting '''doesn't use the locale''' setting, an item as ''épargne'' will be at the bottom of the list, instead of being between the items ''crédit'' and ''guichet'' for example.	antoine.delvaux@…
1069	query by example (e.g. when creating a new ticket, check for similar tickets)	ticket system	0.8	next-major-releases	enhancement	normal		new	2004-12-17T15:46:06+01:00	2023-02-16T12:47:08+01:00	"There could be some ways to reduce the amount of ''duplicate''
tickets getting created. The simplest way would be to advertise doing a search:

E.g (any better english is welcome, of course): 
=== Create New Ticket ===
''Have you checked that the issue you want to report was not already raised before? If not, please '''Search''' for existing tickets describing your problem before creating a new one.''

Your email or username:
...

----
A more sophisticated way would be to do a search (in the tickets)
based on the content of the ''Short summary'' field and the ''Keywords'' field,
when the reporter ''Preview''s his new ticket. 
The result of the search would also appear on the ticket preview page.
From that point, the reporter could choose either to go on with the creation of
his new ticket (maybe clarifying what distinguishes it from other, similar
tickets), or to contribute to existing similar tickets if some are found 
and relevant for him."	Christian Boos
1514	Mantis conversion script	ticket system		next-major-releases	enhancement	normal		new	2005-05-06T20:17:11+02:00	2017-03-28T02:42:21+02:00	"A script to convert from Mantis(http://www.mantisbt.org/) to Trac would be super-cool!

"	Paul Baranowski <paul@…>
3006	Want to be able to merge tickets	ticket system	none	next-major-releases	enhancement	normal		new	2006-04-09T22:50:38+02:00	2015-05-26T20:50:57+02:00	Rather than marking ticket A as closed and a duplicate of ticket B, it should be possible to mark ticket A as a duplicate of another ''without'' closing it; then when B is closed, A is closed as well, and the resolution message appended to both.	dcrosta
