commit 5e37078d8c870e83a1769f2a31e227281827542c Author: Arthur Suzuki Date: Tue Aug 25 06:39:07 2026 +0000 Bug 41608: (QA followup) change MultiChoiceFacet syspref description (not limited to ES) commit 5a2d91f4e3ca5322412f154e6e553b6118e94277 Author: Arthur Suzuki Date: Tue Aug 25 06:30:36 2026 +0000 Bug 41608: (QA followup) fix the JS to properly escape doublequote in authorized value commit 0fccc758c972271cf707dbabe9b350d61bd583c2 Author: Arthur Suzuki Date: Tue Aug 25 06:29:08 2026 +0000 Bug 41608: (QA followup) add the facets submit button at the top of the form commit 018521ab0246a50698376e432a70699f8a25a9ac Author: Arthur Suzuki Date: Tue Aug 25 06:28:21 2026 +0000 Bug 41608: (QA followup) properly store multichoices limits in the cgi query commit 10b7ff861bb8cba87ae709405a23e4a5091cc76e Author: Arthur Suzuki Date: Tue Aug 18 12:38:42 2026 +0000 Bug 41608: (QA followup) make the multifacet feature available for Zebra as well commit d1770fff354adcb5f69bc7652c1be0e9aebd7960 Author: Arthur Suzuki Date: Wed Jul 29 12:51:17 2026 +0000 Bug 41608: (QA followup) do not check removed facets upon page load commit d2cfbb833fb615545b39f188023665b32202b452 Author: Arthur Suzuki Date: Wed Jul 29 11:41:16 2026 +0000 Bug 41608: if MultiChoiceFacets is disabled, do not show 'Apply' button commit c265557188c406d35ee2ace0de074f3d1affffb7 Author: Arthur Suzuki Date: Wed Jul 29 06:35:56 2026 +0000 Bug 41608: (QA followup) Add the syspref "MultiChoiceFacets" to enable facets checkboxes in the search results Sponsored-by: Kohala Association commit ddeeb5a3e4ce2f4ceef19505bf3d017dc4513e61 Author: Arthur Suzuki Date: Tue Jul 28 14:29:16 2026 +0000 Bug 41608: (QA followup) checkboxes are only show if SearchEngine is Elasticsearch Sponsored-by: Kohala Association commit 37e1d8bfc0306cc71fb1ddc8ef1a3c5efbd2bf76 Author: Arthur Suzuki Date: Tue Jul 28 13:35:01 2026 +0000 Bug 41608: (QA followup) Change labels for facets form title and button commit 4eea92195445f69543cf06e7d5b99f05f0a1cd12 Author: Arthur Suzuki Date: Tue Jul 28 13:15:08 2026 +0000 Bug 41608: (QA followup) change the JS to build a request with limit params instead of ccl query commit f447626611a6139e8c7eae9f28a1620bb5e9c095 Author: Arthur Suzuki Date: Thu Mar 12 08:19:49 2026 +0100 Bug 41608: add support for multiple facets Test plan: - start KTD - on staff interface, search for "complete" - you should get around 10 results - there are checkboxes in front of the facets, check "Austen, Jane" and "Beckett, Samuel" - click on "Refine Search" at the bottom of the facets menu - You should get a refined search with "complete" from both Jane Austen and Samuel Beckett. - If you check "Centerville" the CCL query should also show "holdingbranch:CPL". - If you uncheck "Centerville" the CCL should go back to "kw:complete and (au:Austen, Jane or au:Beckett, Samuel)" - repeat for OPAC. commit e8137a2c945bdea6064aeacf68750ac1f8a0eea4 Author: Jonathan Druart Date: Mon Aug 24 09:39:05 2026 +0200 Bug 42322: Add Cypress tests Signed-off-by: Pedro Amorim commit fc8f56b88f8d76198bf8d3743d9ac01c59d971d3 Author: Owen Leonard Date: Fri Aug 7 07:53:16 2026 -0400 Bug 42322: (follow-up) Correct markup of ILL sidebar menu Signed-off-by: Pedro Amorim commit 71d8564789af6c6da5358e7e51a4b0ec20a5cb7c Author: Owen Leonard Date: Thu Jun 25 11:35:24 2026 -0400 Bug 42322: (follow-up) Switch to mobile-first handling of sidebar toggle Signed-off-by: Lucas Gass Signed-off-by: Pedro Amorim commit c407f73309c79fafadf4275aa1034ae835c8aca6 Author: Jonathan Druart Date: Thu Jun 25 10:09:11 2026 +0200 Bug 42322: Hide collapsed sidebar on small screens When the sidebar is collapsed and the screen is resized to <= 1000px, '#sidebar-container' should be hidden Signed-off-by: Lucas Gass Signed-off-by: Pedro Amorim commit 7fb0345f7fe1accfe4269099bb240d396df27e17 Author: Jonathan Druart Date: Wed Jun 24 06:31:45 2026 +0200 Bug 42322: Correctly toggle aria-expanded Signed-off-by: Lucas Gass Signed-off-by: Pedro Amorim commit e8c79017885785e37246abd89eee13aed9efa08c Author: Jonathan Druart Date: Tue Jun 16 15:53:49 2026 +0200 Bug 42322: Add missing raw filter for aside_block Signed-off-by: Lucas Gass Signed-off-by: Pedro Amorim commit 4d87ae3424b1364f4ec26972e75673daed099bf7 Author: Jonathan Druart Date: Mon Apr 13 10:50:18 2026 +0200 Bug 42322: Hide .patroninfo, .browse-controls and #search-facets when collapsed Fix sidebar when collapsed on: * /members/moremember.pl?borrowernumber=42 * /catalogue/search.pl?advsearch=1&idx=kw&q=d&idx=kw&q=&idx=kw&q=&weight_search_submitted=1&weight_search=1&sort_by=relevance * /catalogue/detail.pl?biblionumber=438&searchid=scs_1776086577193 (with BrowseResultSelection ON) Signed-off-by: Clemens Tubach Signed-off-by: Lucas Gass Signed-off-by: Pedro Amorim commit 34644298e4bd01abf6d291571b63bf939fdbcbdc Author: Owen Leonard Date: Fri Apr 10 12:02:18 2026 -0400 Bug 42322: (follow-up) A version with just the button Signed-off-by: Clemens Tubach Signed-off-by: Lucas Gass Signed-off-by: Pedro Amorim commit f9dc282e2678799a79b90c4f1c3217b2dd7fab79 Author: Owen Leonard Date: Thu Apr 9 12:14:23 2026 -0400 Bug 42322: (follow-up) Proposed alternative style This version keeps a visual indicator of the collapsed sidebar. I've also added handling of the "aria-expanded" attribute. Signed-off-by: Clemens Tubach Signed-off-by: Lucas Gass Signed-off-by: Pedro Amorim commit 4784d952e71480e6318b836b712305d318bc721b Author: Jonathan Druart Date: Thu Apr 9 15:26:20 2026 +0200 Bug 42322: Vue apps Signed-off-by: Clemens Tubach Signed-off-by: Lucas Gass Signed-off-by: Pedro Amorim commit b8048548659cdb7ed1167858b23e3e9cf3e64945 Author: Owen Leonard Date: Fri Aug 7 07:55:56 2026 -0400 Bug 42322: Auto tidy To ease rebase! Re-run. Signed-off-by: Pedro Amorim commit be9a2c7c5f9136b6e26b2f9e377904d083d04f48 Author: Jonathan Druart Date: Thu Apr 9 11:45:05 2026 +0200 Bug 42322: Use main-container.inc from reports Pass the aside block from the report module Signed-off-by: Clemens Tubach Signed-off-by: Lucas Gass Signed-off-by: Pedro Amorim commit add690d0f420ecd769dd991c418238803cb7c139 Author: Jonathan Druart Date: Thu Apr 9 11:43:22 2026 +0200 Bug 42322: Pass the aside to main-container Improve main-container.inc so we can pass a specific aside block Signed-off-by: Clemens Tubach Signed-off-by: Lucas Gass Signed-off-by: Pedro Amorim commit ab7602b0f360d327149937c80aeb24c57d58d9ab Author: Jonathan Druart Date: Thu Apr 9 11:27:23 2026 +0200 Bug 42322: Add a 'collapse sidebar' button On bug 42190 we discuss the possibility to collapse the sidebar in order to enlarge the screen and specifically the table in the main div. This patch adds the button to main-container.inc that is supposed to be used from everywhere. Signed-off-by: Clemens Tubach Signed-off-by: Lucas Gass Signed-off-by: Pedro Amorim commit ce3643073a4cfce9c3da2b4b106d8b7c5e2788c1 Author: Matt Blenkinsop Date: Thu Jun 11 17:05:09 2026 +0100 Bug 39959: Add a total column to the invoices table Test plan: 1. Create an order and receive it to create an invoice 2. In the invoices search, look for your invoice 3. There will be no total against the invoice 4. Apply patch and restart_all 5. Refresh the page, the total column should now be present Signed-off-by: Coleen Lilly Signed-off-by: Andrew Fuerste Henry Signed-off-by: Pedro Amorim commit 2ce97a58e2610ed86b1d5e8c4bd6e710b67b0cda Author: Matt Blenkinsop Date: Mon Aug 24 09:55:29 2026 +0100 Bug 12278: (follow-up) Use invoice quantity to sum total Prevents additional orders from subscriptions from being swallowed into the invoice total calculation Signed-off-by: Pedro Amorim commit f7bbdd4976f138e60939b30b7c23815c3cd11a86 Author: Matt Blenkinsop Date: Thu Jun 11 16:39:39 2026 +0100 Bug 12278: Add unit tests Signed-off-by: Coleen Lilly Signed-off-by: Andrew Fuerste Henry Sponsored-by: Anne Arundel County Public Library Signed-off-by: Pedro Amorim commit b114eb709fc4fee1507f141cb223ffc62670c18e Author: Matt Blenkinsop Date: Thu Jun 11 16:37:53 2026 +0100 Bug 12278: Add a total column to the table in parcels.pl Test plan: 1. Create an order with multiple items and receive the order in full 2. From the vendor record, click Receive shipments 3. You should be in parcels.pl and the table should show your shipments 4. There will be no column displaying the total 5. Apply patch and restart_all 6. Refresh the page, the column should now be visible showing the total Signed-off-by: Coleen Lilly Signed-off-by: Andrew Fuerste Henry Signed-off-by: Pedro Amorim commit e886c3a7e05d27d98dabe6cb3dc53ff54cd435a5 Author: Olivia Reynolds Date: Fri Aug 21 17:08:47 2026 +0100 Bug 39337: (follow-up) Default to not suppressing OAI records In the case when a biblio is deleted, we should not suppress its orphaned records. Therefore, invert the conditions in the WHERE clause to not suppress the record if no biblio could be found. Test plan: 1. Enable the system preferences "OAI-PMH" and "OpacSuppression". Ensure "OpacSuppressionByIPRange" is blank. 2. Navigate to /cgi-bin/koha/oai.pl?verb=ListRecords&metadataPrefix=oai_dc 3. Select a displayed record, and delete its corresponding biblio. 4. Refresh the OAI page, verify the record has vanished. 5. Apply patch. 6. Refresh the OAI page, verify the record now appears and is marked as deleted. It may have moved to the top of the list. Sponsored-by: Open Fifth Signed-off-by: David Nind Signed-off-by: Pedro Amorim commit a03c119ccda3ea8880ce19298c7c14692a42cf67 Author: Olivia Reynolds Date: Fri Aug 21 17:02:28 2026 +0100 Bug 39337: (follow-up) Explicitly name tables As we're aliasing the primary tables as `main`, we need to use that name to refer to their columns. Test plan: 1. Apply patch. 2. Prove t/db_dependent/OAI/Server.t and verify no tests fail. Sponsored-by: Open Fifth Signed-off-by: David Nind Signed-off-by: Pedro Amorim commit 091f0d7a896104b1ea7108c37b912c30e0c67fe2 Author: Olivia Reynolds Date: Tue Jun 23 10:25:48 2026 +0000 Bug 39337: Filter out suppressed OAI records in SQL Rather than fetching each biblio before choosing to suppress it, this patch performs this filtering in the initial SQL query that fetches the biblionumbers. Note: for queries including items, this additional filtering is performed in each of the three subqueries, necessitating three quasi-joins against biblio. If we were to hoist this filtering to the outer layer, we would also need to remove the LIMIT from each subquery so as to allow each of them to be fairly weighted. As the preceding comment implies keeping the subqueries separate has been beneficial for performance, I've elected not to hoist the WHERE. Test plan (specific URLs given for KTD, with thanks to David Cook): 1. Apply patch. 2. Navigate to http://localhost:8081/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=2 3. Set 942$n to "Yes" and save the record. 4. Disable the system preference "OpacSuppression", and ensure "OpacSuppressionByIPRange" is blank. 5a. Verify you can successfully access http://localhost:8080/cgi-bin/koha/oai.pl?verb=GetRecord&metadataPrefix=oai_dc&identifier=KOHA-OAI-TEST:2 5b. Verify KOHA-OAI-TEST-2 appears on http://localhost:8080/cgi-bin/koha/oai.pl?verb=ListRecords&metadataPrefix=oai_dc 6. Enable the system preference "OpacSuppression", and ensure "OpacSuppressionByIPRange" is blank. 7. Repeat steps 5a-5b, verifying that: - the OAI GetRecord page returns "There is no biblio record with this identifier". - the OAI ListRecords page does not show KOHA-OAI-TEST-2. Sponsored-by: Open Fifth Signed-off-by: David Nind Signed-off-by: David Cook Signed-off-by: David Nind Signed-off-by: Pedro Amorim commit 4dd0bfc10750b2e7134d1a3614be42efd4f58ee9 Author: Olivia Reynolds Date: Tue Jun 23 09:21:59 2026 +0000 Bug 39337: Add is_opac_suppressed helper to C4::Context Previously, OPAC suppression was applied inconsistently, with only some callers taking OpacSuppressionByIPRange into account. This patch adds a new helper to C4::Context to determine whether OPAC suppression should be active for this request, and switches to using it everywhere that was previously manually checking the system preferences. Test plan (specific URLs given for KTD, with thanks to David Cook): 1. Apply patch. 2. Navigate to http://localhost:8081/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=2 3. Set 942$n to "Yes" and save the record. 4. Disable the system preference "OpacSuppression", and ensure "OpacSuppressionByIPRange" is blank. 5a. Verify you can successfully access http://localhost:8080/cgi-bin/koha/opac-detail.pl?biblionumber=2 5b. Verify you can successfully access http://localhost:8080/cgi-bin/koha/opac-MARCdetail.pl?biblionumber=2 5c. Verify you can successfully access http://localhost:8080/cgi-bin/koha/opac-ISBDdetail.pl?biblionumber=2 5d. Verify you can successfully access http://localhost:8080/cgi-bin/koha/opac-search.pl?idx=&q=The+ideas+behind&weight_search=1 5e. Verify you can successfully access http://localhost:8080/api/v1/public/biblios/2 5f. Verify you can successfully access http://localhost:8080/cgi-bin/koha/oai.pl?verb=GetRecord&metadataPrefix=oai_dc&identifier=KOHA-OAI-TEST:2 5g. Verify KOHA-OAI-TEST-2 appears on http://localhost:8080/cgi-bin/koha/oai.pl?verb=ListRecords&metadataPrefix=oai_dc 6. Enable the system preference "OpacSuppression", and ensure "OpacSuppressionByIPRange" is blank. 7. Repeat steps 5a-5g, verifying that: - the OPAC details pages return "Record blocked". - the OPAC search page returns "No results found". - the API returns "Bibliographic record not found". - the OAI GetRecord and ListRecords show "Record Status: deleted" for KOHA-OAI-TEST-2. 8. Keep "OpacSuppression" enabled, but set "OpacSuppressionByIPRange" to "." (to allow all IPs to bypass suppression). 9. Repeat steps 5a-5g, verifying that every page is successful again. 10. Run `prove t/Context.t`, and verify all tests are successful. Sponsored-by: Open Fifth Signed-off-by: David Nind Signed-off-by: David Cook Signed-off-by: David Nind Signed-off-by: Pedro Amorim commit 8316c01bac12529a7ca28ff7ed325eba7dfa21c8 Author: Jonathan Druart Date: Fri Jun 19 13:29:48 2026 +0200 Bug 41706: Add a test Signed-off-by: Jonathan Druart Amended: - $marc->append_fields( MARC::Field->new( '100', ' ', ' ', a => 'Aristotle.' ) ); - marc2cites($marc); + $marc_record->append_fields( MARC::Field->new( '100', ' ', ' ', a => 'Aristotle.' ) ); + marc2cites($marc_record); Signed-off-by: Pedro Amorim commit b60b7c3a3f90a68ff80660b4631608e7fbb914ac Author: Roman Dolny Date: Sun Jan 25 13:40:10 2026 +0000 Bug 41706: "Use of uninitialized value..." warning in C4/Record.pm The warning: [WARN] Use of uninitialized value $2 in split at /kohadevbox/koha/C4/Record.pm line 924. appears in the plack-opac-error.log file. It happens during the preparation of data for the "Cite" feature in OPAC for some of author's fields. To test: ======== 1. Observe plack-opac-error.log. 2. In OPAC go to record with one word author like Aristophanes, Aristotle or Xenophon (biblionumbers: 64, 176, 254). 3. Show it in any of "detail" view (Normal, MARC, ISBD). 4. Warning appears in plack-opac-error.log. 5. Apply the patch; restart_all. 6. Repeat 2-3. Warning doesn't appear. Sponsored-by: Ignatianum University in Cracow Signed-off-by: David Nind Signed-off-by: Jonathan Druart Signed-off-by: Pedro Amorim commit 138d2b64ed18fafc25829981dd06611fb2fd8797 Author: Paul Derscheid Date: Fri Mar 27 09:42:52 2026 +0100 Bug 42207: Allow library embed on GET /patrons/{patron_id} - Add 'library' to the allowed x-koha-embed values for the GET /patrons/{patron_id} endpoint - Add unit test verifying the library embed returns library_id and name Test plan: 1. Apply patch 2. yarn api:bundle 3. prove t/db_dependent/api/v1/patrons.t 4. Verify all tests pass, including the new 'library embed' subtest under get() which verifies that requesting x-koha-embed: library returns the patron's library object Sponsored-by: Büchereizentrale Schleswig-Holstein Signed-off-by: David Nind Signed-off-by: Martin Renvoize Signed-off-by: Pedro Amorim commit ad30c815ce0393f121fb9efa0d31ee514130b395 Author: Olivia Reynolds Date: Fri Jun 5 14:52:59 2026 +0000 Bug 34166: Add total column to suggestions table This patch displays the "total_price" field from the API in the acquisition suggestions table. In line with other totals, it is displayed unitless after currency conversion. Test plan: 1. Navigate to Acquisitions > Suggestions. 2. Click "New purchase suggestion", then add a title, price, and number of copies. 3. Make note of the calculated total price. 3. Save the suggestion to return to the table. 4. Verify there is no "Total" column on the suggestions table. 5. Apply patch, update database, and refresh. 6. Verify there is a "Total" column on the suggestions table that matches the previously displayed total price. 7. Verify the "Total" column is listed under the "Columns" dropdown. 8. Above the suggestions table, click "Configure". 9. In the column settings for suggestions, check both "Is hidden by default" and "Cannot be toggled" for "total". 10. Underneath the column settings for suggestions, uncheck "Save configuration state on page change". 11. Save the column settings. 12. Return to the suggestions table. 13. Verify the "Total" column is hidden. 14. Verify the "Total" column is not listed under the "Columns" dropdown. Sponsored-by: Open Fifth Signed-off-by: Michaela Signed-off-by: Jonathan Druart Signed-off-by: Pedro Amorim commit 89066b3c7b5bb8a42f27ad6407039c43b50fc77b Author: Owen Leonard Date: Mon Mar 16 12:35:34 2026 -0400 Bug 42111: Update various admin pages to use grid layout for forms - Part 1 This patch updates several administration templates with new markup and CSS for layout forms using CSS grids. To test, apply the patch rebuild the staff interface CSS. Check the following pages, confirming that the "New" and "Edit" versions of the form look correct in each case: - Administration -> Additional fields - Administration -> Audio alerts - Administration -> Cities and Towns - Administration -> Classification configuration -> Classification sources -> Classification filing rules -> Classification splitting rules On the classification splitting rules page I've reformatted the regular expression section to fit better. To test, add or edit a splitting rule. - Under "Splitting routine" choose "RegEx" - "Regular expression" and "Test the regular expressions" fields should appear. - Add one or more regular expressions, e.g. s/\s/\n/g s/(\s?=)/\n=/g s/^(J|K)\n/$1 / - In the "Test the regular expressions" text area enter some call numbers e.g. 830 Han 159.9 (091) Gesh J 3 Kin =774 830 Hil =774 4 830 Las=20 4 - Click "Test" - The formatted call numbers should appear below in a grid: +---------+------------------+--------------+----------------+--------------+ | 830 Han | 159.9 (091) Gesh | J 3 Kin =774 | 830 Hil =774 4 | 830 Las=20 4 | +---------+------------------+--------------+----------------+--------------+ | 830 | 159.9 | J 3 | 830 | 830 | | Han | (091) | Kin | Hil | Las | | | Gesh | =774 | =774 | =20 | | | | | 4 | 4 | +---------+------------------+--------------+----------------+--------------+ Sponsored-by: Athens County Public Libraries Signed-off-by: Felicie Signed-off-by: Pedro Amorim commit 7de8e290b9a5d6333a56df48bff2e8b3cb694e1b Author: Katrin Fischer Date: Sun Jul 5 10:49:44 2026 +0000 Bug 35061: Fix documentation for -pf|preserve-field in import_patrons.pl There was a mismatch between the documentation and the shortcut used in the code. This patch fixes the documentation so it matches the code: 'pf|preserve-field=s' => \@preserve_fields, =item B<-k|--preserve-field> Prevent specified patron fields for existing patrons from being overwritten So pf is the right shortcut. Signed-off-by: Aleisha Amohia Signed-off-by: Pedro Amorim commit d6e40f612c5db8dca831689d00f778ab79a98d67 Author: Tomás Cohen Arazi Date: Fri Aug 7 15:42:38 2026 -0300 Bug 20846: Filter suppressed records from public lists in OPAC When OpacSuppression is enabled, records marked as suppressed (biblio.opac_suppressed = 1) still appear in public lists viewed through the OPAC. This is confusing for patrons. This patch adds a filter_by_not_suppressed method to Koha::Virtualshelfcontents and uses it in opac-shelves.pl to exclude suppressed records from list display when OpacSuppression is enabled. OpacSuppressionByIPRange is respected: users within the allowed IP range still see all records. Test plan: 1. Apply patch 2. Enable OpacSuppression system preference 3. Create a public list and add some titles to it 4. Suppress one of the titles (set 942$n = 1) 5. View the list in the OPAC => SUCCESS: Suppressed record is no longer shown in the list 6. Set OpacSuppressionByIPRange to match your IP (e.g. 127.) 7. Repeat step 5 => SUCCESS: All records (including suppressed) are shown 8. Run: $ ktd --shell k$ prove t/db_dependent/Virtualshelves.t => SUCCESS: Tests pass! 9. Sign off :-D Signed-off-by: David Nind Signed-off-by: Laura_Escamilla Signed-off-by: Pedro Amorim commit ff2b951c4de87cbdba7eaaca4cb6dac39bb76d5e Author: Olivia Reynolds Date: Tue Jul 28 14:50:32 2026 +0000 Bug 41648: Validate plugin date metadata If a plugin reports a date_authored or date_updated we can't parse, remove the invalid property from the metadata hashref and emit a warning. To test this, introduce a separate test plugin directory and test file. Having a plugin that produces warnings in the main test directory would require accounting for this warning in every existing test that loads plugins. Correspondingly, this patch also fixes an invalid date in an existing test plugin. Test plan: 1. Apply patch. 2. Run `prove -r t/db_dependent/Koha/Plugins/` and verify there are no test failures. Sponsored-by: Open Fifth Signed-off-by: David Nind Signed-off-by: Laura_Escamilla Signed-off-by: Pedro Amorim commit fd24968eb2b1292622f8ab0e448517e0fa900a6d Author: Olivia Reynolds Date: Tue Jul 28 14:50:32 2026 +0000 Bug 41648: Handle parse errors in KohaDates If dt_from_string throws an exception whilst trying to parse the input, catch it and return an empty result. Test plan: 1. Apply patch. 2. Prove t/db_dependent/Template/Plugin/KohaDates.t Sponsored-by: Open Fifth Signed-off-by: David Nind Signed-off-by: Pedro Amorim commit dca7313511083b658a243f6a2af1dc0e990d4fbf Author: Matt Blenkinsop Date: Thu Jul 30 11:39:51 2026 +0100 Bug 43203: Correctly rollback test data Test plan: 1) In the database, verify how many biblios exist (select count(*) from biblio;) 2) Run prove t/db_dependent/Koha/Item.t 3) Check the count again, there should now be 3 extra bib records left from the test run 4) Apply patch 5) Repeat the process, the biblio count should never grow after test runs Signed-off-by: David Nind Signed-off-by: Laura_Escamilla Signed-off-by: Pedro Amorim commit fbfccfdbf24f2bf905180318f9839b181b3d3575 Author: Andrew Fuerste-Henry Date: Tue Aug 18 19:22:22 2026 +0000 Bug 43331: Add ccode class to holdings table To test: 1 - go to a bib record with items 2 - inspect the items table, confirm there is no class on the cell containing the ccode 3 - Apply patch, restart_all 4 - reload your bib page 5 - inspect the table again, confirm the cell has the class "ccode" Signed-off-by: Owen Leonard Signed-off-by: Michelle Spinney Signed-off-by: Katrin Fischer Signed-off-by: Pedro Amorim commit 634193fc6a2c478c4b97c288add38311d0289e11 Author: Fridolin Somers Date: Wed Aug 19 11:34:44 2026 +0200 Bug 43339: automatic_item_modification_by_age_configuration is not a real system preference It should not fail the unit test t/db_dependent/check_sysprefs.t. Test plan : 1.0) Without patch 1.1) Run : prove t/db_dependent/check_sysprefs.t => 'All tests successful' 1.2) Go to Cataloging > Automatic item modifications by age 1.3) Create some entries and save 1.4) Run : prove t/db_dependent/check_sysprefs.t => # Failed test at t/db_dependent/check_sysprefs.t line 96. # got: '1' # expected: '0' # Too many sysprefs in DB: automatic_item_modification_by_age_configuration 2.0) Apply patch 2.1) Run : prove t/db_dependent/check_sysprefs.t => 'All tests successful' Signed-off-by: Owen Leonard Signed-off-by: David Nind Signed-off-by: Andrew Fuerste Henry Signed-off-by: Pedro Amorim commit b33bb4b38036632e203268285c804f11757692f5 Author: Andrew Fuerste-Henry Date: Wed Aug 19 20:26:03 2026 +0000 Bug 43342: Remove line due to template toolkit To test: 1 - go to the OVERDUES_SLIP notice and confirm you are using the default content 2 - have or create a patron with an overdue item 3 - click Print and then Print overdues 4 - confirm there are two empty lines between the first and second lines of text APPLY PATCH, restart_all 5 - reload your OVERDUES_SLIP notice page 6 - click View default 7 - confirm the FOREACH statement now starts with "[%-" 8 - click Copy to Template, save your changes 9 - print your patron's overdue slip again, confirm you have only one blank line Signed-off-by: Lucas Gass Signed-off-by: Pedro Amorim commit 35b58d65c5aab92959af808a36c706bee543e263 Author: Hammat Wele Date: Wed Aug 19 12:25:02 2026 +0000 Bug 43211: (follow-up) fix 'barcode is not defined' error Signed-off-by: David Nind Signed-off-by: Katrin Fischer Signed-off-by: Pedro Amorim commit a17d27f8ae4d008999d6046a69226917e459cad4 Author: Janusz Kaczmarek Date: Fri Jul 31 22:11:33 2026 +0000 Bug 43211: Koha hangs when receiving order with AcqCreateItem set to 'receiving an order' Koha hangs when receiving an order with AcqCreateItem set to "receiving an order". Test plan: 1. Create a basket and set "Create items when" to "receiving an order". 2. Add an order and close the basket. 3. Attempt to receive the order. Koha will most likely hang. 4. Apply the patch; restart_all. 5. Repeat p. 3. You should be able co proceed. Signed-off-by: David Nind Signed-off-by: Katrin Fischer Signed-off-by: Pedro Amorim commit 3522dc2bca202eabde571f4e17b2fe17bd092652 Author: Tomás Cohen Arazi Date: Fri May 8 15:57:36 2026 -0300 Bug 42567: Remove C4::Koha::GetNormalizedEAN in favor of MetadataExtractor Adds get_normalized_ean to the flavor-specific extractors: - MARC21: 024$a with indicator 1 = 3 - UNIMARC: 073$a Exposes it as $biblio->normalized_ean and migrates all callers. Assisted-by: Sonnet 4.6 (Anthropic) Test plan: 1. Apply patch 2. Run: $ ktd --shell k$ prove t/db_dependent/Koha.t \ t/db_dependent/Koha/Biblio.t \ t/db_dependent/Koha/Biblio/Metadata/Extractor/MARC/MARC21.t \ t/db_dependent/Koha/Biblio/Metadata/Extractor/MARC/UNIMARC.t => SUCCESS: Tests pass 3. Verify EAN numbers still display in OPAC and staff detail pages 4. Sign off :-D Signed-off-by: David Nind Signed-off-by: Jonathan Druart Signed-off-by: Pedro Amorim