[Rt-commit] rt branch, create-action, updated. 9ec73e2e28b7dce3d9873bafdda93160e97b7703

sartak at bestpractical.com sartak at bestpractical.com
Thu Sep 3 09:36:51 EDT 2009


The branch, create-action has been updated
       via  9ec73e2e28b7dce3d9873bafdda93160e97b7703 (commit)
      from  cab5c13ac57054622ad9dfee8bf32e0270c113d2 (commit)

Summary of changes:
 lib/RT/Action/CreateTicket.pm |   30 +++++++++++++++++++++++++-----
 lib/RT/View/Ticket/Create.pm  |    5 ++++-
 2 files changed, 29 insertions(+), 6 deletions(-)

- Log -----------------------------------------------------------------
commit 9ec73e2e28b7dce3d9873bafdda93160e97b7703
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Sep 3 09:36:29 2009 -0400

    Generalize requestors into role_groups

diff --git a/lib/RT/Action/CreateTicket.pm b/lib/RT/Action/CreateTicket.pm
index 9f44008..2a92b51 100644
--- a/lib/RT/Action/CreateTicket.pm
+++ b/lib/RT/Action/CreateTicket.pm
@@ -15,11 +15,6 @@ use Jifty::Action schema {
     param owner =>
         render as 'select',
         valid_values are RT->nobody;
-
-    param requestors =>
-        render as 'text',
-        display_length is 40,
-        default is defer { Jifty->web->current_user->email };
 };
 
 sub after_set_queue {
@@ -29,6 +24,16 @@ sub after_set_queue {
 
     $self->set_valid_statuses($queue);
     $self->set_valid_owners($queue);
+
+    $self->add_role_group_parameter(
+        name          => 'requestors',
+        default_value => Jifty->web->current_user->email,
+    );
+}
+
+sub role_group_parameters {
+    my $self = shift;
+    return @{ $self->{_role_group_parameters} || [] };
 }
 
 sub set_valid_statuses {
@@ -76,5 +81,20 @@ sub set_valid_owners {
     ];
 }
 
+sub add_role_group_parameter {
+    my $self = shift;
+    my %args = @_;
+
+    my $name = delete $args{name};
+
+    push @{ $self->{_role_group_parameters} }, $name;
+
+    $self->{_cached_arguments}{$name} = {
+        render_as      => 'text',
+        display_length => 40,
+        %args,
+    };
+}
+
 1;
 
diff --git a/lib/RT/View/Ticket/Create.pm b/lib/RT/View/Ticket/Create.pm
index d826623..170e82a 100644
--- a/lib/RT/View/Ticket/Create.pm
+++ b/lib/RT/View/Ticket/Create.pm
@@ -106,7 +106,10 @@ sub show_basics {
 
         render_param($create, 'status');
         render_param($create, 'owner');
-        render_param($create, 'requestors');
+
+        for my $role_group ($create->role_group_parameters) {
+            render_param($create, $role_group);
+        }
 
         $create->button(label => _('Create'));
     };

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


More information about the Rt-commit mailing list