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