Changes between Version 36 and Version 37 of ChildTicketsPlugin


Ignore:
Timestamp:
Apr 1, 2021, 9:13:19 AM (3 years ago)
Author:
Cinc-th
Comment:

Updated page for latest changes

Legend:

Unmodified
Added
Removed
Modified
  • ChildTicketsPlugin

    v36 v37  
    1010}}}
    1111
    12 This plugin modifies the ticket description box and adds a child ticket listing table and a 'create' button for adding new child tickets.
     12This plugin adds a child ticket tree and ''create'' buttons for adding new child tickets to the ticket page.
    1313
    14 Having child-tickets is useful when multiple releases need to be managed. For example for a single 'bug-report' ticket and a single 'bug-fix' ticket for each milestone/branch of development, for managing sub-tasks of an issue and for managing 'bug-fixes' required when developing a new (larger) enhancement.
     14Having child-tickets is useful when greater changes need to be managed by splitting them into subtasks. For example when developing a new, large enhancement. A single {{{bug-report}}} ticket may be created for each milestone/branch of development to group those tickets.
    1515
    16 It is possible to control in trac.ini the following aspects of child-ticket creation/viewing:
    17  * allow/disallow child-tickets for a certain type of ticket
    18  * define the table headers displayed in the parent ticket
    19  * define a default for the child type to be created / restrict the type of child-tickets
    20  * define which fields are inherited by child-tickets
     16Tickets are linked using a ticket custom field named {{{parent}}}. It is possible to create hierarchies using already existing tickets by providing link information in this field. So a slow migration to parent->child relationships is possible whenever necessary.
    2117
    2218[[Image(NewChildTicketTable.png, border=2)]]
     
    2420This and other examples of this plugin can be found [wiki:ChildTicketsPlugin/Examples here].
    2521
     22=== Features
     23The following features are currently supported:
     24 * Child tickets may have one or several parents
     25 * Show a child ticket tree with proper indentation and configurable depth
     26 * Ticket validator checks for:
     27   * Disallowing closing of parents when open children exist
     28   * Detecting loops in your dependencies
     29   * Making sure a parent ticket actually exists
     30 * Allow/disallow child-tickets for a certain type of ticket
     31 * Define the table headers displayed in the child ticket depending on the type
     32 * Define a default for the child type to be created
     33 * Restrict the type of possible child-tickets for each parent ticket type
     34 * Define which fields are inherited by child-tickets
     35
     36There are admin pages available for configuring the features but it is also possible to control them by settings in ''trac.ini''.
    2637=== Background
    2738
    2839Some time ago I came across the problem of how to manage child tickets in a meaningful fashion, we were using [wiki:coderanger]'s original [wiki:MasterTicketsPlugin] and it was great until we started to allow tickets to be viewed and created by people outside of our immediate development group. We found that people who were not familiar with our processes would simply create child tickets of the wrong 'type' and needed some help in getting it right. In addition, users found that the lack of visual information (ie. what are this tickets child tickets?) was also a hindrance.
    29 
    30 Under Trac 0.10 I had to modify the ticket.html templates to get this working in any 'pretty' sense so I have not provided support for 0.10. As of 0.11, the ITemplateStreamFilter allows this to be incorporated nicely into a neat plugin.
    31 
    32 To keep the plugin compact and simple and to allow future compatibility with different CSS schemes, I have simply 'pinched' the existing CSS classes for generating the table and its components.
    3340
    3441'''Note''': The configurability of this plugin has been ported to the SubticketsPlugin. See the patches in issues 9-12 at [https://github.com/itota/trac-subtickets-plugin/issues github]. -- Chris Nelson
     
    5663General instructions on installing Trac plugins can be found on the [TracPlugins#InstallingaTracplugin TracPlugins] page.
    5764
    58 == Configuration
    59 
    60 The plugin makes use of the 'ticket-custom' field and so requires no extra database tables to be created. The following fields are required in the `trac.ini` file:
     65The plugin makes use of the ticket custom field {{{parent}}} and so requires no extra database tables to be created. The following information is required in the `trac.ini` file:
    6166
    6267{{{#!ini
     
    6873parent.format = wiki
    6974parent.label = Parent ID
     75}}}
    7076
     77You may create the ticket custom field from the plugins admin page.
     78
     79== Configuration
     80You may configure the plugin from the admin page.
     81
     82Every aspect of the plugin may also be controlled by entries in the configuration file.
     83{{{#!ini
    7184[childtickets]
    7285# 'enhancements': child tickets will typically be bug-fix tickets with the same milestone, component and keywords.
     
    97110See table below for a generic description of the options.
    98111
    99 === [childtickets]
    100112
    101 {{{#!html
    102 <table class="wiki">
    103 <tr><td><b>Field</b></td><td><b>Description</b></td><td><b>Default value</b></td></tr>
    104 <tr><td width=20%>parent.<b><i>parent-type</i></b>.allow_child_tickets </td><td> Define whether child tickets are allowed or not </td><td> False</td></tr>
    105 <tr><td width=20%> parent.<b><i>parent-type</i></b>.table_headers </td><td> List of column headers for display in parent ticket </td><td> summary, owner </td></tr>
    106 <tr><td width=20%> parent.<b><i>parent-type</i></b>.default_child_type </td><td> Default child type </td><td>See [ticket] section of trac.ini (default_type) </td></tr>
    107 <tr><td width=20%> parent.<b><i>parent-type</i></b>.restrict_child_type </td><td> A list of possible child types, trying to create a child of a different 'type' will create an error. As of version 1.1.0, if this option is used, a list of submit buttons will be rendered allowing the user to decide which type of child ticket he/she wants to create. </td><td>None </td></tr>
    108 <tr><td width=20%> parent.<b><i>parent-type</i></b>.inherit </td><td> Define a list of inherited fields. </td><td> Default: None </td></tr>
    109 <tr><td width=20%> default.max_depth</td><td> Limit the creation of too deep a hierarchy. </td><td>5</td></tr>
    110 </table>
    111 }}}
     113||= Field =||= Description =||= Default value =||
     114|| parent.**''parent-type''**.allow_child_tickets || Define whether child tickets are allowed or not || False ||
     115|| parent.**''parent-type''**.table_headers || List of column headers for display in parent ticket || summary, owner ||
     116|| parent.**''parent-type''**.default_child_type || Default child type || See [ticket] section of trac.ini (default_type) ||
     117|| parent.**''parent-type''**.restrict_child_type || A list of possible child types, trying to create a child of a different 'type' will create an error. As of version 1.1.0, if this option is used, a list of submit buttons will be rendered allowing the user to decide which type of child ticket he/she wants to create. || None ||
     118|| parent.**''parent-type''**.inherit || Define a list of inherited fields. || Default: None ||
     119|| max_view_depth || Maximum depth of child ticket tree shown on the ticket page. || 3 ||
     120|| recursion_warn || Depth of tree at which we assume that there is a loop in our ticket tree. || 7 ||
    112121
    113122== Known Issues / Caveats
     
    125134'''Author:''' [wiki:walnut] [[BR]]
    126135'''Maintainer:''' [[Maintainer]] [[BR]]
    127 '''Contributors:'''
     136'''Contributors:''' [wiki:rjollos] [wiki:Cinc-th]