[Rt-commit] r16522 - rt/branches/3.999-DANGEROUS/lib/RT/Model

ruz at bestpractical.com ruz at bestpractical.com
Thu Oct 23 12:55:40 EDT 2008


Author: ruz
Date: Thu Oct 23 12:55:40 2008
New Revision: 16522

Modified:
   rt/branches/3.999-DANGEROUS/lib/RT/Model/Ticket.pm

Log:
* adjust set_queue in Ticket model according to status schemas

Modified: rt/branches/3.999-DANGEROUS/lib/RT/Model/Ticket.pm
==============================================================================
--- rt/branches/3.999-DANGEROUS/lib/RT/Model/Ticket.pm	(original)
+++ rt/branches/3.999-DANGEROUS/lib/RT/Model/Ticket.pm	Thu Oct 23 12:55:40 2008
@@ -1308,6 +1308,17 @@
         return ( 0, _("You may not create requests in that queue.") );
     }
 
+    my $new_status;
+    my $schema = $self->queue->status_schema;
+    if ( $schema->name ne $Newqueue_obj->status_schema->name ) {
+        unless ( $schema->has_map( $Newqueue_obj->status_schema ) ) {
+            return ( 0, _("There is no mapping for statuses between these queues. Contact your system administrator.") );
+        }
+        $new_status = $schema->map( $Newqueue_obj )->{ $self->status };
+        return ( 0, _("Mapping between queues' status schemas is incomplete. Contact your system administrator.") )
+            unless $new_status;
+    }
+
     unless (
         $self->owner_obj->has_right(
             right  => 'OwnTicket',
@@ -1339,6 +1350,11 @@
                   . $msg )
               unless $status;
         }
+        if ( $new_status ) {
+            my ($status, $msg) = $self->set_status( status => $new_status, force => 1 );
+            Jifty->log->error( 'Status change failed on queue chabge: ' $msg )
+                unless $status;
+        }
     }
 
     return ( $status, $msg );


More information about the Rt-commit mailing list