[Rt-commit] rt branch, 3.999-trunk, updated. f0ff59cb69bf510031961fb432b957721a2278ca

sartak at bestpractical.com sartak at bestpractical.com
Wed Dec 2 07:17:58 EST 2009


The branch, 3.999-trunk has been updated
       via  f0ff59cb69bf510031961fb432b957721a2278ca (commit)
      from  dbb181440839cfa79af8291558e13112239ff710 (commit)

Summary of changes:
 lib/RT/Model/Ticket.pm |   75 ++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 60 insertions(+), 15 deletions(-)

- Log -----------------------------------------------------------------
commit f0ff59cb69bf510031961fb432b957721a2278ca
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Wed Dec 2 07:17:46 2009 -0500

    Canonicalizers for priority columns

diff --git a/lib/RT/Model/Ticket.pm b/lib/RT/Model/Ticket.pm
index 46333c9..998ce7c 100755
--- a/lib/RT/Model/Ticket.pm
+++ b/lib/RT/Model/Ticket.pm
@@ -434,21 +434,6 @@ sub create {
 
     #Since we have a queue, we can set queue defaults
 
-    #Initial priority
-    # If there's no queue default initial priority and it's not set, set it to 0
-    $args{'initial_priority'} = $queue_obj->initial_priority || 0
-        unless defined $args{'initial_priority'};
-
-    #Final priority
-    # If there's no queue default final priority and it's not set, set it to 0
-    $args{'final_priority'} = $queue_obj->final_priority || 0
-        unless defined $args{'final_priority'};
-
-    # priority may have changed from initial_priority, for the case
-    # where we're importing tickets (eg, from an older RT version.)
-    $args{'priority'} = $args{'initial_priority'}
-        unless defined $args{'priority'};
-
     # XXX we should become consistent about requestor vs requestors
     $args{'requestor'} = delete $args{'requestors'}
         unless $args{'requestor'};
@@ -922,6 +907,66 @@ sub canonicalize_told {
     return RT::DateTime->new_unset;
 }
 
+=head2 canonicalize_initial_priority
+
+Fallback to the queue's initial priority if available, or 0.
+
+=cut
+
+sub canonicalize_initial_priority {
+    my $self    = shift;
+    my $initial = shift;
+    my $other   = shift;
+
+    return $initial if defined $initial;
+
+    my $queue = $self->queue_id || $other->{queue};
+    my $queue_obj = RT::Model::Queue->new;
+    $queue_obj->load($queue);
+
+    return $queue_obj->initial_priority || 0;
+}
+
+=head2 canonicalize_final_priority
+
+Fallback to the queue's final priority if available, or 0.
+
+=cut
+
+sub canonicalize_final_priority {
+    my $self  = shift;
+    my $final = shift;
+    my $other = shift;
+
+    return $final if defined $final;
+
+    my $queue = $self->queue_id || $other->{queue};
+    my $queue_obj = RT::Model::Queue->new;
+    $queue_obj->load($queue);
+
+    return $queue_obj->final_priority || 0;
+}
+
+=head2 canonicalize_priority
+
+Fallback to the initial priority.
+
+=cut
+
+sub canonicalize_priority {
+    my $self     = shift;
+    my $priority = shift;
+    my $other    = shift;
+
+    return $priority if defined $priority;
+
+    # Otherwise, we should canonicalize to initial_priority. But
+    # canonicalizations are unordered, so we need to play a little dirty
+    my $initial = $self->canonicalize_initial_priority($other->{initial_priority}, $other, @_);
+
+    return $initial;
+}
+
 sub roles { return ( "cc", "admin_cc", "requestor" ); }
 
 =head2 squelch_mail_to [EMAIL]

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


More information about the Rt-commit mailing list