[Rt-commit] r10761 - in rtir/branches/2.3-EXPERIMENTAL/html/RTIR: Elements
ruz at bestpractical.com
ruz at bestpractical.com
Thu Feb 7 17:40:33 EST 2008
Author: ruz
Date: Thu Feb 7 17:40:33 2008
New Revision: 10761
Modified:
rtir/branches/2.3-EXPERIMENTAL/html/RTIR/Elements/MergeWith
rtir/branches/2.3-EXPERIMENTAL/html/RTIR/Merge.html
Log:
* fix merge according to constituency propagation modes
Modified: rtir/branches/2.3-EXPERIMENTAL/html/RTIR/Elements/MergeWith
==============================================================================
--- rtir/branches/2.3-EXPERIMENTAL/html/RTIR/Elements/MergeWith (original)
+++ rtir/branches/2.3-EXPERIMENTAL/html/RTIR/Elements/MergeWith Thu Feb 7 17:40:33 2008
@@ -18,8 +18,12 @@
$Query ||= $m->comp('/RTIR/Elements/NewQuery', Queue => $Queue);
unless ( $BaseQuery ) {
- $BaseQuery = $m->comp('/RTIR/Elements/BaseQuery', Queue => $Queue);
- $BaseQuery = join ' AND ', map "( $_ )", grep $_, $BaseQuery, " id != $id";
+ my @parts;
+ push @parts, "id != $id";
+ push @parts, $m->comp('/RTIR/Elements/BaseQuery', Queue => $Queue) if $Queue;
+ push @parts, "CF.{_RTIR_Constituency} = '". $Ticket->FirstCustomFieldValue('_RTIR_Constituency') ."'"
+ if RT->Config->Get('_RTIR_Constituency_Propagation') eq 'reject';
+ $BaseQuery = join ' AND ', map "( $_ )", grep $_, @parts;
}
</%INIT>
Modified: rtir/branches/2.3-EXPERIMENTAL/html/RTIR/Merge.html
==============================================================================
--- rtir/branches/2.3-EXPERIMENTAL/html/RTIR/Merge.html (original)
+++ rtir/branches/2.3-EXPERIMENTAL/html/RTIR/Merge.html Thu Feb 7 17:40:33 2008
@@ -48,7 +48,6 @@
%ARGS,
Title => loc('Other children of the parent incident(s) of #[_1]', $id),
Ticket => $Ticket,
- BaseQuery => "id != $id",
Query => $siblings_query,
Rows => 0,
Page => 1,
@@ -67,39 +66,54 @@
<%INIT>
my $Ticket = LoadTicket($id);
-
$id = $ARGS{'id'} = $Ticket->id;
$m->callback(CallbackName => 'Initial', %ARGS, Ticket => $Ticket);
+my $MergeTicket;
+$MergeTicket = LoadTicket( $SelectedTicket ) if $SelectedTicket;
+
my (@results);
-if ( $SelectedTicket ) {
- my $MergeTicket = LoadTicket( $SelectedTicket );
+my $checks_failure = 0;
+if ( $MergeTicket ) {
+ my @queues = sort map $_->Name, $Ticket->QueueObj, $MergeTicket->QueueObj;
+ unless ( $queues[0] eq $queues[1] or ($queues[0] eq "Incident Reports" and $queues[1] eq "Investigations") ) {
+ push @results, loc("Merge failed: Ticket #[_1] is not the right type", $MergeTicket->Id );
+ $checks_failure = 1;
+ }
+}
- $m->callback(CallbackName => 'MergeTicketSelected', MergeFrom => $Ticket, MergeTo => $MergeTicket);
+if ( $MergeTicket && RT->Config->Get('_RTIR_Constituency_Propagation') eq 'reject' ) {
+ if ( lc $MergeTicket->FirstCustomFieldValue('_RTIR_Constituency')
+ ne lc $Ticket->FirstCustomFieldValue('_RTIR_Constituency')
+ ) {
+ push @results, loc("Merge failed: Tickets have different constituencies" );
+ $checks_failure = 1;
+ }
+}
- my @queues = sort map {$_->Name} $Ticket->QueueObj, $MergeTicket->QueueObj;
- if ( $queues[0] eq $queues[1] or ($queues[0] eq "Incident Reports" and $queues[1] eq "Investigations")) {
- if ( $queues[0] ne $queues[1] && $MergeTicket->QueueObj->Name eq "Incident Reports" ) {
- # We always want to merge into the Investigation
- ($Ticket, $MergeTicket) = ($MergeTicket, $Ticket);
- }
+if ( $MergeTicket && !$checks_failure ) {
- $ARGS{ $Ticket->id .'-MergeInto' } = $MergeTicket->id;
+ my @queues = sort map $_->Name, $Ticket->QueueObj, $MergeTicket->QueueObj;
+ if ( $queues[0] ne $queues[1] && $queues[1] eq "Incident Reports" ) {
+ # We always want to merge into the Investigation
+ ($Ticket, $MergeTicket) = ($MergeTicket, $Ticket);
+ }
- for my $t ( $Ticket, $MergeTicket ) {
- next if $t->Owner == $t->CurrentUser->Id;
+ $m->callback(CallbackName => 'MergeTicketSelected', MergeFrom => $Ticket, MergeTo => $MergeTicket);
- my ($status, $msg) = $t->SetOwner($t->CurrentUser->Id, 'Force');
- push @results, $msg if $msg;
- }
- push @results, ProcessTicketLinks( TicketObj => $Ticket, ARGSRef => \%ARGS);
+ $ARGS{ $Ticket->id .'-MergeInto' } = $MergeTicket->id;
- $Ticket = LoadTicket($id);
- return $m->comp('/RTIR/Display.html', id => $Ticket->id, results => \@results );
- } else {
- push @results, loc("Merge failed: Ticket #[_1] is not the right type", $MergeTicket->Id );
+ for my $t ( $Ticket, $MergeTicket ) {
+ next if $t->Owner == $t->CurrentUser->Id;
+
+ my ($status, $msg) = $t->SetOwner($t->CurrentUser->Id, 'Force');
+ push @results, $msg if $msg;
}
+ push @results, ProcessTicketLinks( TicketObj => $Ticket, ARGSRef => \%ARGS);
+
+ $Ticket = LoadTicket($id);
+ return $m->comp('/RTIR/Display.html', id => $Ticket->id, results => \@results );
}
my $Type = RT::IR::TicketType( Ticket => $Ticket );
@@ -109,11 +123,14 @@
$Query ||= $m->comp('/RTIR/Elements/NewQuery', Queue => $Queue);
unless ( $BaseQuery ) {
- $BaseQuery = $m->comp('/RTIR/Elements/BaseQuery', Queue => $Queue);
- $BaseQuery = join ' AND ', map "( $_ )", grep $_, $BaseQuery, " id != $id";
+ my @parts;
+ push @parts, "id != $id";
+ push @parts, $m->comp('/RTIR/Elements/BaseQuery', Queue => $Queue);
+ push @parts, "CF.{_RTIR_Constituency} = '". $Ticket->FirstCustomFieldValue('_RTIR_Constituency') ."'"
+ if RT->Config->Get('_RTIR_Constituency_Propagation') eq 'reject';
+ $BaseQuery = join ' AND ', map "( $_ )", grep $_, @parts;
}
-
my %defaults = (
Format => $Format,
Rows => $Rows,
More information about the Rt-commit
mailing list