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
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
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.