[rt-users] Making RT 3.8.1 grok References: and In-Reply-To:
Ruslan Zakirov
ruz at bestpractical.com
Thu Oct 30 14:46:26 EDT 2008
On Thu, Oct 30, 2008 at 8:57 PM, Lars Kellogg-Stedman <lars at oddbit.com> wrote:
> This reply missed the list the first time around:
>
>> It's something I'm of two minds about. On the one-hand, it's a really
>> slick feature that makes a lot of things easier. On the other hand, it's
>> quite common for users to open new tickets by popping up an old ticket
>> reply and changing the subject and body. Which will incorrectly thread
>> it as on the previous ticket. (Most mail clients don't expose
>> "in-reply-to" and "references" headers for user editing.)
>
> This all came about from a "hey, ticket system product A has this
> feature that seems really slick, why doesn't RT do that"? So it was
> more proof of concept than anything else. The fact that RT, at least
> in 3.8.1, is already collecting message ids made my life much easier.
> One could perhaps implement some sort of time threshold to help winnow
> out this sort of thing. I don't know how other ticket systems that
> use the references information as a primary source handle this.
>
>> It'd be cool if this could become an RT extension that could be cpanned.
>
> If I'm the only person using this code (and only in my personal RT at
> the moment, not in our production system), this probably won't
> percolate very high up on my to do list. If someone else wants to try
> it out and verify that it works as described and spot any problems,
> I'd be happy to take a look at it.
>
> The biggest problem I see with making this an installable extension is
> that it requires patching RT/Interface/Email.pm. It's a one-liner...
Actually this's a wrong API change I missed during RT 3.6.x, earlier
we were passing more than $Subject into ParseTicketId function.
I think it's possible to pass MIMEObj next to $Subject into
ParseTicketId function and override it in extension or wrap. I'm happy
to apply such change for 3.8.2.
>
> --- Email.pm.orig 2008-10-28 13:58:18.979900000 -0400
> +++ Email.pm 2008-10-28 13:58:29.726978000 -0400
> @@ -1229,6 +1229,7 @@
> }
>
> $args{'ticket'} ||= ParseTicketId( $Subject );
> + $args{'ticket'} ||= ParseReferences( $head );
>
> $SystemTicket = RT::Ticket->new( $RT::SystemUser );
> $SystemTicket->Load( $args{'ticket'} ) if ( $args{'ticket'} ) ;
>
> ...but I'm not sure where else to put it. To make this more graceful,
> there would need to be a registry of some sort so that the above code
> would look something like:
>
> for my $func (@registered_functions) {
> $args{'ticket'} = &$func($head) && last;
> }
>
> Or something. Maybe the MailPlugins interface could be beefed up to
> do more than authentication work? If this could add arbitrary
> attributes to the message object ($message->add('rt-ticket-id', ...)),
> that would be a fine place to insert this sort of code. Then Email.pm
> wouldn't explicitly do subject line scanning; this would be in a
> MailPlugin that was enabled by default...or enabled unilaterally, or
> something.
> _______________________________________________
> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users
>
> Community help: http://wiki.bestpractical.com
> Commercial support: sales at bestpractical.com
>
>
> Discover RT's hidden secrets with RT Essentials from O'Reilly Media.
> Buy a copy at http://rtbook.bestpractical.com
>
--
Best regards, Ruslan.
More information about the rt-users
mailing list