[Rt-devel] Automatic Ticket Renewal

Andrew Nicols a.nicols at lancs.ac.uk
Thu Aug 31 09:05:02 EDT 2006


Hi all,

I'm looking to build something to automatically renew a ticket in RT
on a regular basis, be it daily, weekly, monthly or yearly.
I've had a few thoughts about how it could be done and wanted to
present my ideas to the list for feedback, comments, and other advice.

My idea is to build upon the Reminders module, or build a similar
module RT::Renewals under a similar guise.
I see that RT::Reminders extends RT::Ticket and so my thought was that
the Subject, Queue and a ticket Content could be entered using the
RT::Ticket API. Further fields can then be stored using RT::Attribute
to give the following fields:

Renewal Frequency - Stored as an Attribute - Denotes how regularly the
action should be taken
Renewal Field - Stored as an Attribute - Denotes which date field the
Renewal Frequency should work by (e.g.
Due/Resolved/Created/Started/Starts)
Renewal Action - Stored as an Attribute - What to do when the ticket
is renewed - e.g. Re-open as new, re-open as open, new ticket
Subject - RT::Ticket - The subject of the ticket when it is re-opened/created
Content - RT::Ticket - The text the ticket is re-opened with
Queue - RT::Ticket - The queue the ticket should go into.

My idea was to link the renewal to a ticket using the Refer To field.
This way, several tickets can be group together under the same renewal
object.

I'm not totally sure what the best way to check for necessary renewals
is but the obvious way is a system cron job of some nature.
Alternative suggestions on a postcard please :)

To prevent a ticket from being renewed in the future, removing it's
reference in the Refer To field should suffice and to add an
additional ticket into the renewal system, adding it should again
suffice.

-- 
Regards,

Andrew Nicols


More information about the Rt-devel mailing list