Bugzilla – Attachment 95329 Details for
Bug 23846
Handle records with broken MARCXML on the bibliographic detail view
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 23846: Display degraded view when MARCXML is invalid (staff detail)
Bug-23846-Display-degraded-view-when-MARCXML-is-in.patch (text/plain), 2.96 KB, created by
Martin Renvoize (ashimema)
on 2019-11-12 16:07:15 UTC
(
hide
)
Description:
Bug 23846: Display degraded view when MARCXML is invalid (staff detail)
Filename:
MIME Type:
Creator:
Martin Renvoize (ashimema)
Created:
2019-11-12 16:07:15 UTC
Size:
2.96 KB
patch
obsolete
>From b49af4feca4f94a1fa8363b837104cd4b056f978 Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >Date: Tue, 12 Nov 2019 11:04:42 +0100 >Subject: [PATCH] Bug 23846: Display degraded view when MARCXML is invalid > (staff detail) > >When an invalid bibliographic record is imported into the catalogue >there is not warning or error. However the bibliographic record detail >page will explode (Koha::Biblio::Metadata->record will raise an >exception). > >This patch proposes to catch the exception on this view and display a >warning about the situation. >Note that editing/saving the record will fix the MARCXML data and so >removes the warning (some black magic we should get rid of I suspect). > >Test plan: >- Import a bibliographic record with invalid XML, you can add non >printable characters, like 0x1F (CTRL-V 1F with vim) >- Go to the detail page >=> Without this patch you get a 500 >=> With this patch applied you get a "degraded view" with a warning >message, telling you what the error is. > >Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> >--- > catalogue/detail.pl | 9 ++++++++- > .../intranet-tmpl/prog/en/modules/catalogue/detail.tt | 6 ++++++ > 2 files changed, 14 insertions(+), 1 deletion(-) > >diff --git a/catalogue/detail.pl b/catalogue/detail.pl >index 3e2ca01cf5..511855e9fc 100755 >--- a/catalogue/detail.pl >+++ b/catalogue/detail.pl >@@ -112,6 +112,9 @@ if ( not defined $record ) { > exit; > } > >+eval { $biblio->metadata->record }; >+$template->param( decoding_error => $@ ); >+ > if($query->cookie("holdfor")){ > my $holdfor_patron = Koha::Patrons->find( $query->cookie("holdfor") ); > $template->param( >@@ -143,7 +146,11 @@ if ( $xslfile ) { > } > > $template->param( 'SpineLabelShowPrintOnBibDetails' => C4::Context->preference("SpineLabelShowPrintOnBibDetails") ); >-$template->param( ocoins => $biblio->get_coins ); >+ >+# Catch the exception as Koha::Biblio::Metadata->record can explode if the MARCXML is invalid >+# Do not propagate it as we already deal with it previously in this script >+my $coins = eval { $biblio->get_coins }; >+$template->param( ocoins => $coins ); > > # some useful variables for enhanced content; > # in each case, we're grabbing the first value we find in >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >index d7fc0ec3f2..5da7b95c18 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >@@ -68,6 +68,12 @@ > [% CoceHost = Koha.Preference('CoceHost') %] > > [% INCLUDE 'cat-toolbar.inc' %] >+ [% IF decoding_error %] >+ <div> >+ There is an error with this bibliographic record, the view may be degraded. >+ <br/> Error: [% decoding_error %] >+ </div> >+ [% END %] > [% IF ( ocoins ) %] > <!-- COinS / OpenURL --> > <span class="Z3988" title="[% ocoins | html %]"></span> >-- >2.20.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 23846
:
94419
|
94420
|
95291
|
95292
|
95329
|
95330
|
95340
|
95341
|
95342
|
95343
|
95344