[Rt-commit] rt branch, 5.0/lifecycle-ui-mappings-case-variant-statuses, created. rt-5.0.0-123-gd95dde3af4

Craig Kaiser craig at bestpractical.com
Thu Nov 19 09:52:34 EST 2020


The branch, 5.0/lifecycle-ui-mappings-case-variant-statuses has been created
        at  d95dde3af405e67e394fc06670a17a5c3133e4ac (commit)

- Log -----------------------------------------------------------------
commit 2e720bf571a00706e2a9c6357e40a619c3dc6b52
Author: craig kaiser <craig at bestpractical.com>
Date:   Tue Nov 17 10:05:33 2020 -0500

    Add lifecycle_mappings test for case variant statuses

diff --git a/t/lifecycles/types.t b/t/lifecycles/types.t
index ed8e0b572d..bcab3e34ff 100644
--- a/t/lifecycles/types.t
+++ b/t/lifecycles/types.t
@@ -19,7 +19,7 @@ ok($tickets, "Got a generalized lifecycle for tickets");
 isa_ok( $tickets, "RT::Lifecycle::Ticket", "Is the right subclass" );
 is_deeply( [ sort $tickets->Valid ],
            [ sort qw(new open stalled resolved rejected deleted ordered),
-             'on way', 'delayed', 'delivered', 'sales', 'engineering', 'initial', 'active', 'inactive'],
+             'on way', 'delayed', 'delivered', 'sales', 'engineering', 'initial', 'active', 'inactive', 'case-Variant'],
            "Only gets ticket statuses" );
 
 
diff --git a/t/lifecycles/utils.pl b/t/lifecycles/utils.pl
index f832828a51..314dc0a37c 100644
--- a/t/lifecycles/utils.pl
+++ b/t/lifecycles/utils.pl
@@ -69,7 +69,7 @@ Set(\%Lifecycles,
     "sales"      => {
         type     => 'ticket',
         initial  => ['initial'],
-        active   => ['active'],
+        active   => ['active', 'case-Variant'],
         inactive => ['inactive'],
     },
     "sales-engineering" => {
diff --git a/t/web/lifecycle_mappings.t b/t/web/lifecycle_mappings.t
index 3be42f3f0f..2594ac996d 100644
--- a/t/web/lifecycle_mappings.t
+++ b/t/web/lifecycle_mappings.t
@@ -67,17 +67,18 @@ diag "Test updating mappings";
     $form = $m->form_name('ModifyMappings');
     $m->submit_form(
         fields => {
-            "map-default--new--sales"      => "active",
-            "map-default--open--sales"     => "active",
-            "map-default--resolved--sales" => "inactive",
-            "map-sales--initial--default"  => "new",
-            "map-sales--active--default"   => "open",
-            "map-sales--inactive--default" => "resolved",
-            "map-default--deleted--sales"  => "inactive",
-            "map-default--rejected--sales" => "inactive",
-            "map-default--stalled--sales"  => "active",
-            "Name"                         => "default",
-            "Type"                         => "ticket",
+            "map-default--new--sales"          => "active",
+            "map-default--open--sales"         => "active",
+            "map-default--resolved--sales"     => "inactive",
+            "map-sales--initial--default"      => "new",
+            "map-sales--active--default"       => "open",
+            "map-sales--inactive--default"     => "resolved",
+            "map-sales--case-Variant--default" => "open",
+            "map-default--deleted--sales"      => "inactive",
+            "map-default--rejected--sales"     => "inactive",
+            "map-default--stalled--sales"      => "active",
+            "Name"                             => "default",
+            "Type"                             => "ticket",
         },
         button => 'Update'
     );
@@ -94,18 +95,19 @@ diag "Confirm the web UI correctly displays mappings";
     my $form = $m->form_name('ModifyMappings');
 
     my $from = {
-        deleted  => "inactive",
-        new      => "active",
-        open     => "active",
-        rejected => "inactive",
-        resolved => "inactive",
-        stalled  => "active",
+        deleted        => "inactive",
+        new            => "active",
+        open           => "active",
+        rejected       => "inactive",
+        resolved       => "inactive",
+        stalled        => "active",
     };
 
     my $to = {
-        active   => "open",
-        inactive => "resolved",
-        initial  => "new",
+        active         => "open",
+        inactive       => "resolved",
+        initial        => "new",
+        "case-Variant" => "open"
     };
 
     my @inputs = $form->inputs;
@@ -118,12 +120,16 @@ diag "Confirm the web UI correctly displays mappings";
                 $from->{$default_status},
                 "Mapping set correctly for default -> sales for status: $default_status"
               );
+            delete $from->{$default_status};
         }
         elsif ($sales_from) {
             is( $input->value, $to->{$sales_status},
                 "Mapping set correctly for sales -> default for status: $sales_status" );
+            delete $to->{$sales_status};
         }
     }
+    is_deeply( $from, {}, "All expected default mappings found." );
+    is_deeply( $to, {}, "All expected sales mappings found." );
 }
 
 diag "Test updating sales-engineering mappings";

commit d95dde3af405e67e394fc06670a17a5c3133e4ac
Author: craig kaiser <craig at bestpractical.com>
Date:   Tue Nov 17 10:50:09 2020 -0500

    Find cased statuses for Mappings.html page
    
    Since the MoveMap method returns lower case statuses we need to convert
    those values into mixed cased statuses to accuratly reflect the mapping.

diff --git a/share/html/Admin/Lifecycles/Mappings.html b/share/html/Admin/Lifecycles/Mappings.html
index 1540ce0961..218ba7a2ac 100644
--- a/share/html/Admin/Lifecycles/Mappings.html
+++ b/share/html/Admin/Lifecycles/Mappings.html
@@ -74,7 +74,11 @@
           <% $OtherStatus %>:
         </div>
         <div class="col-8 value">
-          <& /Elements/SelectStatus, Statuses => \@MyStatuses, Default => $FromMapping->{$OtherStatus}, Name => 'map-' . $Other->Name . '--' . $OtherStatus . '--' . $LifecycleObj->Name&>
+          <& /Elements/SelectStatus,
+            Statuses => \@MyStatuses,
+            Default  => $getCasedStatus->( Status => $OtherStatus, MoveMap => $FromMapping, Statuses => \@MyStatuses ),
+            Name     => 'map-' . $Other->Name . '--' . $OtherStatus . '--' . $LifecycleObj->Name
+          &>
         </div>
       </div>
 % }
@@ -88,7 +92,11 @@
           <% $MyStatus %>:
         </div>
         <div class="col-8 value">
-          <& /Elements/SelectStatus, Statuses => \@OtherStatuses, Default => $ToMapping->{$MyStatus}, Name => 'map-' . $LifecycleObj->Name . '--' . $MyStatus . '--' . $Other->Name &>
+          <& /Elements/SelectStatus,
+            Statuses => \@OtherStatuses,
+            Default  => $getCasedStatus->( Status => $MyStatus, MoveMap => $ToMapping, Statuses => \@OtherStatuses ),
+            Name     => 'map-' . $LifecycleObj->Name . '--' . $MyStatus . '--' . $Other->Name
+          &>
         </div>
       </div>
 % }
@@ -147,6 +155,28 @@ my @lifecycles = map { RT::Lifecycle->Load(Name => $_, Type => $Type) }
                  @lifecycle_names;
 
 push @results, loc("You only need mappings once you have two more [_1] lifecycles", loc($Type)) unless @lifecycles;
+
+my $getCasedStatus = sub {
+    my %args = (
+      Status   => undef,
+      MoveMap  => undef,
+      Statuses => [],
+      @_
+    );
+    return '' unless $args{'Status'} && $args{'MoveMap'} && $args{'Statuses'};
+
+    my $cased_status;
+    foreach my $status ( @{$args{'Statuses'}} ) {
+        if ( $args{'MoveMap'}->{lc $args{'Status'}} ) {
+            if ( $args{'MoveMap'}->{lc $args{'Status'}} eq lc $status ) {
+                $cased_status = $status;
+                last;
+            }
+        }
+    }
+    return $cased_status;
+};
+
 </%INIT>
 <%ARGS>
 $Name => undef

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


More information about the rt-commit mailing list