[Rt-commit] rt branch, create-action, updated. 2579a6529ea4f509ffda6421109f9634b93d5dff

sartak at bestpractical.com sartak at bestpractical.com
Wed Sep 2 08:20:53 EDT 2009


The branch, create-action has been updated
       via  2579a6529ea4f509ffda6421109f9634b93d5dff (commit)
       via  f2195f3272258625ae196f993420fce35dc21f3e (commit)
      from  71098aefb1dec36af596ed58be8490052466b0f1 (commit)

Summary of changes:
 lib/RT/Action/CreateTicket.pm                    |   25 ++++-----------
 lib/RT/Action/{CreateTicket.pm => QueueBased.pm} |   34 +++++++++++++++-------
 2 files changed, 30 insertions(+), 29 deletions(-)
 copy lib/RT/Action/{CreateTicket.pm => QueueBased.pm} (51%)

- Log -----------------------------------------------------------------
commit f2195f3272258625ae196f993420fce35dc21f3e
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Wed Sep 2 08:20:10 2009 -0400

    Begin a QueueBased mixin for actions that change based on queue

diff --git a/lib/RT/Action/QueueBased.pm b/lib/RT/Action/QueueBased.pm
new file mode 100644
index 0000000..6d1ec60
--- /dev/null
+++ b/lib/RT/Action/QueueBased.pm
@@ -0,0 +1,47 @@
+package RT::Action::QueueBased;
+use strict;
+use warnings;
+use base 'Jifty::Action';
+
+use Jifty::Param::Schema;
+use Jifty::Action schema {
+    param queue =>
+        render as 'text',
+        render_mode is 'read';
+};
+
+sub arguments {
+    my $self = shift;
+
+    if (!$self->{_cached_arguments}) {
+        $self->{_cached_arguments} = \%{ $self->PARAMS };
+
+        if (get('queue')) {
+            my $queue = Jifty->web->request->argument('queue');
+            $queue = $queue->[0] if ref $queue eq 'ARRAY';
+            $self->set_queue($queue);
+        }
+    }
+
+    return $self->{_cached_arguments};
+}
+
+sub set_queue {
+    my $self  = shift;
+    my $queue = shift;
+
+    if (!ref($queue)) {
+        my $queue_obj = RT::Model::Queue->new;
+        $queue_obj->load($queue);
+        $queue = $queue_obj;
+    }
+
+    $self->after_set_queue($queue);
+
+    return $queue;
+}
+
+sub after_set_queue {}
+
+1;
+

commit 2579a6529ea4f509ffda6421109f9634b93d5dff
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Wed Sep 2 08:20:43 2009 -0400

    Recast CreateTicket to be a QueueBased action

diff --git a/lib/RT/Action/CreateTicket.pm b/lib/RT/Action/CreateTicket.pm
index 77f21e2..7e26b65 100644
--- a/lib/RT/Action/CreateTicket.pm
+++ b/lib/RT/Action/CreateTicket.pm
@@ -1,34 +1,23 @@
 package RT::Action::CreateTicket;
 use strict;
 use warnings;
-use base 'Jifty::Action::Record::Create';
+use base 'RT::Action::QueueBased', 'Jifty::Action::Record::Create';
 
 use constant record_class => 'RT::Model::Ticket';
 use constant report_detailed_messages => 1;
 
 use Jifty::Param::Schema;
 use Jifty::Action schema {
-    param queue =>
-        render as 'text',
-        render_mode is 'read',
-        default is defer {
-            my $queue = Jifty->web->request->argument('queue');
-            $queue = $queue->[0] if ref $queue eq 'ARRAY';
-            $queue;
-        };
+    param status =>
+        render as 'select',
+        valid_values are 'new', 'open'; # XXX
 };
 
-sub set_queue {
+sub after_set_queue {
     my $self  = shift;
     my $queue = shift;
-
-    if (!ref($queue)) {
-        my $queue_obj = RT::Model::Queue->new;
-        $queue_obj->load($queue);
-        $queue = $queue_obj;
-    }
-
-    my @valid_statuses = $queue->status_schema->valid;
+    $self->SUPER::after_set_queue(@_);
+    # set valid statuses
 }
 
 1;

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


More information about the Rt-commit mailing list