commit f1aca9a28a896dba859da52864bca09ca92224a1 Author: Tomás Cohen Arazi Date: Wed Dec 3 13:23:30 2025 -0300 Bug 41357: Adapt SIP2 module to use relationshipI18n Signed-off-by: Pedro Amorim Signed-off-by: Lucas Gass commit 0bc93cf061e0e17ee2be3c41e337eb4cd2f4b46c Author: Tomás Cohen Arazi Date: Wed Dec 3 10:42:29 2025 -0300 Bug 41336: (follow-up) Fix breadcrumb selector in Cypress test The test was looking for .current class but the Vue component uses aria-current="page" attribute instead. Signed-off-by: Tomás Cohen Arazi Signed-off-by: Lucas Gass commit 7e7a037f5e0dd935c7bb646929f7b4406c803f41 Author: Jonathan Druart Date: Tue Dec 2 14:17:27 2025 +0100 Bug 41336: Fix current (?) On top of "Bug 41354: Fix record sources Vue app" there is still one failing test for t/cypress/integration/Admin/RecordSources_spec.ts 1) Breadcrumbs tests Breadcrumbs: AssertionError: Timed out retrying after 10000ms: Expected to find element: `.current`, but never found it. at Context.eval (webpack://koha/./t/cypress/integration/Admin/RecordSources_spec.ts:18:11) This patch is trying to fix it but it does not Signed-off-by: Nick Clemens Signed-off-by: Tomás Cohen Arazi Signed-off-by: Lucas Gass commit 5ee17597b1ef1930a3e73f585dcb6641c45ac89a Author: Jonathan Druart Date: Tue Dec 2 13:33:08 2025 +0100 Bug 41336: Remove 'No match found for location with path' warnings Cypress tests for Vue app are currently failing because of the following warnings in the console: "[Vue Router warn] No match found for location with path" It happens for routes that are disabled. We should not build a router-link but a "disabled" link instead. Signed-off-by: Nick Clemens Signed-off-by: Tomás Cohen Arazi Signed-off-by: Lucas Gass commit c40fcf5cdadb2438fa2dd196b881cb83a1cd17bf Author: Matt Blenkinsop Date: Tue Dec 2 14:17:24 2025 +0000 Bug 41355: Handle vue resources with no Show component Test plan: 1) Navigate to record sources and create a record source 2) In the table there will be a hyperlink on the record source name which shouldn't be there 3) Apply patch and rebuild javascript 4) Hard refresh and then observe that the table should no longer have a hyperlink Signed-off-by: David Nind Signed-off-by: Tomás Cohen Arazi Signed-off-by: Lucas Gass commit 77bcaa98790b44e67a59cb7340e645cc8a71abbf Author: Jonathan Druart Date: Tue Dec 2 14:02:38 2025 +0100 Bug 41354: Fix record sources Vue app It fixes a JS error in the console Uncaught (in promise) TypeError: can't convert undefined to object Also fixes the cypress tests: t/cypress/integration/Admin/RecordSources_spec.ts Test plan: Create a new record source Signed-off-by: David Nind Signed-off-by: Tomás Cohen Arazi Signed-off-by: Lucas Gass commit f4d85258069ea24744ae1f079bc8ec9b51cf0719 Author: Jonathan Druart Date: Tue Dec 2 11:19:20 2025 +0100 Bug 38311: Fix Selenium and Cypress tests .dt-select-filter does no longer exist Here we rely on DT's API to retrieve the correct visible column index. However we cannot for Selenium tests, not ideal but it fixes the failure. Signed-off-by: Lucas Gass commit 87fb6f273a0e9ceed176c038c73e5116464a66de Author: Paul Derscheid Date: Tue Nov 4 13:37:49 2025 +0000 Bug 36674: (follow-up) Stop emitting Cypress API client source maps - Use devtool: false to prevent emitting source maps for cypress. - Add package script to clean built assets, artifacts. Signed-off-by: Jonathan Druart Signed-off-by: Lucas Gass commit 91a3090896d4840246f02ec18c12dc31767634e4 Author: Lari Taskula Date: Sun Oct 26 12:32:43 2025 +0200 Bug 38363: Use output_html_with_http_headers in C4::Auth The following C4::Auth subroutines - checkauth() - get_template_and_user() were in some cases outputting html outside of C4::Output's output mechanisms. It is important to ensure the consistency of our HTTP responses. Having multiple output mechanisms for what is essentialy the same type of response not only leads to unneccessary code duplication and complexity but possibly even bugs at some point in the future. For these reasons it is better to output only through C4::Output, when possible. This patch does that for the two aforementioned C4::Auth cases. To test unit tests: 1. prove t/db_dependent/Auth.t As for checkauth(), the change only applies to unauthenticated state and failed logins. To test checkauth: 1. Enable system preference opacuserlogin 2. Navigate to OPAC 3. Observe OPAC loading successfully 4. Log in to OPAC with invalid credentials 5. Observe "You entered an incorrect username or password" 6. Navigate to staff client without being logged in (logout if you are in) 7. Observe staff client login screen loading successfully 8. Log in to staff client with invalid credentials 9. Observe "Invalid username or password" As for get_template_and_user(), the change only applies to SCO/SCI user navigating outside of the self service modules. To test get_template_and_user: 1. Enable system preference WebBasedSelfCheck 2. Create a new test patron and note down their username & password 3. Grant them a permission self_checkout_module (under Self check modules) 4. Navigate to http://OPAC/cgi-bin/koha/sco/sco-main.pl 5. Log in with the test patron 6. Observe successful login (should display "Self-checkout system" page) 7. Navigate to http://OPAC/cgi-bin/koha/opac-main.pl (you can get there by editing the address bar of your web browser) 8. Observe "Log in to your account" page, ie. you have been kicked out 9. Modify your test patron's permissions 10. Remove permission "self_checkout_module" and add "self_checkin_module" 11. Enable system preference SelfCheckInModule 12. Navigate to http://OPAC/cgi-bin/koha/sci/sci-main.pl 13. Log in using your test patron's credentials 14. Observe "Self check-in" page 15. Navigate to http://OPAC/cgi-bin/koha/opac-main.pl (you can get there by editing the address bar of your web browser) 16. Observe "Log in to your account" page, ie. you have been kicked out Signed-off-by: David Cook Signed-off-by: Jonathan Druart Signed-off-by: Lucas Gass commit 0a620dfccd683d21c37e8a9e5ec58a89373bc77c Author: Jonathan Druart Date: Mon Nov 3 11:44:18 2025 +0100 Bug 38311: Fix 'Bookings to collect'/pendingbookings it was missing the dataFilter. Also needs coded_values to work correctly (which needs to be defined outside of document.ready). Signed-off-by: Matt Blenkinsop Signed-off-by: Lucas Gass commit ac832ac7170aa152e0ef489e34515e71eff2548d Author: Jonathan Druart Date: Thu Jul 31 15:43:36 2025 +0200 Bug 38311: Add dropdown list to column filters linked to an AV - Vue components Signed-off-by: Owen Leonard Signed-off-by: Matt Blenkinsop Signed-off-by: Lucas Gass commit d00f69709c101e74bf53ce3c4ce6d758441a60e1 Author: Jonathan Druart Date: Thu Jul 31 15:40:40 2025 +0200 Bug 38311: Do not use ID for column filters Signed-off-by: Owen Leonard Signed-off-by: Matt Blenkinsop Signed-off-by: Lucas Gass commit 9263bd415250672618a0c27dce3f4b7273b6bb50 Author: Tomás Cohen Arazi Date: Tue Sep 30 19:26:43 2025 -0300 Bug 40919: Remove unnecessary DB call in Koha::Item::Transfer->receive This patch removes a trivially not required DB object instantiation. This implies saving CPU usage for the instantiation and algo for fetching from the DB. To test: 1. Run: $ ktd --shell k$ prove t/db_dependent/Koha/Item/Transfer.t => SUCCESS: Tests pass! They cover ->receive() 2. Apply this patch 3. Repeat 1 => SUCCESS: No behavior change, tests pass! 4. Sign off :-D Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 88775c54bd069ad8d836fd1780e67fd0597d3dfe Author: Tomás Cohen Arazi Date: Mon Oct 6 15:13:17 2025 -0300 Bug 30148: (follow-up) Apply CSS-based separators to online resources (856) Extends the CSS-based separator approach to field 856 (Electronic Location and Access) which was still using hardcoded pipe separators. This completes the conversion of all major repeatable fields in the staff interface to use consistent CSS-based separators, matching the OPAC implementation from Bug 27613. Signed-off-by: Lucas Gass Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit b0d103b48c3645cd795b34b2d838a946f6c41c7e Author: Tomás Cohen Arazi Date: Mon Oct 6 15:11:16 2025 -0300 Bug 30148: (follow-up) Apply CSS-based separators to additional repeatable fields Extends the CSS-based separator approach to additional repeatable fields that were using hardcoded pipe separators: - Content type (336) - Media type (337) - Carrier type (338) - Awards (586) - Production credits (508) This provides consistent behavior and customization options across all major repeatable fields in the staff interface, matching the approach used for classification fields. Signed-off-by: Lucas Gass Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit b4701b19664554153b9b0552e269861b66a28333 Author: Tomás Cohen Arazi Date: Mon Oct 6 14:51:52 2025 -0300 Bug 30148: Apply CSS-based separators to all classification fields This patch changes the classification display from hardcoded pipe separators to CSS pseudo-elements, following the same approach as Bug 27613 for the OPAC. Changes: - Wrap each field occurrence in
  • elements within
      - Remove hardcoded delimeter parameter from subfieldSelect - Add CSS rules to display pipe separators via ::after pseudo-elements - LOC classification (050) - Publisher number (028) - DDC classification (082) - NLM classification (060) - Other classification (084) This allows libraries to customize the separator display via CSS. It also provides consistent behavior and customization options across all repeatable classification fields in the staff interface. To test: 1. Create a record with multiple 050 fields: 050 4 $aE337.5 $b.O54 2025 050 4 $aE415.7 $b.A44 2025 2. View the record in staff interface => SUCCESS: Classification looks ok: ``` E337.5 .O54 2025 | E415.7 .A44 2025 ``` 3. Apply this patch 4. Run: $ ktd --shell k$ yarn build 5. Refresh the page => SUCCESS: It still looks correct! 6. Sign off :-D Extends the CSS-based separator approach to all classification fields that were using hardcoded pipe separators: Signed-off-by: Lucas Gass Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 89eafa93963d677c2963609c197ba629c4c65165 Author: David Gustafsson Date: Thu Mar 27 14:06:53 2025 +0100 Bug 39468: EDI message status should be case insensitive Make edi_order lowercase so that matching is case insensitive. Signed-off-by: Laura_Escamilla Signed-off-by: Lucas Gass commit 66abfacd9693e523430ed2f8b8a78f0e001aa6b5 Author: Matt Blenkinsop Date: Thu Jun 5 13:40:25 2025 +0100 Bug 40082: Add unit tests Test plan: 1) Choose an existing patron and note their first and second names as well as their date of birth 2) In the interface, create a new patron and enter all of those details to be the same as your patron from step 1 3) Submit the form, you will get a warning saying that there is a duplicate 4) In the OPAC, self register a new patron using the same details again 5) The form should submit with no error or warning 6) Apply patch, yarn api:bundle and restart_all 7) Repeat steps 2 - 5 8) Step 3 should still have the same behaviour 9) Step 5 should now show a warning at the top to say that there is a duplicate, please contact a member of staff 10) Find the 'PatronDuplicateMatchingAddFields' syspref and select an extra field there, ensuring that your patron from step 1 has data for that field 11) In either the interface or the OPAC, register a new patron but this time change the data of the new field you added in step 10 12) No warning should show for a duplicate patron 13) prove t/db_dependent/api/v1/patrons.t 14) prove t/db_dependent/Koha/Patrons.t Signed-off-by: Andrew Fuerste Henry Signed-off-by: Pamela Bird Signed-off-by: Lucas Gass commit d3f94c009859c0f6240ddbeb19ff7b92af6455d8 Author: Matt Blenkinsop Date: Thu Jun 5 13:40:03 2025 +0100 Bug 40082: Use the new duplicate checking method in the OPAC Signed-off-by: Andrew Fuerste Henry Signed-off-by: Pamela Bird Signed-off-by: Lucas Gass commit 40bb18a6fc068af70eeac3c2b0b9ad6810942a3a Author: Matt Blenkinsop Date: Thu Jun 5 13:39:49 2025 +0100 Bug 40082: Use the new duplicate checking method in the API Signed-off-by: Andrew Fuerste Henry Signed-off-by: Pamela Bird Signed-off-by: Lucas Gass commit 5736c9175cea68832dd709074ca8653acadfabda Author: Matt Blenkinsop Date: Thu Jun 5 13:38:37 2025 +0100 Bug 40082: Move the duplicate matching logic to the Koha::Patrons class Signed-off-by: Andrew Fuerste Henry Signed-off-by: Pamela Bird Signed-off-by: Lucas Gass commit f1c0d2d6d8b318a6d624ddd2282333f9280813a5 Author: Marcel de Rooy Date: Thu Oct 16 08:47:24 2025 +0200 Bug 41031: Fix the subtest check_fixed_length in MARC21.t Add test on empty marc object. Remove MARC21 module and create with parent MARC object. Test plan: Run t/db_dependent/Koha/Biblio/Metadata/Extractor/MARC/MARC21.t Signed-off-by: Marcel de Rooy Signed-off-by: Owen Leonard Signed-off-by: Lucas Gass commit 4d2e2b8288aa09cc835204835b5014e171e1d1bc Author: Marcel de Rooy Date: Thu Oct 16 10:18:49 2025 +0200 Bug 41031: Add checks on metadata and biblio in Extractor::MARC->new Test plan: Run t/db_dependent/Koha/Biblio/Metadata/Extractor/MARC.t Verify that addbiblio.pl still opens as expected when modifying an existing record or adding a new record. Signed-off-by: Marcel de Rooy Signed-off-by: Owen Leonard Signed-off-by: Lucas Gass commit 6a8b160a2fec937df36208acc503b783ab735938 Author: Jonathan Druart Date: Fri Nov 28 10:03:45 2025 +0100 Bug 41328: Fix incorrect use of ref in KohaTable.vue This patch fixes DataTables instantiation in Vue components. There was an error in the console Uncaught (in promise) TypeError: table.value.dt is not a function Signed-off-by: Lucas Gass Signed-off-by: Matt Blenkinsop Signed-off-by: Lucas Gass commit b2d3ec043c7483ab42ee485c7a93403a2cc82563 Author: Andrew Fuerste-Henry Date: Wed Nov 19 17:05:46 2025 +0000 Bug 40961: Default item and patron library values to blank To test: 1 - load the Circulation Statistics wizard 2 - confirm Home library, Holding library, and Patron library default to selecting the logged-in branch 3 - apply patch, restart_all, reload page 4 - confirm Home library, Holding library, and Patron library default to a blank selection 5 - confirm queries with those blank selections are not limited by items.homebranch, items.holdingbranch, or borrowers.branchcode Signed-off-by: Katherine Wolf Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit ff461167fd9fbef394340b2eecc9993137cd3919 Author: Eric Phetteplace Date: Wed Sep 24 12:49:22 2025 -0700 Bug 40873: AV dropdowns in OPAC don't use lib_opac To test (ktd): - Sign into the admin side - Go to Administration > Authorized Values - Edit or add to SUGGEST_FORMAT such that one AV has a different lib_opac - Sign into the public catalog - Go to purchase suggestions /cgi-bin/koha/opac-suggestions.pl?op=add_form - Note that the AV in the 'Item type' dropdown does not use your lib_opac text - Apply the patch and refresh the page - Now the AV uses the lib_opac text Sponsored-By: California College of the Arts Signed-off-by: David Nind Signed-off-by: Baptiste Wojtkowski Signed-off-by: Lucas Gass commit 2ea04163a3a0735d6136ab05b5b695ea2296e092 Author: Laura Escamilla Date: Wed Nov 5 21:18:06 2025 +0000 Bug 41198: Add visible "Sort results by" label above sort dropdown in OPAC search results This patch adds a visible "Sort results by:" label above the sort dropdown on the OPAC search results toolbar. Previously, only a screen-reader-only label was present, providing no visible context for sighted users. This improves accessibility (WCAG 2.1 compliance) and usability by making the function of the dropdown clear. To test: 1. Perform a search in the OPAC. 2. Confirm that the "Sort results by:" text appears above the sort dropdown. 3. Verify that the dropdown still functions correctly and the layout remains consistent across screen sizes. Signed-off-by: David Nind Signed-off-by: Baptiste Wojtkowski Signed-off-by: Lucas Gass commit d16b9f03118bc28e51a06e08b1579d4ef24803c9 Author: Lucas Gass Date: Fri Nov 21 14:39:13 2025 +0000 Bug 40205: data-categorycode should always be set to ALL To test: 1. Add at least one rule to the default-circulation-rules table that contains a patron category. 2. Now add a "Default checkout, hold and return policy" rule. 3. Inspect the "Unset" button: Unset 4. APPLY PATCH and clear browser cache 5. Try again, this time you should be able to delete the rule. Signed-off-by: Trevor Diamond Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit 95f2639d64806f0c66abc4b6e2bcea9a03c97ec7 Author: Aleisha Amohia Date: Wed Jul 9 03:25:01 2025 +0000 Bug 39985: Set items.onloan when recall adjusts checkout due date This enhancement ensures the due date stored in items.onloan is changed when a recall causes a checkout due date to change. To test: 1. Enable UseRecalls syspref and set corresponding circulation rules: - Recalls allowed - Recalls per record - On shelf recalls allowed - set to "If any unavailable" - Recall due date interval - set to 1 - Recall pickup period 2. Check out an item to a patron (Patron A) 2a. Make sure this patron has a primary email address set 2b. Check the patron's messaging preferences - make sure this patron has the 'Email' checkbox checked for the 'Return recalled item' notice 3. Go to Tools -> Notices & slips and find the RETURN_RECALLED_ITEM notice. In the Email notice, change "[% checkout.date_due | $KohaDates %]" to "[% item.onloan | $KohaDates %]" and Save. 4. Log into the OPAC as another patron 5. Search for the item checked out in step 2, and place a recall on that item 6. Search for that item in the staff interface => Note that the item status says, "Checked out to : due " 7. Create the following SQL report in the reports module, using the barcode of the item that was recalled: SELECT onloan FROM items WHERE barcode='xxxxxxxxx' 8. Run the report => The onloan value is still set to the item's original due date, not the updated due date of tomorrow 9. Go to Patron A's account again and view their Notices tab. Click on the 'Notification to return a recalled item' => The original due date is used in the notice. 10. Apply the patch and restart services 11. Reset to run the tests again: - Check in the item, but do not confirm the recall in the pop-up - Go to the biblio detail page and cancel the recall 12. Repeat steps 2 to 5. 13. Run your report again (step 8) => The onloan value should now show the updated due date of tomorrow 14. View Patron A's latest 'Notification to return a recalled item' notice (step 9) => The updated due date should be used in the notice. 15. Confirm tests pass - t/db_dependent/Koha/Recalls.t Sponsored-by: Auckland University of Technology Signed-off-by: Brendan Gallagher Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit 92d6fcf2bd01a8ab134405924090ae94a1b33386 Author: Martin Renvoize Date: Fri Nov 7 14:10:09 2025 +0000 Bug 41229: Fix desk and register session persistence on library change When changing library in circ/set-library.pl, desk and register values were not being properly cleared from the session. This caused stale desk/register data from the previous library to persist, resulting in: - Incorrect cashup displays showing wrong library's register - POS defaulting to registers from different libraries - Session state inconsistent with visual UI Three issues fixed: 1. Template: Changed register "None" option ID from "set-library-noregister" to "noregister" to match JavaScript expectations (consistent with desk handling) 2. Desk logic: Changed condition to use defined() and explicitly clear session when "No desk" is selected 3. Register logic: Added session clearing when "No register" is selected and fixed condition to handle empty initial state Test plan: 1. Select Library A with Register 5 2. Change to Library B without selecting a register 3. Verify register is cleared from session (check POS page) 4. Repeat for desk selection 5. Verify explicit "-- None --" selection clears session values Signed-off-by: Jason Robb Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit 46bfbfee2d711dd982cb988d87bd1ad4b1ab8eb4 Author: Jonathan Druart Date: Fri Oct 10 10:42:31 2025 +0200 Bug 40760: Format 'Edit' link in item receive table as link When receiving items in the acq module, the "Edit" link in the items table for orders with items created when ordering is not recognizable as link, but appears just formatted as normal text. To test: * Create a basket with items 'on order' * Add an order line with 2+ items * Close basket * Receive shipment for the same vendor * Click on "receive" link * Verify the "Edit" in the items table on the left is formatted as a link Signed-off-by: Owen Leonard Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit 0485296221612b9fa55efbe7c214e2ed6152edbf Author: Jonathan Druart Date: Tue Nov 25 14:04:56 2025 +0100 Bug 41298: Fix filtering items by in transit The filtering condition was not correct, the presence of a line in the transfer table is not enough to now if the item is in transit. Here we filter reusing the same conditions as Koha::Item::Transfer->in_transit Test plan: Have at least 2 items for a given bibliographic record Transfer item 1 Transfer item 2 Receive/Fullfill the transfer for item 1 Item 1 is now available and item 2 is in transit Go to items record and filter holdings table with status "In transit" => Only item 2 is displayed Filter holdings table with status "Available" => Only item 1 is displayed Signed-off-by: Anneli Österman Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit 59d07337de5a5dfc3415dc28866f89e34ef274c2 Author: Katrin Fischer Date: Tue Oct 14 10:10:08 2025 +0200 Bug 41008: Fix bulkmarimport.pl -a -d After bug 35659 that added the OAI harvester to Koha the -d switch for deleting authorities before importing with bulkmarcimport.pl was broken and resulted in a FK error. Switching from truncate to DELETE FROM like we already did for items, biblio etc. fixes the issue. To test: - Make sure you have some authorities in your database - Export some into a file for importing - Run bulkmarcimport -a -d --file - Verify you get the a DB FK constraint error. - Apply patch - Repeat steps, verify the script now works as expected again * Existing authorities are deleted * File is imported Signed-off-by: David Cook Signed-off-by: Jan Kissig Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit af31453c63c9609144496ab42fc8f65f007410d4 Author: Martin Renvoize Date: Thu Oct 3 15:41:05 2024 +0100 Bug 38072: Fix regression in modal_printer This patch updates the JS for the modal printer to make it more reliable. I found that in recent versions of chrome the print dialog failed to open and instead you were just faced with a flash of white before the new tab autoclosed and no print takes place. Test plan 1) Enable cash registers and point of sale preferences 2) Add a debit type and mark it as 'Can be sold' 3) Add a cash register 4) Use 'Point of sale' to sell one of the above item for cash against the register you just created. 5) Navigate to the register and 'cashup' 6) Click the 'summary' link to display a modal 7) Use the 'Print' option in the modal and confirm you face a print dialog and can print 8) The print tab should be closed and you should be back to Koha Signed-off-by: David Nind Bug 38072: Ensure the printing tab closes Signed-off-by: David Nind Signed-off-by: Marcel de Rooy [EDIT] Squashed and tidied. Signed-off-by: Lucas Gass commit a6ba625592f05fbe952f7fe8fef97b7e12eb00f7 Author: David Cook Date: Thu Oct 30 01:36:53 2025 +0000 Bug 38516: Use PDF template copy for exporting PDFs Due to a bug in PDF::API2 or related libraries, you cannot export a PDF if you do not have write permission on the PDF template. We bypass this problem by taking a string copy of the PDF template and working on that instead. Test plan: 0. DO NOT APPLY THE PATCH YET 1. chmod 444 /kohadevbox/koha/koha-tmpl/intranet-tmpl/prog/pdf/*.pdf 2. Create a basket with a vendor 3. Add an order to the basket 4. Close basket (and attach the basket to a new basket group with the same name) 5. Go to "Closed" tab and click "Export as PDF" 6. Note that you get an error when you try to open it in Adobe or some other PDF program 7. Apply the patch and restart koha (e.g. koha-plack --restart kohadev) 8. Try to "Export as PDF" again 9. Note that this time there is no warning and your PDF opens just fine 10. Repeat the "Export as PDF" process for every option of the system preference "OrderPdfFormat". Every option should work without errors. 11. Celebrate! Signed-off-by: Arthur Suzuki Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit 17b3158b35c247a6db5ab4406d80a584cdefd576 Author: Jonathan Druart Date: Thu Nov 27 11:03:45 2025 +0100 Bug 41314: Fix column visibility on the checkouts table Currently the column visibility is broken because the table is not using bKohaColumnsUseNames. We should first fix that because it's a bug (and a regression certainly caused by DT's saveState, bug 33484). Then it will be quite trivial to move it to the table's settings. Column visibility must use bKohaColumnsUseNames when some columns are displayed/hidden depending on sysprefs (or other variables). Test plan: 0. Do not apply this patch 1. Check an item out for a patron 2. Turn on ExportCircHistory 3. Reload the checkouts table => The export column is not displayed (FAIL) 4. Open the dev console (ctrl+shift+c on Firefox), Storage tab => local storage. Remove the 2 keys (only one may exist) DataTables_circ_circulation_issues-table DataTables_members_moremember_issues-table 5. Reload the checkouts table => The export column is displayed 6. Turn off ExportCircHistory 7. Reload the checkouts table => The column column is displayed (FAIL) Well, you got the idea, the syspref's value is not taken into account when a DataTable's state already exists in the local storage. Now apply this patch and repeat the different steps, on the two tabs * "Check out" (circ/circulation.pl) * "Default" (members/moremember.pl) Signed-off-by: David Nind Signed-off-by: Baptiste Wojtkowski Signed-off-by: Lucas Gass commit d3577b927738c8d2d8a5ff4b814eee6be15c2fe4 Author: Jonathan Druart Date: Fri Oct 3 15:26:08 2025 +0200 Bug 40680: Fix t tests Amended patch @ t/db_dependent/Realtime_holdsqueue.t:26 @ use Test::MockModule; -use C4::SIP::ILS::Transaction::Checkin qw( do_checkin ); +use C4::SIP::ILS::Transaction::Checkin; Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 41341ecccc42b7568552cae4208964eba2f78d32 Author: Jonathan Druart Date: Tue Sep 2 12:39:36 2025 +0200 Bug 40680: Fix C4::Calendar imports Attempt to call undefined import method with arguments (new ...) via package C4::Calendar (Perhaps you forgot to load the package?) at t/db_dependent/Hold.t line 25. Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit af63bcd9d3fec98f5587890b1bdc074e5ede412f Author: Jonathan Druart Date: Tue Sep 2 12:37:55 2025 +0200 Bug 40680: Fix t/Labels* Attempt to call undefined import method with arguments (split_callnumber) via package C4::ClassSplitRoutine::LCC (Perhaps you forgot to load the package?) at t/Labels.t line 22. Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 03f8ca2578353dabfdb5947827eebb66cbe24e8c Author: Jonathan Druart Date: Tue Sep 2 12:36:24 2025 +0200 Bug 40680: Fix svc/virtualshelves/search Attempt to call undefined import method with arguments (search) via package C4::Utils::DataTables::VirtualShelves (Perhaps you forgot to load the package?) at svc/virtualshelves/search line 8. Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 38d518c7bf00c9c98aa0394f8b3863a3a8809d0f Author: Jonathan Druart Date: Tue Sep 2 12:33:58 2025 +0200 Bug 40680: Fix TestBuilder perl -wc misc/devel/create_test_data.pl Attempt to call undefined import method with arguments ("schema") via package "Koha::Database" (Perhaps you forgot to load the package?) at /kohadevbox/koha/t/lib/TestBuilder.pm line 5. Attempt to call undefined import method with arguments ("_type") via package "Koha::Biblios" (Perhaps you forgot to load the package?) at /kohadevbox/koha/t/lib/TestBuilder.pm line 7. Attempt to call undefined import method with arguments ("_type") via package "Koha::Items" (Perhaps you forgot to load the package?) at /kohadevbox/koha/t/lib/TestBuilder.pm line 8. Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 7f9e2019a026d41f73871405eefab6e6eda2b2be Author: Jonathan Druart Date: Tue Sep 2 12:32:06 2025 +0200 Bug 40680: Fix admin/matching-rules.pl Attempt to call undefined import method with arguments (valid_normalization_routines) via package C4::Matcher (Perhaps you forgot to load the package?) at admin/matching-rules.pl line 27. Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit a42a263cbfa8febb37b60591d32213718eb579d2 Author: Jonathan Druart Date: Tue Sep 2 12:31:13 2025 +0200 Bug 40680: Fix admin/columns_settings.pl Attempt to call undefined import method with arguments (get_modules) via package C4::Utils::DataTables::TablesSettings (Perhaps you forgot to load the package?) at admin/columns_settings.pl line 8. Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit dbdf80ad1f33559277311734421959f08eadcf41 Author: Jonathan Druart Date: Tue Sep 2 12:29:02 2025 +0200 Bug 40680: Fix acqui scripts Attempt to call undefined import method with arguments (get_active) via package Koha::Acquisition::Currencies (Perhaps you forgot to load the package?) at acqui/addorder.pl line 133. Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 1c485e766827b51b89e97592c140645c9c5b91f5 Author: Jonathan Druart Date: Tue Sep 2 12:28:08 2025 +0200 Bug 40680: Fix C4/Patroncards/Patroncard.pm Attempt to call undefined import method with arguments (StrWidth) via package C4::Creators::PDF (Perhaps you forgot to load the package?) at /kohadevbox/koha/C4/Patroncards/Patroncard.pm line 28. Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit beac9eae8fc844cf1b289b0ca47bce32eaf39b34 Author: Jonathan Druart Date: Tue Sep 2 11:22:06 2025 +0200 Bug 40680: Move EXPORT_OK right after Modern::Perl So it is done before the other use statements. Also uniformize the pattern, must now be: ``` use Modern::Perl; use base 'Exporter'; BEGIN { our @EXPORT_OK = qw(subroutine list); } ``` Rebased-by: Victor Grousset/tuxayo Bug38936 exported redirect_if_opac_suppressed Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 95e704450c5afe83f64e2cff510c97423b27b86e Author: Jonathan Druart Date: Tue Sep 2 11:21:36 2025 +0200 Bug 40680: Remove duplicated code From commit b40ceb1cf5cb195f81347e090ade5e8bc3f316de Bug 39367: Manual changes Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 7adeda91f16f2a486cbea83ba7e5b4a99e41f34e Author: Jonathan Druart Date: Fri Nov 28 09:26:38 2025 +0100 Bug 38426: yarn.lock changes Signed-off-by: Jonathan Druart commit dda7bfde677161dd2e1c1a8905017109f9142694 Author: Jonathan Druart Date: Fri Nov 28 09:26:29 2025 +0100 Bug 38426: Correct types/ws version error "webpack-dev-server##@types/ws@^8.5.5" doesn't satisfy found match of "webpack-dev-server#@types/ws@8.5.3" Signed-off-by: Jonathan Druart commit 592d966d67d62c6d324eee8a4f342d566bf985dd Author: Pedro Amorim Date: Mon Nov 24 11:39:45 2025 +0000 Bug 37893: Handle SIPconfig.xml not found / unreadable prove t/db_dependent/Koha/SIP2/SIP2ModuleMigration.t Signed-off-by: Lucas Gass