[Rt-commit] rt branch, 4.0/apply-scrips-to-multiple-queues, updated. rt-4.0.4-179-g0252372

Ruslan Zakirov ruz at bestpractical.com
Wed Jan 11 16:00:31 EST 2012


The branch, 4.0/apply-scrips-to-multiple-queues has been updated
       via  0252372ad5a7586001fa8653bd0918c09316364b (commit)
       via  7929ded4b2f7ee9ddb9901bc5632fa73ac26c255 (commit)
       via  982b83880cdab573f4f12c54a04f75c51397334d (commit)
      from  103aa045f58a8fa7006780c360723582c6b86af4 (commit)

Summary of changes:
 lib/RT/Record/ApplyAndSort.pm |    7 ++++++-
 lib/RT/Scrip.pm               |    3 +++
 t/api/scrip.t                 |   23 ++++++++++++++++++++++-
 3 files changed, 31 insertions(+), 2 deletions(-)

- Log -----------------------------------------------------------------
commit 982b83880cdab573f4f12c54a04f75c51397334d
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Thu Jan 12 00:45:22 2012 +0400

    comment unexpected code

diff --git a/lib/RT/Scrip.pm b/lib/RT/Scrip.pm
index 2d872a8..a38a1dc 100644
--- a/lib/RT/Scrip.pm
+++ b/lib/RT/Scrip.pm
@@ -396,6 +396,9 @@ Returns the current value of Disabled.
 
 sub Disabled {
     my $self = shift;
+    # we check only one record as at this moment all applications
+    # should be disabled or none, this method should be dropped when
+    # we implement full functionality
     my $record = RT::ObjectScrip->new( $self->CurrentUser );
     $record->LoadByCols( Scrip => $self->id );
     return $record->Disabled;

commit 7929ded4b2f7ee9ddb9901bc5632fa73ac26c255
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Thu Jan 12 00:58:55 2012 +0400

    disable many applications under DB's transaction

diff --git a/lib/RT/Record/ApplyAndSort.pm b/lib/RT/Record/ApplyAndSort.pm
index a63a243..a8a5e40 100644
--- a/lib/RT/Record/ApplyAndSort.pm
+++ b/lib/RT/Record/ApplyAndSort.pm
@@ -220,10 +220,15 @@ sub SetDisabledOnAll {
 
     my $list = $self->CollectionClass->new( $self->CurrentUser );
     $list->Limit( FIELD => $field, VALUE => $id );
+    $RT::Handle->BeginTransaction;
     foreach ( @{ $list->ItemsArrayRef } ) {
         my ($status, $msg) = $_->SetDisabled( $args{Value} || 0 );
-        return ($status, $msg) unless $status;
+        unless ( $status ) {
+            $RT::Handle->Rollback;
+            return ($status, $msg);
+        }
     }
+    $RT::Handle->Commit;
     return (1, $self->loc("Disabled all applications") );
 }
 

commit 0252372ad5a7586001fa8653bd0918c09316364b
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Thu Jan 12 00:59:38 2012 +0400

    very basic tests for disabling scrips

diff --git a/t/api/scrip.t b/t/api/scrip.t
index df15599..a8437f7 100644
--- a/t/api/scrip.t
+++ b/t/api/scrip.t
@@ -2,7 +2,7 @@
 use strict;
 use warnings;
 use RT;
-use RT::Test tests => 61;
+use RT::Test tests => 66;
 
 my $queue = RT::Test->load_or_create_queue( Name => 'General' );
 ok $queue && $queue->id, 'loaded or created queue';
@@ -168,6 +168,27 @@ note 'check applications vs. templates';
     main->check_applications($scrip, [$queue, $queue_B], [0]);
 }
 
+note 'basic check for disabling scrips';
+{
+    my $scrip = RT::Scrip->new(RT->SystemUser);
+    my ($status, $msg) = $scrip->Create(
+        Queue          => $queue->Id,
+        ScripAction    => 'User Defined',
+        ScripCondition => 'User Defined',
+        Template       => 'Blank',
+    );
+    ok($status, "created scrip");
+    is($scrip->Disabled, 0, "not disabled");
+
+    ($status,$msg) = $scrip->SetDisabled(1);
+    is($scrip->Disabled, 1, "disabled");
+
+    ($status, $msg) = $scrip->RemoveFromObject( $queue->id );
+    ok($status, 'removed scrip from queue');
+
+    is($scrip->Disabled, undef, "not applied");
+}
+
 sub check_applications {
     local $Test::Builder::Level = $Test::Builder::Level + 1;
     my $self = shift;

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


More information about the Rt-commit mailing list