Bugzilla – Attachment 192318 Details for
Bug 41685
MARC21: Sort 4xx/5xx in BuildSummary alphabetic within hierarchy ($w: g or h)
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 41685: Sort seefrom/seealso in BuildSummary
Bug-41685-Sort-seefromseealso-in-BuildSummary.patch (text/plain), 2.74 KB, created by
Marcel de Rooy
on 2026-02-02 13:51:06 UTC
(
hide
)
Description:
Bug 41685: Sort seefrom/seealso in BuildSummary
Filename:
MIME Type:
Creator:
Marcel de Rooy
Created:
2026-02-02 13:51:06 UTC
Size:
2.74 KB
patch
obsolete
>From d330c3d39974421bb2dfc9c728bbb8b5adef848d Mon Sep 17 00:00:00 2001 >From: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> >Date: Thu, 22 Jan 2026 14:06:12 +0100 >Subject: [PATCH] Bug 41685: Sort seefrom/seealso in BuildSummary >Content-Type: text/plain; charset=utf-8 > >Test plan (MARC21): >[1] Create an authority record, say a term. Include two 450s, the first > one starting with Z and second with A. Include five 550s, where two > are narrower ($w==h), two broader ($w==g) and one without $w. Make > sure that the terms will sort differently than the field order (go > back in alphabet when filling subsequent $a's or so). >[2] Perform an authority search that includes the new authority. >[3] Verify that the terms in the Summary column for this authority > are sorted first on hierarchy, second alphabetically. The one > without hierarchy should be in the middle. > >Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> >--- > C4/AuthoritiesMarc.pm | 18 ++++++++++++++++-- > 1 file changed, 16 insertions(+), 2 deletions(-) > >diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm >index c2070f4560..ebb33b978f 100644 >--- a/C4/AuthoritiesMarc.pm >+++ b/C4/AuthoritiesMarc.pm >@@ -1076,7 +1076,8 @@ sub BuildSummary { > }; > } > } >- foreach my $field ( $record->field('4..') ) { #See From >+ my @fields = _marc21_sort_hierarchy_alpha( $record->field('4..') ); >+ foreach my $field (@fields) { #See From > my $type = 'seefrom'; > $type = ( $marc21controlrefs{ substr $field->subfield('w'), 0, 1 } || '' ) if ( $field->subfield('w') ); > if ( $type eq 'notapplicable' ) { >@@ -1099,7 +1100,8 @@ sub BuildSummary { > }; > } > } >- foreach my $field ( $record->field('5..') ) { #See Also >+ @fields = _marc21_sort_hierarchy_alpha( $record->field('5..') ); >+ foreach my $field (@fields) { #See Also > my $type = 'seealso'; > $type = ( $marc21controlrefs{ substr $field->subfield('w'), 0, 1 } || '' ) if ( $field->subfield('w') ); > if ( $type eq 'notapplicable' ) { >@@ -1231,6 +1233,18 @@ sub BuildSummary { > return \%summary; > } > >+sub _marc21_sort_hierarchy_alpha { >+ my @fields = @_; >+ return sort { >+ # Sort broader (g) - no hierarchy (tric:gh) - narrower (h) >+ my $a_hier = $a->subfield('w') // q{}; $a_hier = 'gh' if $a_hier !~ /^[gh]$/; >+ my $b_hier = $b->subfield('w') // q{}; $b_hier = 'gh' if $b_hier !~ /^[gh]$/; >+ >+ # When hierarchy does not resolve, sort on $a >+ $a_hier cmp $b_hier || $a->subfield('a') cmp $b->subfield('a'); >+ } @fields; >+} >+ > =head2 GetAuthorizedHeading > > $heading = &GetAuthorizedHeading({ record => $record, authid => $authid }) >-- >2.39.5
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 41685
:
192118
| 192318 |
192319