Changes between Version 1 and Version 2 of TracWorkflow
- Timestamp:
- 04/14/08 09:36:50 (2 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TracWorkflow
v1 v2 5 5 6 6 == The Default Ticket Workflow == 7 If you do not configure a custom workflow, the default workflow is described in `contrib/workflow/original-workflow.ini` '''FIXME'''. 7 === Environments upgraded from 0.10 === 8 When you run `trac-admin <env> upgrade`, your `trac.ini` will be modified to include a `[ticket-workflow]` section. 9 The workflow configured in this case is the original workflow, so that ticket actions will behave like they did in 0.10. 8 10 9 [[Image(htdocs:../common/original-workflow.png)]] 11 Graphically, that looks like this: 10 12 11 You will probably want to look at the additional ticket workflows available, and `contrib/workflow/simple.ini` in particular. 13 [[Image(htdocs:../common/guide/original-workflow.png)]] 14 15 There are some significant "warts" in this; such as accepting a ticket sets it to 'assigned' state, and assigning a ticket sets it to 'new' state. Perfectly obvious, right? 16 So you will probably want to migrate to "basic" workflow; `contrib/workflow/migrate_original_to_basic.py` may be helpful. 17 18 === Environments created with 0.11 === 19 When a new environment is created, a default workflow is configured in your trac.ini. This workflow is the basic workflow (described in `basic-workflow.ini`), which is somewhat different from the workflow of the 0.10 releases. 20 21 Graphically, it looks like this: 22 23 [[Image(htdocs:../common/guide/basic-workflow.png)]] 12 24 13 25 == Additional Ticket Workflows == 14 26 15 There are several example workflows provided in the Trac source tree; look in `contrib/workflow` for `.ini` config sections. One of those may be a good match for what you want. 27 There are several example workflows provided in the Trac source tree; look in `contrib/workflow` for `.ini` config sections. One of those may be a good match for what you want. They can be pasted into the `[ticket-workflow]` section of your `trac.ini` file. 16 28 17 29 == Basic Ticket Workflow Customization == … … 37 49 - set_resolution -- Sets the resolution to the selected value. 38 50 - ''actionname''`.set_resolution` may optionally be set to a comma delimited list or a single value. 51 {{{ 52 Example: 53 54 resolve_new = new -> closed 55 resolve_new.name = resolve 56 resolve_new.operations = set_resolution 57 resolve_new.permissions = TICKET_MODIFY 58 resolve_new.set_resolution = invalid,wontfix 59 }}} 39 60 - leave_status -- Displays "leave as <current status>" and makes no change to the ticket. 40 61 '''Note:''' Specifying conflicting operations (such as `set_owner` and `del_owner`) has unspecified results. … … 60 81 There are a couple of hard-coded constraints to the workflow. In particular, tickets are created with status `new`, and tickets are expected to have a `closed` state. Further, the default reports/queries treat any state other than `closed` as an open state. 61 82 62 While creating or modifying a ticket workfow, `contrib/workflow/workflow_parser.py` may be useful. It can create `.dot` files that GraphViz understands to provide a visual description of the workflow. 83 While creating or modifying a ticket workfow, `contrib/workflow/workflow_parser.py` may be useful. It can create `.dot` files that [http://www.graphviz.org GraphViz] understands to provide a visual description of the workflow. 84 85 This can be done as follows (your install path may be different). 86 {{{ 87 cd /var/local/trac_devel/contrib/workflow/ 88 sudo ./showworkflow /srv/trac/PlannerSuite/conf/trac.ini 89 }}} 90 And then open up the resulting `trac.pdf` file created by the script (it will be in the same directory as the `trac.ini` file). 91 92 After you have changed a workflow, you need to restart apache for the changes to take effect. This is important, because the changes will still show up when you run your script, but all the old workflow steps will still be there until the server is restarted. 63 93 64 94 == Advanced Ticket Workflow Customization == 65 95 66 If the customization above is not extensive enough for your needs, you can extend the workflow using plugins. These plugins can provide additional operations for the workflow (like code_review), or implement side-effects for an action (such as triggering a build) . Look at `sample-plugins/workflow` for a few simple examples to get started.96 If the customization above is not extensive enough for your needs, you can extend the workflow using plugins. These plugins can provide additional operations for the workflow (like code_review), or implement side-effects for an action (such as triggering a build) that may not be merely simple state changes. Look at `sample-plugins/workflow` for a few simple examples to get started. 67 97 68 But if even that is not enough, you can disable DefaultTicketActionController, and create a plugin that completely replaces it. 98 But if even that is not enough, you can disable the !ConfigurableTicketWorkflow component and create a plugin that completely replaces it. 99
