New features to submit: Pager Notification, Response Template, MSProject Integration, Gantt Chart

Ludovic Dubost ludovic at netvalue.com
Tue Dec 10 20:38:13 UTC 2002


Hi,

We have made some significant feature additions and I would like to know 
from you which one I should submit first to the bugzilla community (I 
know I have to do this using bugzilla.mozilla.org).

Also, to be usable, these features need a little help for different 
reasons. One of them being that there are on a 2.14.1 codebase (non 
templatized) so there is some work to bring them back up-to-date but I 
think it can be worth it:

- Notify Rules System

The notify rules system is a way to trigger an additional email to any 
email address based on the matching of a saved query. For example, what 
can be done is create a query for your P1 bugs and configure it to send 
a mail to your mobile phone or pager.

What will happen is that whenever a bug is updated that is assigned to 
you and that is a P1 priority the email will be sent out.

This can be usefull to speed up the escalation process in help desk or 
any process handling using bugzilla.

This code is a patch to process mail and some administration pages. It 
should not be to difficult to adapt.

- Template Response System

The template response system is a system to create response template 
automatically base on the comments in a bug and allow to find the best 
matching template using regular expression (giving points to each 
template when they match).

Also this feature includes a system to send the comment by email to a 
Customer (we use a Customer field containing the email address) and save 
the comment in bugzilla at the same time.

This allows us to handle our external help desk using bugzilla and 
bugzilla number but without the external user actually seeing bugzilla. 
The customer sends an email to a address and the mail is automatically 
loaded in bugzilla using the mail interface but without bugzilla 
responding to the mail (this is detected by the fact that the user does 
not have an account in the system). Then using the template system the 
operator can choose the best template and click on 'submit' to send the 
response, close the bug until the customer responds. Using the Bug 
number in the subject the response will reopen the bug automatically (we 
have made a patch for this). The operator can also modify the template 
in the comment area if necessary.

This feature also supports a multi-langual mode using a 'language' 
custom fields. The mails for each language are loaded from a different 
email address  and the language field is automatically stored and then 
the template detection system will only take the templates with the 
corresponding language.

So this feature relies on a 'Customer' field that we have added a long 
time ago and on a 'language' custom field.

- MS Project Integration and Gantt Chart Generation

We have created an export and import feature for MS Project as well as a 
Gantt Chart generation module for project trees.

  - MS Project Export

What this module allows to do is take a project tree (dependency tree) 
and export it in CSV. However it is not a basic export. It performs some 
specific MSProject conversion tasks. First, MSProject handled 
dependencies using numbers from 1 (and if you move a bug by one line all 
the dependencies are moving). This is really stupid but there is no way 
to get around it except feeding the information that MSProject expects.

Also certain fields are converted (priority into a number from 0 to 
1000). The export also relies on custom fields for time tracking.

Currently I've not used the timetracking module that has been developped 
because I can't upgrade that easilly our bugzilla installation to 2.17 
as we would have many patches to migrate. But I believe it could be 
easily adapted.

Once you have exported a bug tree it is not possible to reimport it. The 
importing feature explained below would create new bugs. I plan to work 
on synching the data, starting with the timetracking data (workload, end 
date).

  - MS Project Import

The MS Project Export allows to import a full MSProject plan into 
bugzilla, including workload and dates (provided that you have the right 
custom fields setup) and especially including dependencies and levels 
(in MS Project you can group bugs in subprojects):

To have this working, I have created a custom field called 'Tracking 
Bug'. This field is inspired by the mozilla tracking bugs and 
corresponds in MSProject to a grouping of tasks (this allows to view a 
set of tasks a one big task). The limitation using bugzilla is that when 
you create a dependency between two tracking bugs this cannot be 
interpreted as a dependency (in MS Project you can do dependencies 
between tracking bugs). In order to do this I would have need to 
duplicate the dependency feature for tracking bugs and I believe it is 
not worth the trouble.

The import feature is quite tricky because it is needed to reorder the 
bugs starting with ones have ne blockers. These bugs are inserted and 
the bug number retrieved and used to insert the next bugs. I've been 
testing as many things as possible before importing but it can still 
fail and if it does it stops where it is because I wasn't able to 
implement transactions (this did not seem to work).

Even not perfect this feature is very powerfull if you want to use 
bugzilla to handle recurring projects. We use it to handle our 
production schedule of report (every month).

It is especially interesting when the MS Project plan includes dates and 
workloads as it will allow the users to know when they have to finish 
their task.

It gets very powerfull using the next feature:

  - Gantt Chart generation

Using the Tracking Bug custom field and the time tracking custom fields 
(that could be adapted to use the new timetracking fields), I've used 
DBD::Chart and Date::Manip to create almost the exact same dependency 
chart as MS Project.

As input for the dependency chart, it currently uses the dates save in 
the EstimatedEndDate and EstimatedWorkload custom fields. If there are 
no dates, the module will automatically show dependent tasks following 
each other.

Currently there is a missing feature to not allow to tasks for the same 
person to be the same day (this would better represent certain project 
trees when dates are not missing and when the project contains many 
unrelated tasks).

To build this feature DBD::Chart's gantt module has been significantly 
enhanced (it didn't allow to show different colors for the tracking bugs 
and it was not possible the order the bugs the way I decided).

DBD::Manip has been used to handle workdays additions and substractions. 
Without this module the Gantt chart would have been impossible to build.

I've attached an example PNG file of what is generated by the Gantt 
Chart module when dates and workload are correctly filled in (this is 
actual a real project plan that we use internally).


Let me know what features would be the most interesting for the bugzilla 
community and if there are any people interesting into spending some 
time adapting the code to 2.17 and maybe enhancing the features to make 
them even more powerfull.

Ludovic
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 37115.png
Type: image/png
Size: 32612 bytes
Desc: not available
URL: <http://lists.bugzilla.org/pipermail/developers/attachments/20021210/952761a4/attachment.png>


More information about the developers mailing list