Summary: | Authorities display fails on unknown 7XX | ||
---|---|---|---|
Product: | Koha | Reporter: | Fridolin Somers <fridolin.somers> |
Component: | MARC Authority data support | Assignee: | Fridolin Somers <fridolin.somers> |
Status: | Needs Signoff --- | QA Contact: | Testopia <testopia> |
Severity: | normal | ||
Priority: | P5 - low | ||
Version: | Main | ||
Hardware: | All | ||
OS: | All | ||
GIT URL: | Change sponsored?: | --- | |
Patch complexity: | Trivial patch | Documentation contact: | |
Documentation submission: | Text to go in the release notes: | ||
Version(s) released in: | Circulation function: | ||
Bug Depends on: | 27943 | ||
Bug Blocks: | 34482 | ||
Attachments: |
Bug 40883: Add unit test
Bug 40883: Fix authorities display fails on unknown 7XX |
Description
Fridolin Somers
2025-09-26 07:40:11 UTC
This creates an ugly warning in logs : Unmatched [ in regex; marked by <-- HERE in m/^[ <-- HERE ]$/ at /usr/share/perl5/MARC/Field.pm line 643. Because of a call field->as_string with an empty string. Looks like MARC::Field only checks var is undef before using in regexp. Created attachment 186964 [details] [review] Bug 40883: Add unit test Created attachment 186965 [details] [review] Bug 40883: Fix authorities display fails on unknown 7XX Bug 27943 added MARC21 authorities 7XX on display. It calls $field->as_string($subfields_to_report). This fails when authority type is custom (not in C4/Heading/MARC21.pm $auth_heading_fields) and so field is not in known ones. We see in other parts that $subfields_to_report may be emty. This patch simply creates 7xx heading with $field->as_string() in this case. Test plan: 1) Run test : prove t/db_dependent/AuthoritiesMarc.t 2) Create a new autority type with main heading in 199 and field 799 3) Create a new authority of this type 4) Perform a search to find it => Without patch the page retruns the error Unmatched [ in regex; marked by <-- HERE in m/^[ <-- HERE ]$/ at /usr/share/perl5/MARC/Field.pm line 643. NB : We see in C4/AuthoritiesMarc.pm BuildSummary() that var $subfields_to_report can be set by part building 7xx and then is reused in part building 880. This looks very strange. |