[Bug 22439] New: Duplicated code in PrepHostMarcField and prepare_host_field
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Bug ID: 22439 Summary: Duplicated code in PrepHostMarcField and prepare_host_field Change sponsored?: --- Product: Koha Version: master Hardware: All OS: All Status: NEW Severity: enhancement Priority: P5 - low Component: Cataloging Assignee: koha-bugs@lists.koha-community.org Reporter: pasi.kallinen@koha-suomi.fi QA Contact: testopia@bugs.koha-community.org CC: m.de.rooy@rijksmuseum.nl Target Milestone: --- The C4/Biblio.pm subroutines PrepHostMarcField and prepare_host_field both do the same thing, so should be merged. -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #1 from paxed <pasi.kallinen@koha-suomi.fi> --- In addition: 1) prepare_host_field: if ( $field = $host->field('100') || $host->field('110') || $host->field('11') ) - the '11' should be '111' 2) prepare_host_field has a 240 -> 773b, which should be 250a -> 773b, as it is in PrepHostMarcField 3) There's a difference in how the 773a is set: prepare_host_field uses 100ab | 110ab | 11ab, but PrepHostMarcField uses 100a | 110a | 111a -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Martin Renvoize <martin.renvoize@ptfs-europe.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |martin.renvoize@ptfs-europe | |.com --- Comment #2 from Martin Renvoize <martin.renvoize@ptfs-europe.com> --- *** Bug 30793 has been marked as a duplicate of this bug. *** -- You are receiving this mail because: You are watching all bug changes. You are the assignee for the bug.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Martin Renvoize <martin.renvoize@ptfs-europe.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |37305 Referenced Bugs: https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=37305 [Bug 37305] Remove C4::Biblio::prepare_marc_host and use Koha::Biblio->generate_marc_host_field in preference -- You are receiving this mail because: You are watching all bug changes. You are the assignee for the bug.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Martin Renvoize <martin.renvoize@ptfs-europe.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|koha-bugs@lists.koha-commun |martin.renvoize@ptfs-europe |ity.org |.com -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #3 from Martin Renvoize <martin.renvoize@ptfs-europe.com> --- I remove C4::Biblio::prepare_host_field in bug 37305, opting to use the tested method I add to Koha::Biblio as `generate_marc_host_field` in bug 29560. 1) The 111 vs 11 mistake in prepare_marc_host is fixed in generate_marc_host_field already. 2) We set 773b t 250ab and 773s to 240a in generate_marc_host_field 3) We stick to 1XXab for 773a in generate_marc_host_field The outstanding differences between PrepHostMarcField, for EasyAnalytics, and generate_marc_host_field are: 1) Subfield 0 is set to the host biblionumber 2) Subfield 9 is set to the host itemnumber 3) Subfield o is set to the host item barcode -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Martin Renvoize <martin.renvoize@ptfs-europe.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |heather_hernandez@nps.gov, | |katrin.fischer@bsz-bw.de -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Martin Renvoize <martin.renvoize@ptfs-europe.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |emmi.takkinen@koha-suomi.fi -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on|37305 |39545 Referenced Bugs: https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=37305 [Bug 37305] Remove C4::Biblio::prepare_marc_host and use Koha::Biblio->generate_marc_host_field in preference https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39545 [Bug 39545] Construct more complete 773 content when creating a child record -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #4 from Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> --- Created attachment 183766 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=183766&action=edit Bug 22439: Remove C4::Biblio::PrepHostMarcField and consolidate with Koha::Biblio::generate_marc_host_field This patch removes the PrepHostMarcField function from C4::Biblio and enhances the modern generate_marc_host_field method in Koha::Biblio to handle item-specific data when needed. The refactoring eliminates code duplication while maintaining all existing functionality. Item-specific subfields (barcode, itemnumber, biblionumber) are now only included when EasyAnalyticalRecords is enabled, ensuring the implementation continues to be compliant with MARC standards. Changes: - Remove PrepHostMarcField function from C4::Biblio - Enhance generate_marc_host_field to accept optional item parameter - Update cataloguing/addbiblio.pl to use the modern method - Update cataloguing/linkitem.pl to use the modern method - Add EasyAnalyticalRecords preference checking to ensure we only add the additional non-standard fields when the preference is enabled. Test plan: 1. Apply patch 2. Enable EasyAnalyticalRecords system preference 3. Create a parent bibliographic record with items 4. Create a child analytical record: - Go to Cataloging > New Record - Use "Add child record" option for the parent record - Choose a specific item from the parent record - Verify the 773 field contains subfields $0 (biblionumber), $9 (itemnumber), $o (barcode) 5. Test the linkitem.pl functionality: - Create an analytical record without using "Add child record" - Go to cataloguing/linkitem.pl with appropriate parameters - Link an item using its barcode - Verify the 773 field is properly populated 6. Disable EasyAnalyticalRecords system preference 7. Repeat steps 4-5 and verify that subfields $0, $9, and $o are NOT added to the 773 field 8. Verify that other 773 subfields (title, author, etc.) are still properly populated 9. Test with both MARC21 and UNIMARC if available 10. Run tests: prove t/db_dependent/Koha/Biblio.t -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #5 from Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> --- Created attachment 183767 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=183767&action=edit Bug 22439: Add comprehensive tests for generate_marc_host_field item parameter This patch adds test coverage for the new item parameter functionality in generate_marc_host_field, ensuring proper behavior with the EasyAnalyticalRecords system preference. Test coverage includes: - MARC21 item functionality with EasyAnalyticalRecords enabled/disabled - UNIMARC item functionality with proper biblionumber precedence - Item-specific subfields: $0 (biblionumber), $9 (itemnumber), $o (barcode) - Verification that item subfields are only added when EasyAnalyticalRecords is enabled - Backward compatibility when no item parameter is provided The tests verify that biblionumber takes precedence over control number in UNIMARC when using item-specific data, matching the original PrepHostMarcField behavior and ensuring compliance with the easy analytics workflow. To test: prove t/db_dependent/Koha/Biblio.t -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |Needs Signoff -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jonathan.druart@gmail.com -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |katrin.fischer@bsz-bw.de -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |34482 Referenced Bugs: https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=34482 [Bug 34482] Improve MARC21 7xx linking fields in bibliographic records [Omnibus] -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |baptiste.wojtkowski@biblibr | |e.com --- Comment #6 from Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> --- *** Bug 37996 has been marked as a duplicate of this bug. *** -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |37710 Referenced Bugs: https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=37710 [Bug 37710] Remove the marc link when removing an item from a bundle -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #183766|0 |1 is obsolete| | --- Comment #7 from Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> --- Created attachment 184035 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=184035&action=edit Bug 22439: Remove C4::Biblio::PrepHostMarcField and consolidate with Koha::Biblio::generate_marc_host_field This patch removes the PrepHostMarcField function from C4::Biblio and enhances the modern generate_marc_host_field method in Koha::Biblio to handle item-specific data when needed. The refactoring eliminates code duplication while maintaining all existing functionality. Item-specific subfields (barcode, itemnumber, biblionumber) are now only included when EasyAnalyticalRecords is enabled, ensuring the implementation continues to be compliant with MARC standards. Changes: - Remove PrepHostMarcField function from C4::Biblio - Enhance generate_marc_host_field to accept optional item parameter - Update cataloguing/addbiblio.pl to use the modern method - Update cataloguing/linkitem.pl to use the modern method - Add EasyAnalyticalRecords preference checking to ensure we only add the additional non-standard fields when the preference is enabled. Test plan: 1. Apply patch 2. Enable EasyAnalyticalRecords system preference 3. Create a parent bibliographic record with items 4. Create a child analytical record: - Go to Cataloging > New Record - Use "Add child record" option for the parent record - Choose a specific item from the parent record - Verify the 773 field contains subfields $0 (biblionumber), $9 (itemnumber), $o (barcode) 5. Test the linkitem.pl functionality: - Create an analytical record without using "Add child record" - Go to cataloguing/linkitem.pl with appropriate parameters - Link an item using its barcode - Verify the 773 field is properly populated 6. Disable EasyAnalyticalRecords system preference 7. Repeat steps 4-5 and verify that subfields $0, $9, and $o are NOT added to the 773 field 8. Verify that other 773 subfields (title, author, etc.) are still properly populated 9. Test with both MARC21 and UNIMARC if available 10. Run tests: prove t/db_dependent/Koha/Biblio.t Sponsored-by: Martin Renvoize <martin.renvoize@openfifth.co.uk> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #183767|0 |1 is obsolete| | --- Comment #8 from Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> --- Created attachment 184036 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=184036&action=edit Bug 22439: Add comprehensive tests for generate_marc_host_field item parameter This patch adds test coverage for the new item parameter functionality in generate_marc_host_field, ensuring proper behavior with the EasyAnalyticalRecords system preference. Test coverage includes: - MARC21 item functionality with EasyAnalyticalRecords enabled/disabled - UNIMARC item functionality with proper biblionumber precedence - Item-specific subfields: $0 (biblionumber), $9 (itemnumber), $o (barcode) - Verification that item subfields are only added when EasyAnalyticalRecords is enabled - Backward compatibility when no item parameter is provided The tests verify that biblionumber takes precedence over control number in UNIMARC when using item-specific data, matching the original PrepHostMarcField behavior and ensuring compliance with the easy analytics workflow. To test: prove t/db_dependent/Koha/Biblio.t -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #9 from Chris Cormack <chris@bigballofwax.co.nz> --- Automated patch testing results: [PASS] ALL PATCHES APPLY CLEANLY All patches apply successfully to the current codebase. **Patch Results:** [PASS] Bug-22439-Add-comprehensive-tests-for-generatemarc.patch (ID: 184036) Status: SUCCESS Dependencies failed: 39545 (failed to apply) + Patch applies cleanly [PASS] Bug-22439-Remove-C4BiblioPrepHostMarcField-and-con.patch (ID: 184035) Status: SUCCESS Dependencies failed: 39545 (failed to apply) + Patch applies cleanly **Dependencies:** 39545 --- This is an automated message from the patch testing system. Tested against branch: main -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #10 from Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> --- Noted -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Arthur Suzuki <arthur.suzuki@biblibre.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |arthur.suzuki@biblibre.com --- Comment #11 from Arthur Suzuki <arthur.suzuki@biblibre.com> --- Hi Martin, On KTD, In the test plan step 4: it says to use "Add child record" but I couldn't find this button, only "link to host record" could be found (either I'm dumb, or it was removed?). Step 5 worked as a charm. after step 6 and EasyAnalyticalRecords have been disabled, I don't have access to the button "Link to host record" so I cannot repeat step 5. Maybe it's just the test plan which needs to be updated? If that is so then I'm happy to signoff! Unit tests are fine/not complaining! Best, Arthur -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #12 from Arthur Suzuki <arthur.suzuki@biblibre.com> --- (In reply to Arthur Suzuki from comment #11)
Hi Martin, On KTD, In the test plan step 4: it says to use "Add child record" but I couldn't find this button, only "link to host record" could be found (either I'm dumb, or it was removed?).
Step 5 worked as a charm.
after step 6 and EasyAnalyticalRecords have been disabled, I don't have access to the button "Link to host record" so I cannot repeat step 5.
Maybe it's just the test plan which needs to be updated? If that is so then I'm happy to signoff! Unit tests are fine/not complaining! Best, Arthur
After doing this from BZ37710 : 2 - Create a bundle on an item by changing the 7th character of the leader to c (go to the marc, click on the button at the right of the field 000 and change the bibliographical level to collection). I was able to access the "Add child record" button from the parent record. I think that is worth documenting! -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #13 from Arthur Suzuki <arthur.suzuki@biblibre.com> --- Also, Just found out that using the "manage bundle" button from the holdings table to add items to the bundle doesn't properly creates the subfields. This is because it uses the API and the marc field logic is not properly implemented there. See Koha/REST/V1/Items.pm L324 -> generate_marc_host_field should be called before calling link_marc_host. -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #14 from Arthur Suzuki <arthur.suzuki@biblibre.com> --- Created attachment 190955 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=190955&action=edit Bug 22439: (QA follow-up) add generate_marc_host_field to api/v1/items -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Arthur Suzuki <arthur.suzuki@biblibre.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #190955|0 |1 is obsolete| | --- Comment #15 from Arthur Suzuki <arthur.suzuki@biblibre.com> --- Created attachment 190956 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=190956&action=edit Bug 22439: (QA follow-up) add generate_marc_host_field to api/v1/items -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Chris Mathevet <chris.mathevet@inLibro.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |chris.mathevet@inLibro.com Status|Needs Signoff |Patch doesn't apply -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Nick Clemens (kidclamp) <nick@bywatersolutions.com> changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://bugs.koha-community | |.org/bugzilla3/show_bug.cgi | |?id=43031 -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #16 from Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> --- (In reply to Arthur Suzuki from comment #12)
(In reply to Arthur Suzuki from comment #11)
Hi Martin, On KTD, In the test plan step 4: it says to use "Add child record" but I couldn't find this button, only "link to host record" could be found (either I'm dumb, or it was removed?).
Step 5 worked as a charm.
after step 6 and EasyAnalyticalRecords have been disabled, I don't have access to the button "Link to host record" so I cannot repeat step 5.
Maybe it's just the test plan which needs to be updated? If that is so then I'm happy to signoff! Unit tests are fine/not complaining! Best, Arthur
After doing this from BZ37710 : 2 - Create a bundle on an item by changing the 7th character of the leader to c (go to the marc, click on the button at the right of the field 000 and change the bibliographical level to collection). I was able to access the "Add child record" button from the parent record. I think that is worth documenting!
This is actually already documented somewhere I'm sure -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #17 from Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> --- (In reply to Arthur Suzuki from comment #13)
Also, Just found out that using the "manage bundle" button from the holdings table to add items to the bundle doesn't properly creates the subfields. This is because it uses the API and the marc field logic is not properly implemented there.
See Koha/REST/V1/Items.pm L324 -> generate_marc_host_field should be called before calling link_marc_host.
Really.. that's by design.. though it should be gated on EasyAnalytics. The idea in the past has been that UseControlNumber and EasyAnalytics were mutually exclusive.. but in practice people set them how they like and we end up with various mis-information and then devs change things to match. Anywho.. UseControlNumber sticks to MARC21 standards.. EasyAnalytics adds non standard fields. -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |nick@bywatersolutions.com --- Comment #18 from Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> --- *** Bug 43031 has been marked as a duplicate of this bug. *** -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> changed: What |Removed |Added ---------------------------------------------------------------------------- Sponsorship status|--- |Sponsored Comma delimited| |Martin Renvoize list of Sponsors| |<martin.renvoize@openfifth. | |co.uk> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #184035|0 |1 is obsolete| | Attachment #184036|0 |1 is obsolete| | Attachment #190956|0 |1 is obsolete| | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #19 from Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> --- Created attachment 201741 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=201741&action=edit Bug 22439: Remove C4::Biblio::PrepHostMarcField and consolidate with Koha::Biblio::generate_marc_host_field This patch removes the PrepHostMarcField function from C4::Biblio and enhances the modern generate_marc_host_field method in Koha::Biblio to handle item-specific data when needed. The refactoring eliminates code duplication while maintaining all existing functionality. Item-specific subfields (barcode, itemnumber, biblionumber) are now only included when EasyAnalyticalRecords is enabled, ensuring the implementation continues to be compliant with MARC standards. Changes: - Remove PrepHostMarcField function from C4::Biblio - Enhance generate_marc_host_field to accept optional item parameter - Update cataloguing/addbiblio.pl to use the modern method - Update cataloguing/linkitem.pl to use the modern method - Add EasyAnalyticalRecords preference checking to ensure we only add the additional non-standard fields when the preference is enabled. Test plan: 1. Apply patch 2. Enable EasyAnalyticalRecords system preference 3. Create a parent bibliographic record with items 4. Create a child analytical record: - Go to Cataloging > New Record - Use "Add child record" option for the parent record - Choose a specific item from the parent record - Verify the 773 field contains subfields $0 (biblionumber), $9 (itemnumber), $o (barcode) 5. Test the linkitem.pl functionality: - Create an analytical record without using "Add child record" - Go to cataloguing/linkitem.pl with appropriate parameters - Link an item using its barcode - Verify the 773 field is properly populated 6. Disable EasyAnalyticalRecords system preference 7. Repeat steps 4-5 and verify that subfields $0, $9, and $o are NOT added to the 773 field 8. Verify that other 773 subfields (title, author, etc.) are still properly populated 9. Test with both MARC21 and UNIMARC if available 10. Run tests: prove t/db_dependent/Koha/Biblio.t Sponsored-by: Martin Renvoize <martin.renvoize@openfifth.co.uk> Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #20 from Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> --- Created attachment 201742 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=201742&action=edit Bug 22439: Add comprehensive tests for generate_marc_host_field item parameter This patch adds test coverage for the new item parameter functionality in generate_marc_host_field, ensuring proper behavior with the EasyAnalyticalRecords system preference. Test coverage includes: - MARC21 item functionality with EasyAnalyticalRecords enabled/disabled - UNIMARC item functionality with proper biblionumber precedence - Item-specific subfields: $0 (biblionumber), $9 (itemnumber), $o (barcode) - Verification that item subfields are only added when EasyAnalyticalRecords is enabled - Backward compatibility when no item parameter is provided The tests verify that biblionumber takes precedence over control number in UNIMARC when using item-specific data, matching the original PrepHostMarcField behavior and ensuring compliance with the easy analytics workflow. To test: prove t/db_dependent/Koha/Biblio.t Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #21 from Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> --- Created attachment 201743 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=201743&action=edit Bug 22439: (QA follow-up) Add generate_marc_host_field to api/v1/items Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #22 from Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> --- Created attachment 201744 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=201744&action=edit Bug 22439: (QA follow-up) Guard linkitem.pl and fix get_marc_host fallback cataloguing/linkitem.pl was missing the "if $field" guard that was added to cataloguing/addbiblio.pl in the original patch. generate_marc_host_field can return undef when marcflavour is neither MARC21 nor UNIMARC, and MARC::Record::append_fields(undef) dies, so the two callers should behave consistently. Separately, generate_marc_host_field can now populate both the standard 773/461 $w control-number subfield (gated by UseControlNumber) and the Koha-internal $0/$9/$o subfields (gated by EasyAnalyticalRecords) on the same field. Koha::Biblio::get_marc_host, which resolves a child record's host from that field, only fell back to $0/$9 when $w was completely absent. If $w was present but its search-engine based control-number lookup failed to resolve to exactly one record (for example, the host hasn't been reindexed yet), resolution would give up entirely even though $0/$9 were available for a direct, reliable lookup. get_marc_host now also falls back to $0/$9 when the $w-based search doesn't resolve. The duplicated $0/$9 resolution logic is extracted into a new private method, _get_marc_host_bibnumber_from_easy_analytics, used in both fallback sites, which also fixes a latent bug where it would die if the item referenced by $9 had since been deleted. Also adds test coverage for the previous QA follow-up patch to Koha/REST/V1/Items.pm (add_to_bundle), which had none. Test plan: 1. prove t/db_dependent/Koha/Biblio.t 2. prove t/db_dependent/Koha/Biblio/host_record.t 3. prove t/db_dependent/api/v1/items/bundled_items.t Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #23 from Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> --- Created attachment 201745 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=201745&action=edit Bug 22439: (QA follow-up) Unify child record and analytics linking in addbiblio.pl cataloguing/addbiblio.pl had two near-identical blocks for building a new child MARC record and linking it to a host: one for "Create analytics" (hostbiblionumber/hostitemnumber, shown when EasyAnalyticalRecords is enabled) and one for "New child record" (parentbiblionumber, shown when it's disabled). Both ultimately called generate_marc_host_field, so this was duplication left over after the earlier consolidation. This merges them into a single block, treating hostbiblionumber as a request-param alias for parentbiblionumber rather than renaming the URL so existing links/bookmarks keep working. The "Create analytics" path now also gets the proper MARC21 leader template and SetMarcUnicodeFlag call that the "New child record" path already had, and gains a guard against an invalid parentbiblionumber that the old hostbiblionumber block lacked. Test plan: 1. Enable EasyAnalyticalRecords, use "Create analytics" from a record's Items tab, confirm the 773/461 is populated as before. 2. Disable EasyAnalyticalRecords, use "New child record", confirm the 773/461 is still populated as before. -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|Patch doesn't apply |Signed Off -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> changed: What |Removed |Added ---------------------------------------------------------------------------- QA Contact|testopia@bugs.koha-communit |nick@bywatersolutions.com |y.org | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #26 from Nick Clemens (kidclamp) <nick@bywatersolutions.com> --- Created attachment 201829 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=201829&action=edit Bug 22439: (QA follow-up) Add generate_marc_host_field to api/v1/items Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #25 from Nick Clemens (kidclamp) <nick@bywatersolutions.com> --- Created attachment 201828 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=201828&action=edit Bug 22439: Add comprehensive tests for generate_marc_host_field item parameter This patch adds test coverage for the new item parameter functionality in generate_marc_host_field, ensuring proper behavior with the EasyAnalyticalRecords system preference. Test coverage includes: - MARC21 item functionality with EasyAnalyticalRecords enabled/disabled - UNIMARC item functionality with proper biblionumber precedence - Item-specific subfields: $0 (biblionumber), $9 (itemnumber), $o (barcode) - Verification that item subfields are only added when EasyAnalyticalRecords is enabled - Backward compatibility when no item parameter is provided The tests verify that biblionumber takes precedence over control number in UNIMARC when using item-specific data, matching the original PrepHostMarcField behavior and ensuring compliance with the easy analytics workflow. To test: prove t/db_dependent/Koha/Biblio.t Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Nick Clemens (kidclamp) <nick@bywatersolutions.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #201741|0 |1 is obsolete| | Attachment #201742|0 |1 is obsolete| | Attachment #201743|0 |1 is obsolete| | Attachment #201744|0 |1 is obsolete| | Attachment #201745|0 |1 is obsolete| | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #28 from Nick Clemens (kidclamp) <nick@bywatersolutions.com> --- Created attachment 201831 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=201831&action=edit Bug 22439: (QA follow-up) Unify child record and analytics linking in addbiblio.pl cataloguing/addbiblio.pl had two near-identical blocks for building a new child MARC record and linking it to a host: one for "Create analytics" (hostbiblionumber/hostitemnumber, shown when EasyAnalyticalRecords is enabled) and one for "New child record" (parentbiblionumber, shown when it's disabled). Both ultimately called generate_marc_host_field, so this was duplication left over after the earlier consolidation. This merges them into a single block, treating hostbiblionumber as a request-param alias for parentbiblionumber rather than renaming the URL so existing links/bookmarks keep working. The "Create analytics" path now also gets the proper MARC21 leader template and SetMarcUnicodeFlag call that the "New child record" path already had, and gains a guard against an invalid parentbiblionumber that the old hostbiblionumber block lacked. Test plan: 1. Enable EasyAnalyticalRecords, use "Create analytics" from a record's Items tab, confirm the 773/461 is populated as before. 2. Disable EasyAnalyticalRecords, use "New child record", confirm the 773/461 is still populated as before. Signed-off-by: Nick Clemens <nick@bywatersolutions.com> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #24 from Nick Clemens (kidclamp) <nick@bywatersolutions.com> --- Created attachment 201827 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=201827&action=edit Bug 22439: Remove C4::Biblio::PrepHostMarcField and consolidate with Koha::Biblio::generate_marc_host_field This patch removes the PrepHostMarcField function from C4::Biblio and enhances the modern generate_marc_host_field method in Koha::Biblio to handle item-specific data when needed. The refactoring eliminates code duplication while maintaining all existing functionality. Item-specific subfields (barcode, itemnumber, biblionumber) are now only included when EasyAnalyticalRecords is enabled, ensuring the implementation continues to be compliant with MARC standards. Changes: - Remove PrepHostMarcField function from C4::Biblio - Enhance generate_marc_host_field to accept optional item parameter - Update cataloguing/addbiblio.pl to use the modern method - Update cataloguing/linkitem.pl to use the modern method - Add EasyAnalyticalRecords preference checking to ensure we only add the additional non-standard fields when the preference is enabled. Test plan: 1. Apply patch 2. Enable EasyAnalyticalRecords system preference 3. Create a parent bibliographic record with items 4. Create a child analytical record: - Go to Cataloging > New Record - Use "Add child record" option for the parent record - Choose a specific item from the parent record - Verify the 773 field contains subfields $0 (biblionumber), $9 (itemnumber), $o (barcode) 5. Test the linkitem.pl functionality: - Create an analytical record without using "Add child record" - Go to cataloguing/linkitem.pl with appropriate parameters - Link an item using its barcode - Verify the 773 field is properly populated 6. Disable EasyAnalyticalRecords system preference 7. Repeat steps 4-5 and verify that subfields $0, $9, and $o are NOT added to the 773 field 8. Verify that other 773 subfields (title, author, etc.) are still properly populated 9. Test with both MARC21 and UNIMARC if available 10. Run tests: prove t/db_dependent/Koha/Biblio.t Sponsored-by: Martin Renvoize <martin.renvoize@openfifth.co.uk> Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 Nick Clemens (kidclamp) <nick@bywatersolutions.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|Signed Off |Passed QA -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #27 from Nick Clemens (kidclamp) <nick@bywatersolutions.com> --- Created attachment 201830 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=201830&action=edit Bug 22439: (QA follow-up) Guard linkitem.pl and fix get_marc_host fallback cataloguing/linkitem.pl was missing the "if $field" guard that was added to cataloguing/addbiblio.pl in the original patch. generate_marc_host_field can return undef when marcflavour is neither MARC21 nor UNIMARC, and MARC::Record::append_fields(undef) dies, so the two callers should behave consistently. Separately, generate_marc_host_field can now populate both the standard 773/461 $w control-number subfield (gated by UseControlNumber) and the Koha-internal $0/$9/$o subfields (gated by EasyAnalyticalRecords) on the same field. Koha::Biblio::get_marc_host, which resolves a child record's host from that field, only fell back to $0/$9 when $w was completely absent. If $w was present but its search-engine based control-number lookup failed to resolve to exactly one record (for example, the host hasn't been reindexed yet), resolution would give up entirely even though $0/$9 were available for a direct, reliable lookup. get_marc_host now also falls back to $0/$9 when the $w-based search doesn't resolve. The duplicated $0/$9 resolution logic is extracted into a new private method, _get_marc_host_bibnumber_from_easy_analytics, used in both fallback sites, which also fixes a latent bug where it would die if the item referenced by $9 had since been deleted. Also adds test coverage for the previous QA follow-up patch to Koha/REST/V1/Items.pm (add_to_bundle), which had none. Test plan: 1. prove t/db_dependent/Koha/Biblio.t 2. prove t/db_dependent/Koha/Biblio/host_record.t 3. prove t/db_dependent/api/v1/items/bundled_items.t Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22439 --- Comment #29 from Jonathan Druart <jonathan.druart@gmail.com> --- This is missing a signoff it seems. -- You are receiving this mail because: You are watching all bug changes.
participants (1)
-
bugzilla-daemon@bugs.koha-community.org