Bugzilla – Attachment 98239 Details for
Bug 24094
Authority punctuation mismatch prevents linking to correct records
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 24094: Strip trailing spaces and punctuation from authority headings
Bug-24094-Strip-trailing-spaces-and-punctuation-fr.patch (text/plain), 3.77 KB, created by
Nick Clemens (kidclamp)
on 2020-01-31 14:26:52 UTC
(
hide
)
Description:
Bug 24094: Strip trailing spaces and punctuation from authority headings
Filename:
MIME Type:
Creator:
Nick Clemens (kidclamp)
Created:
2020-01-31 14:26:52 UTC
Size:
3.77 KB
patch
obsolete
>From 07dd0f0f428e709ad64e2c27382023d865a32280 Mon Sep 17 00:00:00 2001 >From: Nick Clemens <nick@bywatersolutions.com> >Date: Fri, 31 Jan 2020 14:18:24 +0000 >Subject: [PATCH] Bug 24094: Strip trailing spaces and punctuation from > authority headings > >Both when searching for and creating new authorities we need to remove >punctuation that exists in the bibliographic record but does not belong in >the authority record. > >For example, a series with a volume contains a semicolon in the bib record, >however, this should not be passed to the authority as the volume is not >included in the authority record. > >To test: > 1 - Set AutoCreateAuthorities to 'generate' > 2 - Set BiblioAddsAuthorities to 'true' > 3 - Set CatalogModuleRelink to 'Do' > 4 - Find or create a record with: > a 100 field with a subfield e preceded by a comma: 100 $aBoring, M. Eugene M ,$e author > an 830 field with a volume preceded by a semicolon: 650$aLord of the rings ;$v 3. > 5 - Save the records and check the links > 6 - Note punctuation is passed through > 7 - Save again, auth records are created again > 8 - Apply patch > 9 - Save again, new auth records are created again >10 - Check the records, punctuation has been removed >11 - Save again, no more records created. >--- > C4/Biblio.pm | 24 +++++++++++++++--------- > C4/Heading/MARC21.pm | 2 +- > 2 files changed, 16 insertions(+), 10 deletions(-) > >diff --git a/C4/Biblio.pm b/C4/Biblio.pm >index 93bed277e8..a84e24e672 100644 >--- a/C4/Biblio.pm >+++ b/C4/Biblio.pm >@@ -542,16 +542,22 @@ sub LinkBibHeadingsToAuthorities { > } > $field->delete_subfield( code => '9' ) > if defined $current_link; >- my $authfield = >- MARC::Field->new( $authority_type->auth_tag_to_report, >- '', '', "a" => "" . $field->subfield('a') ); >- map { >- $authfield->add_subfields( $_->[0] => $_->[1] ) >- if ( $_->[0] =~ /[A-z]/ && $_->[0] ne "a" >+ my @auth_subfields; >+ foreach my $subfield ( $field->subfields() ){ >+ if ( $subfield->[0] =~ /[A-z]/ > && C4::Heading::valid_bib_heading_subfield( >- $field->tag, $_->[0] ) >- ); >- } $field->subfields(); >+ $field->tag, $subfield->[0] ) >+ ){ >+ push @auth_subfields, $subfield->[0] => $subfield->[1]; >+ } >+ } >+ # Bib headings contain some ending punctuation that should NOT >+ # be included in the authority record. Strip those before creation >+ next unless @auth_subfields; # Don't try to create a record if we have no fields; >+ my $last_sub = pop @auth_subfields; >+ $last_sub =~ s/[\s]*[,.:=;!%\/][\s]*$//; >+ push @auth_subfields, $last_sub; >+ my $authfield = MARC::Field->new( $authority_type->auth_tag_to_report, '', '', @auth_subfields ); > $marcrecordauth->insert_fields_ordered($authfield); > > # bug 2317: ensure new authority knows it's using UTF-8; currently >diff --git a/C4/Heading/MARC21.pm b/C4/Heading/MARC21.pm >index fc4d576a45..0fc3374470 100644 >--- a/C4/Heading/MARC21.pm >+++ b/C4/Heading/MARC21.pm >@@ -256,7 +256,7 @@ sub _get_search_heading { > my $code = $subfields[$i]->[0]; > my $code_re = quotemeta $code; > my $value = $subfields[$i]->[1]; >- $value =~ s/[-,.:=;!%\/]$//; >+ $value =~ s/[\s]*[-,.:=;!%\/][\s]*$//; > next unless $subfields =~ qr/$code_re/; > if ($first) { > $first = 0; >-- >2.11.0
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 24094
:
98238
|
98239
|
98735
|
98736
|
99223
|
99224