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.
---
 admin/checkmarc.pl                                 |   19 ++++++++++-
 .../prog/en/modules/admin/checkmarc.tmpl           |   34 ++++++++++++++++++++
 2 files changed, 52 insertions(+), 1 deletions(-)

diff --git a/admin/checkmarc.pl b/admin/checkmarc.pl
index 6721b2c..c14f07f 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 7a7700c..e77c51d 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 @@
         </tr>
     <!-- /TMPL_IF -->
 
+    <!-- TMPL_IF NAME="invalid_authtypecodes" -->
+        <tr>
+            <td style="vertical-align:top;">invalid authority types</td>
+            <td>Not all authority types referred to by the frameworks are 
defined.
+                <table>
+                    <tr>
+                        <th>Framework code</th>
+                        <th>Framework description</th>
+                        <th>Tag</th>
+                        <th>Subfield</th>
+                        <th>Invalid authority type</th>
+                    </tr>
+                    <!-- TMPL_LOOP NAME="authtypecode_info" -->
+                        <tr>
+                            <td><!-- TMPL_VAR NAME="frameworkcode" --></td>
+                            <!-- TMPL_IF NAME="frameworkcode" -->
+                                <td><!-- TMPL_VAR NAME="frameworktext" --></td>
+                            <!-- TMPL_ELSE -->
+                                <td>Default framework</td>
+                            <!-- /TMPL_IF -->
+                            <td><!-- TMPL_VAR NAME="tagfield" --></td>
+                            <td><!-- TMPL_VAR NAME="tagsubfield" --></td>
+                            <td><!-- TMPL_VAR NAME="authtypecode" --></td>
+                        </tr>
+                    <!-- /TMPL_LOOP -->
+                </table>
+            </td>
+        </tr>
+    <!-- TMPL_ELSE -->
+        <tr>
+            <td>OK</td>
+            <td>all authority types used in the frameworks are defined</td>
+        </tr>
+    <!-- /TMPL_IF -->
 <!-- -->
 <!-- TMPL_IF name="total" -->
     <tr>
-- 
1.5.5.GIT

_______________________________________________
Koha-patches mailing list
[email protected]
http://lists.koha.org/mailman/listinfo/koha-patches

Reply via email to