Clients support for Trac Tickets

Description

Clients OverviewMany people and organizations use Trac internally/privately to manage tasks they undertake for a range of different clients. The ClientsPlugin adds several capabilities to Trac to help manage different clients.

Features Include:

  • Ability to add, edit and remove clients via the Trac Admin interface.
  • Ability to define a default "Hourly Rate" for each client (useful when used in conjunction with WorkLogPlugin and TimingAndEstimationPlugin)
  • Adds "Client Work Summary" report for use with TimingAndEstimationPlugin
  • Flexible Event structure to keep clients selectively informed by:
    • Defining custom events which tie together Summaries and Actions.
    • Defining special blocks (via a WikiProcessor) in which you can embed content that you want to share with a client in ticket descriptions and comments which can be incorporated into Summaries.

Screen Shots

Events

The events system is very flexible and allows you to customise they way you interact with your clients. As it's often convenient to use a single Trac instance for internal management purposes, it is typically inappropriate to give direct access to Trac to your clients. However, using Trac to keep your clients informed is still very desirable.

In order to do this, the ClientsPlugin contains several Summaries which summarise the current status, or the changes in status over time, for each client into an XML object. This object is then passed on to an Action which can process this summary accordingly and actually do something useful with it.

The current Summaries available are:

  • Milestone Summary: (XML info) Creates a summary of all tickets grouped by milestone (for future milestones with a delivery date attached)
  • Ticket Changes: (XML info?) Ticket changes/comments since the last time the event was triggered

The current Actions available are:

  • Send Email: (XSLT info) Send an email to the client
  • Post to Zendesk: Post to a Zendesk forum

The system allows some key setup parameters to be defined in the event itself (e.g. an XSLT to reformat the XML object into an HTML email, or a username/password for interacting with Zendesk), and also certain parameters for each event on a per-client basis (e.g. a list of client specific email addresses to send the summary).

Event Recipes

Here are some detailed examples to help you get started. Please feel free to post your own!

Triggering Events

So how do you trigger an event? Well, essentially you have to trigger then yourself! This can currently be achieved via a simple script that can be run via a crontab entry or scheduled task. This script is clientsplugin/0.11/cron/run-client-event

Custom Fields

ClientsPlugin will automatically add some custom fields to your trac.ini when it is installed.

Bugs/Feature Requests

Existing bugs and feature requests for ClientsPlugin are here.

If you have any issues, create a new ticket.

Download and Source

Download the zipped source, check out using Subversion, or browse the source with Trac.

This plugin was originally developed for 0.10 but has since been heavily developed for 0.11. The 0.10 version is considered obsolete and is no longer actively developed.

Requirements

You need the following Python components to use this plugin:

On Fedora do the following commands to install LXML Library:

yum install libxml2 libxml2-devel libxslt libxslt-devel

easy_install lxml

Example

Install the plugin then go through the usual trac update process to automatically create the necessary DB tables and fields.

Recent Changes

[12092] by rjollos on 10/02/12 07:43:57

Fixes #10260:

  • The client field is hidden if there are no clients.
  • Added unit test infrastructure.

[12091] by rjollos on 10/02/12 05:25:58

Refs #10402: Support use of md5 class from the hashlib module or deprecated md5 module, with preference to the former when available.

[11835] by rjollos on 07/30/12 04:27:41

Fixes #7450:

  • Removed rollbacks on db connection.
  • Put version outside the scope of the try/except so that it is in scope long enough to be used. Thanks to yamilchamut@gmail.com for the suggestion.

[11834] by rjollos on 07/30/12 04:24:31

Fixes #9990: Avoid deprecation warning for md5 package by importing md5 from trac.util.compat, when available (Trac 0.11.3+).

Author/Contributors

Author: coling
Maintainer: coling
Contributors: rjollos

Attachments