[Rt-commit] rt branch, 3.9-trunk, updated. rt-3.8.8-338-g0838fea

Jesse Vincent jesse at bestpractical.com
Mon Aug 16 15:06:11 EDT 2010


The branch, 3.9-trunk has been updated
       via  0838fea5c646645eeba15ce5e0a9f975dd991a88 (commit)
      from  e00834b0ef876b466bafab3f68af4bcb05f3526b (commit)

Summary of changes:
 lib/RT/Approval/Rule.pm |    6 +++++-
 lib/RT/Queue_Overlay.pm |   14 +++++++++++---
 lib/RT/Rule.pm          |   15 +++++++++------
 3 files changed, 25 insertions(+), 10 deletions(-)

- Log -----------------------------------------------------------------
commit 0838fea5c646645eeba15ce5e0a9f975dd991a88
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Mon Aug 16 15:07:44 2010 -0400

    Giant stack traces during testing make me sad.  This commit resolves the condition
    that causes them.

diff --git a/lib/RT/Approval/Rule.pm b/lib/RT/Approval/Rule.pm
index f4acd8f..21c62b2 100644
--- a/lib/RT/Approval/Rule.pm
+++ b/lib/RT/Approval/Rule.pm
@@ -57,7 +57,11 @@ use constant _Queue => '___Approvals';
 sub Prepare {
     my $self = shift;
     return unless $self->SUPER::Prepare();
-    $self->TicketObj->Type eq 'approval';
+    if (($self->TicketObj->__Value('Type')||'') eq 'approval') {
+        return 1;
+    } else {
+        return undef
+    }
 }
 
 sub GetTemplate {
diff --git a/lib/RT/Queue_Overlay.pm b/lib/RT/Queue_Overlay.pm
index 4680dfd..4d7712b 100755
--- a/lib/RT/Queue_Overlay.pm
+++ b/lib/RT/Queue_Overlay.pm
@@ -71,6 +71,7 @@ no warnings qw(redefine);
 use RT::Groups;
 use RT::ACL;
 use RT::Interface::Email;
+use RT::StatusSchema;
 
 our @DEFAULT_ACTIVE_STATUS = qw(new open stalled);
 our @DEFAULT_INACTIVE_STATUS = qw(resolved rejected deleted);  
@@ -192,12 +193,19 @@ sub AvailableRights {
 
 sub status_schema {
     my $self = shift;
-    require RT::StatusSchema;
-    return RT::StatusSchema->load('') unless ref $self && $self->id;
+    unless (ref $self && $self->id) { 
+        return RT::StatusSchema->load('') 
+    }
+
+    my $name = '';
 
     # If you don't have StatusSchemas set, name is default
     my $schemas = RT->Config->Get('StatusSchemas');
-    my $name = $schemas ? ($schemas->{ $self->Name } || 'default') : 'default';
+    if ($schemas && $self->Name && defined $schemas->{$self->Name}) {
+        $name = $schemas->{$self->Name};
+    } else {
+        $name = 'default';
+    }
 
     my $res = RT::StatusSchema->load( $name );
     $RT::Logger->error("Status schema '$name' for queue '".$self->Name."' doesn't exist") unless $res;
diff --git a/lib/RT/Rule.pm b/lib/RT/Rule.pm
index 14fc9d6..eab8a3a 100644
--- a/lib/RT/Rule.pm
+++ b/lib/RT/Rule.pm
@@ -54,15 +54,18 @@ use base 'RT::Action';
 use constant _Stage => 'TransactionCreate';
 use constant _Queue => undef;
 
+
+
 sub Prepare {
     my $self = shift;
-    if (   $self->_Queue
-        && $self->TicketObj->QueueObj->Name
-        && ( $self->TicketObj->QueueObj->Name ne $self->_Queue ) )
-    {
-        return (0);
+    if ( $self->_Queue ) {
+        my $queue = RT::Queue->new( RT->SystemUser );
+        $queue->Load( $self->TicketObj->__Value('Queue') );
+        if ( $queue->Name ne $self->_Queue ) {
+            return (0);
+        }
+        return 1;
     }
-    return 1;
 }
 
 sub Commit  {

-----------------------------------------------------------------------


More information about the Rt-commit mailing list