From 91b47af583dc317b276f10d0de0492be4833093c Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Wed, 25 Jun 2008 11:30:03 -0500 Subject: [PATCH] bug 2254 [3/3]: add authority type check Added a test to the MARC framework checks to verify that all authority types used in a framework are defined. Documentation changes: possible new screenshots and text to describe the new test. NOTE: This patch adds strings to the checkmarc template, and thus violates the string freeze for 3.0. I'm submitting anyway because 2254 is a blocker, but if no exception is made, it is safe to not apply this patch for 3.0. Signed-off-by: Joshua Ferraro --- admin/checkmarc.pl | 19 ++++++++++- .../prog/en/modules/admin/checkmarc.tmpl | 34 +++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/admin/checkmarc.pl b/admin/checkmarc.pl index 6721b2c439..c14f07fced 100755 --- a/admin/checkmarc.pl +++ b/admin/checkmarc.pl @@ -208,7 +208,7 @@ if ($res) { $total++; } -# verify that all of a field's subfields (except the ones explicitly ignore) +# verify that all of a field's subfields (except the ones explicitly ignored) # are in the same tab $sth = $dbh->prepare("SELECT tagfield, frameworkcode, frameworktext, GROUP_CONCAT(DISTINCT tab) AS tabs FROM marc_subfield_structure @@ -224,6 +224,23 @@ if (scalar(@$inconsistent_tabs) > 0) { $template->param(tab_info => $inconsistent_tabs); } +# verify that authtypecodes used in the framework +# are defined in auth_types +$sth = $dbh->prepare("SELECT frameworkcode, frameworktext, tagfield, tagsubfield, authtypecode + FROM marc_subfield_structure + LEFT JOIN biblio_framework USING (frameworkcode) + WHERE authtypecode IS NOT NULL + AND authtypecode <> '' + AND authtypecode NOT IN (SELECT authtypecode FROM auth_types) + ORDER BY frameworkcode, tagfield, tagsubfield"); +$sth->execute; +my $invalid_authtypecodes = $sth->fetchall_arrayref({}); +if (scalar(@$invalid_authtypecodes) > 0) { + $total++; + $template->param(invalid_authtypecodes => 1); + $template->param(authtypecode_info => $invalid_authtypecodes); +} + $template->param(total => $total, ); diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/checkmarc.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/checkmarc.tmpl index 7a7700cd96..e77c51dee4 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/checkmarc.tmpl +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/checkmarc.tmpl @@ -188,6 +188,40 @@ + + + invalid authority types + Not all authority types referred to by the frameworks are defined. + + + + + + + + + + + + + + + + + + + + + +
Framework codeFramework descriptionTagSubfieldInvalid authority type
Default framework
+ + + + + OK + all authority types used in the frameworks are defined + +