Bug 24215: Correct display of guarantor relationship errors
authorMartin Renvoize <martin.renvoize@ptfs-europe.com>
Wed, 11 Dec 2019 11:33:51 +0000 (11:33 +0000)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Wed, 18 Dec 2019 16:06:06 +0000 (16:06 +0000)
Test plan:
1) Add some bad data to your borrower_relationships table. ( add or
   update a relationship such that the 'relationship' field contains a
   value not listed in the corresponding system preference.
2) Go to the about system information page and note the nasty display of
   ARRAY(whatever)
3) Apply the patch
4) Repeat step 2 and note that a list of bad values is now displayed
   instead.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

about.pl

index 14be586..b9c5c5f 100755 (executable)
--- a/about.pl
+++ b/about.pl
@@ -474,7 +474,7 @@ $template->param( 'bad_yaml_prefs' => \@bad_yaml_prefs ) if @bad_yaml_prefs;
 
     $bad_relationships_count = $bad_relationships_count->[0]->[0];
 
-    my @existing_relationships = $dbh->selectall_arrayref(q{
+    my $existing_relationships = $dbh->selectall_arrayref(q{
           SELECT DISTINCT(relationship)
           FROM (
               SELECT relationship FROM borrower_relationships WHERE relationship IS NOT NULL
@@ -485,17 +485,16 @@ $template->param( 'bad_yaml_prefs' => \@bad_yaml_prefs ) if @bad_yaml_prefs;
     my %valid_relationships = map { $_ => 1 } split( /,|\|/, C4::Context->preference('borrowerRelationship') );
     $valid_relationships{ _bad_data } = 1; # we handle this case in another way
 
-    my @wrong_relationships = grep { !$valid_relationships{ $_->[0] } } @existing_relationships;
-
-    if ( @wrong_relationships or $bad_relationships_count ) {
+    my $wrong_relationships = [ grep { !$valid_relationships{ $_->[0] } } @{$existing_relationships} ];
+    if ( $wrong_relationships or $bad_relationships_count ) {
 
         $template->param(
             warnRelationships => 1,
         );
 
-        if ( @wrong_relationships ) {
+        if ( $wrong_relationships ) {
             $template->param(
-                wrong_relationships => \@wrong_relationships
+                wrong_relationships => $wrong_relationships
             );
         }
         if ($bad_relationships_count) {