[Rt-commit] rt branch, create-action, updated. 629001c9455e741268d139ec5f68f69c0f19d962

sartak at bestpractical.com sartak at bestpractical.com
Wed Sep 23 10:22:28 EDT 2009


The branch, create-action has been updated
       via  629001c9455e741268d139ec5f68f69c0f19d962 (commit)
      from  e71b7168dc7c3e435ff5812374631f01bf09ba0d (commit)

Summary of changes:
 lib/RT/Action/CreateTicket.pm |   50 ++++++++++++++++++++++++++++------------
 lib/RT/View/Ticket/Create.pm  |    8 +++---
 2 files changed, 39 insertions(+), 19 deletions(-)

- Log -----------------------------------------------------------------
commit 629001c9455e741268d139ec5f68f69c0f19d962
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Wed Sep 23 10:22:10 2009 -0400

    Make duration fields more customizable too

diff --git a/lib/RT/Action/CreateTicket.pm b/lib/RT/Action/CreateTicket.pm
index 6282ae9..ae942de 100644
--- a/lib/RT/Action/CreateTicket.pm
+++ b/lib/RT/Action/CreateTicket.pm
@@ -45,21 +45,6 @@ use Jifty::Action schema {
         render as 'text',
         display_length is 3,
         label is _('Final Priority');
-
-    param time_estimated =>
-        render as 'text', # should be duration
-        display_length is 3,
-        label is _('Time Estimated');
-
-    param time_worked =>
-        render as 'text', # should be duration
-        display_length is 3,
-        label is _('Time Worked');
-
-    param time_left =>
-        render as 'text', # should be duration
-        display_length is 3,
-        label is _('Time Left');
 };
 
 sub after_set_queue {
@@ -88,6 +73,21 @@ sub after_set_queue {
         hints => _('(Sends a carbon-copy of this update to a comma-delimited list of administrative email addresses. These people <strong>will</strong> receive future updates.)'),
     );
 
+    $self->add_duration_parameter(
+        name  => 'time_estimated',
+        label => _('Time Estimated'),
+    );
+
+    $self->add_duration_parameter(
+        name  => 'time_worked',
+        label => _('Time Worked'),
+    );
+
+    $self->add_duration_parameter(
+        name  => 'time_left',
+        label => _('Time Left'),
+    );
+
     $self->add_datetime_parameter(
         name  => 'starts',
         label => _('Starts'),
@@ -137,6 +137,11 @@ sub role_group_parameters {
     return @{ $self->{_role_group_parameters} || [] };
 }
 
+sub duration_parameters {
+    my $self = shift;
+    return @{ $self->{_duration_parameters} || [] };
+}
+
 sub datetime_parameters {
     my $self = shift;
     return @{ $self->{_datetime_parameters} || [] };
@@ -207,6 +212,21 @@ sub add_role_group_parameter {
     ));
 }
 
+sub add_duration_parameter {
+    my $self = shift;
+    my %args = @_;
+
+    my $name = delete $args{name};
+
+    push @{ $self->{_duration_parameters} }, $name;
+
+    $self->fill_parameter($name => (
+        render_as      => 'text', # ideally would be Duration
+        display_length => 3,
+        %args,
+    ));
+}
+
 sub add_datetime_parameter {
     my $self = shift;
     my %args = @_;
diff --git a/lib/RT/View/Ticket/Create.pm b/lib/RT/View/Ticket/Create.pm
index e99f42c..c7cdf60 100644
--- a/lib/RT/View/Ticket/Create.pm
+++ b/lib/RT/View/Ticket/Create.pm
@@ -132,9 +132,10 @@ sub show_details {
 
         render_param($create, 'initial_priority');
         render_param($create, 'final_priority');
-        render_param($create, 'time_estimated');
-        render_param($create, 'time_worked');
-        render_param($create, 'time_left');
+
+        for my $duration_type ($create->duration_parameters) {
+            render_param($create, $duration_type);
+        }
 
         hr {};
 
@@ -142,7 +143,6 @@ sub show_details {
             render_param($create, $datetime_type);
         }
 
-
         hr {};
 
         for my $link_type ($create->link_parameters) {

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


More information about the Rt-commit mailing list