Contents
Manage relations between Trac resources like relates to or parent > child in tickets
Description
This plugin provides a general system for relating different Trac resources. The kind of resource is dependend on the use case.
It comes with plugins for relations between tickets with the following link types:
- simple relations between tickets without any special semantics (
relates to
) - allow a ticket to
block
another ticket - specify
parent -> child
relationships similar to what can be found in the ChildTicketsPlugin. duplicate
tickets
The relations are saved in the database and can be used in reports.
Enhanced ticket page
- The plugin adds the relationship information to the ticket properties box when a ticket page is shown.
- Manage relations between tickets from the ticket page using a popup dialog.
- Buttons for direct creation of child tickets of different types.
- When child tickets exist for a ticket they are shown as a tree below the properties box.
Duplicate tickets
When resolving a ticket as a duplicate the user may input a ticket number and a duplicate
relation is automatically created.
Blocking tickets
Ticket validator checks for blocked
tickets:
- Disallowing closing of a ticket when open blocking tickets exist
- Detecting loops in your dependencies
- Making sure a blocked or blocking ticket actually exists
Child tickets
- Child tickets may have one or several parents
- Show a child ticket tree with proper indentation and configurable depth
- Ticket validator checks for:
- Disallowing closing of parents when open children exist
- Detecting loops in your dependencies
- Making sure a parent ticket actually exists
- Allow/disallow child-tickets for a certain type of ticket
- Define the table headers displayed in the child ticket depending on the type
- Define a default for the child type to be created
- Restrict the type of possible child-tickets for each parent ticket type
- Define which fields are inherited by child-tickets
There are admin pages available for configuring the features but it is also possible to control them by settings in trac.ini. See the configuration section for more info.
Other plugins
- ChildTicketsPlugin Add pseudo child-tickets and a visual reference to these within a parent ticket
- DepgraphSidebarPlugin Provides a dependency graph for blocked tickets on the sidebar, right to the ticket
- MasterTicketsPlugin Add support for ticket dependencies to Trac
- ProjectPlanPlugin Project Plan with automatic visualizations of the tickets
- SubticketsPlugin Subtickets support for Trac tickets
- TicketRelationsPlugin Define dependency relations between tickets
- TracDependencyPlugin Add support for inter-Trac ticket dependencies and summary tickets
- TracRelationsPlugin Manage relations between Trac resources like relates to or parent > child in tickets
- TracTicketDepgraphPlugin Ticket dependency graph
- TracTicketRelationAndSchedulePlugin Add complex ticket relations and schedule management
- ValuePropagationPlugin Update fields or fields on other tickets when a ticket changes
Screenshots
Bugs/Feature Requests
Existing bugs and feature requests for TracRelationsPlugin are here.
If you have any issues, create a new ticket.
Download
Download the zipped source from here.
Source
You can check out TracRelationsPlugin from here using Subversion, or browse the source with Trac.
Installation
General instructions on installing Trac plugins can be found on the TracPlugins page.
Configuration
When using child tickets it is necessary to create a ticket-custom field relationdata
. This field will not be shown on the ticket page but is needed for internal use.
[ticket-custom] relationdata = text
The rest of the customization may be done with a new admin page Ticket Relations -> Parent Types
.
You may also configure them with entries in trac.ini. Features can be specified separately for each ticket type.
- parent.<type>.allow_child_tickets = True|False
- if child tickets are allowed for this parent ticket type
- parent.<type>.inherit = fieldname 1, fieldname 2, …
- specify the ticket fields which should be copied to the child
- parent.<type>.restrict_child_type = type 1, type 2, …
- allow these types ase new child ticket types
- parent.<type>.table_headers = fieldname 1, fieldname 2, …
- the table headers to be shown for child tickets
In this example the configuration is for tickets of type defect
:
[relations-child] parent.defect.allow_child_tickets = True parent.defect.inherit = description,milestone,summary,project,version parent.defect.restrict_child_type = defect,enhancement parent.defect.table_headers = status,project,summary
Recent Changes
- 18231 by Cinc-th on 2021-04-17 08:40:34
-
TracRelationsPlugin: show
Duplicate of
} field in preview ticket box only if resolution is actually set toduplicate
. Removed some test code.
- 18230 by Cinc-th on 2021-04-16 17:41:18
-
TracRelationsPlugin: support
duplicate
relations. These are automatically created when resolving a ticket as a duplicate and an id of the other ticket is provided.
- 18228 by Cinc-th on 2021-04-16 05:57:22
-
TracRelationsPlugin: file rename to make the usage more obvious.
(more)
Author/Contributors
Attachments (5)
-
child_relations_modify_button.png (63.4 KB) - added by 4 years ago.
Screenshot of relations modify button placement
-
childrelations_manage.png (159.9 KB) - added by 4 years ago.
Screenshot of child relations manage dialog
-
childrelations_properties.png (119.8 KB) - added by 4 years ago.
Screenshot of child relations properties on ticket page
-
childrelations_tree.png (143.7 KB) - added by 4 years ago.
Screenshot of child ticket tree
-
childrelations_duplicate.png (64.1 KB) - added by 4 years ago.
Screenshot of action controller resolving duplicate ticket.
Download all attachments as: .zip