From 549d5a545dc39b2773dae7443a62d68d78071186 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Mon, 24 Aug 2020 14:24:39 +0000 Subject: [PATCH] Bug 25273: (follow-up) Don't die on unknown authtype We are guessing authtype code and inserting the heading built accorindg to C4::Heading If we can't identify the auth type, we can format the heading. There is a record in the koha test data that is missing the heading field so type cannot be idenfitied This prevents us from dying n a record where we cannot identify the type. Note: This code will also be triggered for custom authority types, higlighting that they won't link because of hardcoded mappings in C4::Heading. We must tackle this on a new bug --- Koha/SearchEngine/Elasticsearch.pm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Koha/SearchEngine/Elasticsearch.pm b/Koha/SearchEngine/Elasticsearch.pm index a678ea2610..24ff497e27 100644 --- a/Koha/SearchEngine/Elasticsearch.pm +++ b/Koha/SearchEngine/Elasticsearch.pm @@ -539,9 +539,13 @@ sub marc_records_to_documents { if ( $self->index eq 'authorities' ){ my $authtypecode = GuessAuthTypeCode( $record ); - my $field = $record->field( $auth_match_headings{ $authtypecode } ); - my $heading = C4::Heading->new_from_field( $field, undef, 1 ); #new auth heading - push @{$record_document->{'match-heading'}}, $heading->search_form if $heading; + if( $authtypecode ){ + my $field = $record->field( $auth_match_headings{ $authtypecode } ); + my $heading = C4::Heading->new_from_field( $field, undef, 1 ); #new auth heading + push @{$record_document->{'match-heading'}}, $heading->search_form if $heading; + } else { + warn "Cannot determine authority type for record: " . $record->field('001')->as_string; + } } my $mappings = $rules->{leader}; -- 2.11.0