[rt-users] Split Ticket
Dirk Pape
pape-rt at inf.fu-berlin.de
Tue Nov 26 04:05:00 EST 2002
Hello Tony,
--On Montag, 18. November 2002 10:21 Uhr -0500 Tony Aiuto <tony at ics.com>
wrote:
> The split ticket patch I sent around a week or two ago copies
> status of the original parent. I think making them 'new' might
> be a good idea as well. I guess I can make that tunable through
> config.pm.
>
I could not try the patch yet due to lack of time, sorry. So my diskussion
of your question will remain theoretical:
> As far as making the parent stalled. I wonder about that.
> Is it *really* stalled, or is it just a function over the
> child statuses. That is, if all the children are 'new', then
> it is 'new'. If at least one is open, then it's open. If
> one is stalled, then it is stalled. Is there a "right"
> answer to this question, or even a "good enough" answer,
> or should it be a site tunable parameter?
>
My guess is that making the status a (static) function of the child
statuses will not reflect all possible split-fork-usages. One main strength
of RT is imo its flexibility to support extermely different workflows (with
ACLs, pseudogroups and conditions and scrips).
Hence I would think in triggers (conditions) and actions (scrips)
eg. On trigger:StatusChange action:SetParentStatus with template:<function>
in the template of the scrip-action - if possible - a function might be
implemented, which can read the parameters of all child tickets.
That was for the fork-semantics, I asked for. For my scenario the function
would best be
if new status(changedChild) = stalled
then status(parent):= stalled
else status(parent):= open;
For the split semantics (put a ticket to several queues) I'd like
eg. On trigger:StatusChange action:SetReferencesStatus with
template:<function>
but in my view of the usage scenario there would be no function (hence I
would not use this action).
For completion there should be an action for all kinds of references
(SetParentStatus, SetChildStatus, SetRefersToStatus, SetReferredToByStatus,
SetDependsOnStatus, SetDependedOnByStatus) to flexibly implement different
semantics/scenarios.
>
>> If it happens that all of the child tickets are resolved, the former
>> ticket's status should change automatically to open and can be manually
>> resolved.
>
> Hmm, where to put this functionality? Should that be a Scrip Action
> fired by "OnStatus" of the child or should it be code within
> Ticket.pm itself? It is really sort of a global Condition.
> I change state, but that causes a condition my parent cares
> about to be true, so my parent wants a Scrip to trigger.
>
s. a. for my suggestion. Though I am not sure, if it is implementable in RT.
>> afterwards, if one of the resolved child ticket's status change again,
>> the parent tickets status should change to open again.
>
> I would do this with Scrips. We could easily make an Action for
> "OpenParentTicket". You would fire that on whatever condition you
> think is right. I would only open the parent if the status
> changes to open or new from not open or new, but some people might want
> it on any status change, or perhaps on a queue change.
>
ack.
>
>> How could that be achieved? If anybody has an outline, which is
>> consistent with RT's development, I might have some ressources to
>> contribute. Dirk
>
> Have you tried my split ticket patch? I would be happy to
> make parts of it tuneable. Would you like to investigate
> and work on how to change parent status to open when the
> children get resolved? Especially w.r.t what features RT 3
> has that might help.
Yes, I will try to help with that but I can start with it in two weeks.
Bye,
Dirk.
More information about the rt-users
mailing list