[Rt-commit] rtir branch 5.0/use-current-interface-for-how-reported created. 5.0.3-3-g9a1dcc29

BPS Git Server git at git.bestpractical.com
Thu Jan 19 20:12:09 UTC 2023


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "rtir".

The branch, 5.0/use-current-interface-for-how-reported has been created
        at  9a1dcc29f258bc70ccda5c2cb4f1c01680d61e45 (commit)

- Log -----------------------------------------------------------------
commit 9a1dcc29f258bc70ccda5c2cb4f1c01680d61e45
Author: Ronaldo Richieri <ronaldo at bestpractical.com>
Date:   Thu Jan 19 17:06:40 2023 -0300

    Set "How Reported" CF from RT::CurrentInterface()
    
    Fixes: I#32162

diff --git a/lib/RT/Action/RTIR_SetHowReported.pm b/lib/RT/Action/RTIR_SetHowReported.pm
index b143745e..40386566 100644
--- a/lib/RT/Action/RTIR_SetHowReported.pm
+++ b/lib/RT/Action/RTIR_SetHowReported.pm
@@ -53,7 +53,7 @@ use base 'RT::Action::RTIR';
 
 =head2 Commit
 
-If the HowReported field isn't set, assume it's email.
+If the HowReported field isn't set, get from RT::CurrentInterface and set it.
 
 =cut
 
@@ -66,7 +66,7 @@ sub Commit {
 
     my $Values = $self->TicketObj->CustomFieldValues( $cf->id );
     unless ( $Values->Count ) {
-        $self->TicketObj->AddCustomFieldValue( Field => $cf->id, Value => "Email" );
+        $self->TicketObj->AddCustomFieldValue( Field => $cf->id, Value => RT::CurrentInterface() );
     }
     return 1;
 }

commit 727e7f0f7b804be8d6b237e747aaddabed9851db
Author: Ronaldo Richieri <ronaldo at bestpractical.com>
Date:   Thu Jan 19 16:08:53 2023 -0300

    Add more RT standard interfaces to "How Reported" CF

diff --git a/etc/initialdata b/etc/initialdata
index 1b720a2d..986cd5fa 100644
--- a/etc/initialdata
+++ b/etc/initialdata
@@ -104,9 +104,14 @@ die "Please add RT::IR to your Plugins configuration before initializing the dat
         Description =>
             'How the incident was reported for Incident Reports RTIR queue',
         Values => [
-            { Name => "Email",     SortOrder => 1 },
-            { Name => "Telephone", SortOrder => 2 },
-            { Name => "Other",     SortOrder => 3 },
+            { Name => "API",       SortOrder => 1 },
+            { Name => "CLI",       SortOrder => 2 },
+            { Name => "Email",     SortOrder => 3 },
+            { Name => "REST",      SortOrder => 4 },
+            { Name => "REST2",     SortOrder => 5 },
+            { Name => "Web",       SortOrder => 6 },
+            { Name => "Telephone", SortOrder => 7 },
+            { Name => "Other",     SortOrder => 8 },
         ]
     },
     {   Name        => 'Reporter Type',
diff --git a/etc/upgrade/5.0.4/content b/etc/upgrade/5.0.4/content
new file mode 100644
index 00000000..315702fb
--- /dev/null
+++ b/etc/upgrade/5.0.4/content
@@ -0,0 +1,58 @@
+use strict;
+use warnings;
+
+our @Final = (
+    sub {
+        my $cf = RT::CustomField->new( RT->SystemUser );
+        $cf->Load('How Reported');
+        if ( $cf->Id ) {
+            my %sort_order = (
+                API       => 1,
+                CLI       => 2,
+                Email     => 3,
+                REST      => 4,
+                REST2     => 5,
+                Web       => 6,
+                Telephone => 7,
+                Other     => 8,
+            );
+            my %current = map { $_->Name => $_ } @{ $cf->Values->ItemsArrayRef || [] };
+
+            for my $item ( sort keys %sort_order ) {
+                if ( $current{$item} ) {
+                    if ( ( $current{$item}->SortOrder // 0 ) != $sort_order{$item} ) {
+                        my ( $ret, $msg ) = $current{$item}->SetSortOrder( $sort_order{$item} );
+                        if ( !$ret ) {
+                            RT->Logger->error("Could not set sort order for $item: $msg");
+                        }
+                    }
+                    delete $current{$item};
+                }
+                else {
+                    my ( $ret, $msg ) = $cf->AddValue( Name => $item, SortOrder => $sort_order{$item} );
+                    if ( !$ret ) {
+                        RT->Logger->error("Could not create new value $item: $msg");
+                    }
+                }
+            }
+
+            # Adjust SortOrder for non-core ones added by users.
+            my $next_sort_order = 9;
+            for my $item (
+                sort { ( $current{$a}->SortOrder // 0 ) <=> ( $current{$b}->SortOrder // 0 ) }
+                keys %current
+                )
+            {
+                if ( ( $current{$item}->SortOrder // 0 ) != $next_sort_order ) {
+                    my ( $ret, $msg ) = $current{$item}->SetSortOrder($next_sort_order);
+                    if ( !$ret ) {
+                        RT->Logger->error("Could not set sort order for $item: $msg");
+                    }
+                }
+                $next_sort_order++;
+            }
+        }
+    },
+);
+
+1;

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


hooks/post-receive
-- 
rtir


More information about the rt-commit mailing list