commit a7ed3b91747c32cb006b7e8ff2284f54d4ea6b61 Author: Lucas Gass Date: Thu Jul 3 14:55:03 2025 +0000 Revert "Bug 40164: Add Template::Plugin::JSON dependency" This reverts commit d3783f8859cbcdd3dce01f37c41bf47981200eea. Signed-off-by: Lucas Gass commit d4647c95238ae22ecbbea4130a1cbc06fac9187b Author: Lucas Gass Date: Mon Jun 30 21:58:22 2025 +0000 Bug 34561: DBRev 25.06.00.002 Signed-off-by: Lucas Gass commit c1a1b85c874e95ed9839fff206a3609f3d0fd858 Author: Lisette Scheer Date: Wed Jun 25 15:11:00 2025 +0000 Bug 34561: (QA follow-up) Rename to StaffReportsHome to match othe html customizations I noticed the rest of the html customizations don't have html in the option name, so I renamed for consistency. Signed-off-by: Lucas Gass commit 20caaf611a422d03b2a6135627a2f26540c6b09d Author: Owen Leonard Date: Tue Jun 10 14:41:39 2025 +0000 Bug 34561: Move IntranetReportsHomeHTML to HTML customizations This patch moves the IntranetReportsHomeHTML system preference into HTML customizations, making it possible to have language- and library-specific content. To test you should have some content in the IntranetReportsHomeHTML system preference before applying the patch. Apply the patch and run the database update process. - In the staff client, go to Tools -> HTML customizations and verify that the content from IntranetReportsHomeHTML is now stored there. - The HTML customization entry form should offer IntranetReportsHomeHTML as a choice under "Display location." - Update and reinstall active translations (for instance fr-FR): - perl misc/translator/translate update fr-FR - perl misc/translator/translate install fr-FR - Enable the translation if necessary under Administration -> System preferences -> language. - Edit the IntranetReportsHomeHTML HTML customization and add unique content to the "fr-FR" tab. - Go to the reports home page. You should see the content you added to the IntranetReportsHomeHTML HTML customization. - Switch to your updated translation and confirm that the content you added for your translation shows up correctly. - Go to Administration -> System preferences and search for "IntranetReportsHomeHTML." It should return no results. Sponsored-by: Athens County Public Libraries Signed-off-by: Ray Delahunty Signed-off-by: Lisette Scheer Signed-off-by: Lucas Gass commit 3622664b919a48b430bf2a6edc30e214be17d9b6 Author: David Nind Date: Mon Jun 30 18:29:19 2025 +0000 Bug 40281: Hide the type column on the patron circulation history page This fixes the patron circulation history page so that the type column is hidden. The type column on a patron's circulation history page was hidden by Bug 38954 - Hide checkout type using colvis. However, the commit for Bug 37273 - Add ID column to Agreements table in the ERM, inadvertently reversed hiding the column. Test plan: 1. Check out an item to a patron (for example, 39999000011418 to Mary Burton). 2. Look at the patron's circulation history page (Patrons > Mary Burton > Circulation history), and note there is a 'Type' column shown with a value of 'standard_checkout'. 3. Note that you can't hide the column, from either selecting the 'Columns' or 'Configure' options for the table. 4. Apply the patch, restart everything (restart_all), and clear your browser cache. 5. Repeat step 2. Note that there is now no 'Type' column shown and it is not configurable, from either selecting the 'Columns' or 'Configure' options for the table. Signed-off-by: David Nind Signed-off-by: Laura_Escamilla Signed-off-by: Lucas Gass commit 0c074c694edd4582c0b47d52e8d27553d8955136 Author: Owen Leonard Date: Fri May 23 16:52:00 2025 +0000 Bug 39441: Some staff interface templates have div.container instead of div.container-fluid This patch updates a few templates so that div.container is replaced with div.container-fluid. div.container gives us a fixed maximum width that isn't consistent the rest of Koha. To test, apply the patch and go to the staff interface. - Perform a catalog search which will return multiple results. - In the search results, check multiple results and click "Add to cart." - Click the cart icon in the top menu to trigger the cart popup. - The contents of the cart popup should fill the whole width of the window. - The other instances of this are less noticeable because of how the pages work. These changes are more about consistency: - The OPAC place hold page - The club enrollment process (both in the OPAC and the staff interface) - As long as these interactions work correctly all is good. Sponsored-by: Athens County Public Libraries Signed-off-by: Lisette Scheer Signed-off-by: Lucas Gass commit 81859ce66292170af79d41905fe93127932984d1 Author: Lucas Gass Date: Tue Feb 11 21:27:14 2025 +0000 Bug 38939: Add reservenote column to members/holdshistory.pl To test: 1. APPLY PATCH, restart_all 2. Make some holds for patrons in both the staff client and the OPAC. ( For OPAC turn on OpacHoldNotes ) 3. Make sure you add some notes to each of these holds. 4. Go to the patron account and click on the 'Holds history' tab. 5. Make sure the hold note is there and looks correct. 6. Ensure you can hide the coluimn properly via Table settings. Signed-off-by: Andrew Auld Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit f8a1e44f5cc07b9eebba4d4a63608fd488d9547f Author: Martin Renvoize Date: Wed Jun 25 14:44:34 2025 +0000 Bug 33729: (QA follow-up) Tidy Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 6169b9cdf13fcf1bddb648b25a705d7434e69415 Author: Laura Escamilla Date: Fri Apr 11 14:55:24 2025 +0000 Bug 33729: Added datacolumn for date accessioned Signed-off-by: Emmanuel Bétemps Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 4b18fba00743e1a545d7ce77cfada78ad90e6c38 Author: Laura Escamilla Date: Wed Apr 2 14:34:46 2025 +0000 Bug 33729: Added dateaccessioned to column_settings.yml Signed-off-by: Andrew Auld Signed-off-by: Emmanuel Bétemps Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 5875adce836fd9127a3d4b42b61982051697bf93 Author: Laura Escamilla Date: Wed Apr 2 07:15:59 2025 +0000 Bug 33729: Added date accessioned to items search table Test plan: 1. Apply patch 2. Go to item search 1. Notice that there is now a date accessioned column 2. Export the table into a CSV and notice that there is also a date accessioned column there 3. Sign off and have an amazing day :D Signed-off-by: Emmanuel Bétemps Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 8436f799c1e15879264407ade761314b10f26c51 Author: Emily Lamancusa Date: Wed Dec 4 10:49:32 2024 -0500 Bug 31632: (QA follow-up) Align behavior with order from suggestion If an order is added from a suggestion in the first place, the suggestion automatically changes status to ORDERED, and a notice is sent out to the patron. If a suggestion is linked to the order after the fact, it should move to ORDERED and notify the patron as well. Signed-off-by: Emily Lamancusa Signed-off-by: Aleisha Amohia Signed-off-by: Lucas Gass commit ef271e8bd5a3ffa2a93846404b7ba7690344fe5e Author: Emily Lamancusa Date: Wed Dec 4 10:43:43 2024 -0500 Bug 31632: (QA follow-up) Adjust TT filters and remove extra form-submit.js Signed-off-by: Emily Lamancusa Signed-off-by: Aleisha Amohia Signed-off-by: Lucas Gass commit 73de7c716e809843ee86b38c2c4b753823468342 Author: Aleisha Amohia Date: Mon Sep 2 23:55:00 2024 +0000 Bug 31632: (follow-up) CSRF protection for linking order to suggestion Signed-off-by: Andrew Fuerste Henry Signed-off-by: Emily Lamancusa Signed-off-by: Lucas Gass commit 8643b6c0fd64cb6d3d44fef1983138bae8eae4ca Author: Tomás Cohen Arazi Date: Wed Aug 7 18:19:06 2024 -0300 Bug 31632: (follow-up) Simplify link text Signed-off-by: Tomas Cohen Arazi Signed-off-by: Andrew Fuerste Henry Signed-off-by: Emily Lamancusa Signed-off-by: Lucas Gass commit 7546669920885f9943952ee389290d0d578f9279 Author: Aleisha Amohia Date: Tue Jul 23 02:50:29 2024 +0000 Bug 31632: Link a suggestion to an existing order This enhancement allows library staff to link an order (in an unclosed basket, or a standing order) to an accepted suggestion. To test: 1) In the staff interface, go to Suggestions and create at least two suggestions. 2) Mark at least two suggestions as Accepted. 3) Go to Acquisitions, create a vendor if you don't have one already. 4) Have or create two baskets - one should be standing, and one not standing (normal). 5) In the normal basket (not standing), add an order from any source but NOT from a suggestion. 6) When you save the order, there should be a new link in the Modify column of the Orders table - "Search for suggestion to link". Click this. 7) Choose one of your suggestions to link to the order. 8) You should be redirected back to the basket. Confirm your order has been correctly linked to the suggestion. Confirm there is no link to "Search for suggestion to link" for this order now that a suggestion has already been linked. 9) Add another order to this basket from any source but NOT from a suggestion. 10) Close the basket. Confirm there is no link to "Search for suggestion to link" because the basket is closed, but you could reopen the basket to link the order if you wanted to. 11) Go to Baskets in the left navigation so you can find your standing basket. 12) Add an order to your standing basket from any source but NOT from a suggestion. 13) Go to the vendor and Receive shipments. Receive your standing order and finish receiving. 14) Go to the standing basket. There should be a new unreceived standing order for the record you just received, with a link to "Search for suggestion to link". Click this. 15) Choose a suggestion to link to the order. 16) You should be redirected back to the basket. Confirm your orders for this record have been correctly linked to the suggestion. Sponsored-by: Pymble Ladies' College Signed-off-by: Tomas Cohen Arazi Signed-off-by: Andrew Fuerste Henry Signed-off-by: Emily Lamancusa Signed-off-by: Lucas Gass commit d3783f8859cbcdd3dce01f37c41bf47981200eea Author: Tomás Cohen Arazi Date: Wed Jun 18 11:45:55 2025 -0300 Bug 40164: Add Template::Plugin::JSON dependency Signed-off-by: Tomas Cohen Arazi Signed-off-by: David Cook Signed-off-by: Lucas Gass commit 3f6b63060142f5f9e9af2d53576cb9a5a6b9ce1b Author: Owen Leonard Date: Thu Jun 26 13:46:22 2025 +0000 Bug 40249: "Copy settings" should be "Copy permissions" This patch changes the "Copy sesttings" button on the patron permissions page to return it to its previous text "Copy permissions." This is consistent with related controls on the page. To test, apply the patch and locate a patron in the staff interface. From their checkout or detail page choose More -> Set permissions from the toolbar. In the toolbar of permissions-related controls you should see a button labeled "Copy permissions." Sponsored-by: Athens County Public Libraries Signed-off-by: David Flater Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit 78dbb72ce9c58228b9c62b461afeb0c87127e1e5 Author: Emily Lamancusa Date: Wed Jun 25 10:55:52 2025 -0400 Bug 40030: Escape values when displaying action logs comparison When viewing the action logs for a system preference change, there is an option to view a comparison between different log lines for the same system preference. However, if a system preference value contains HTML markup (e.g. in IntranetUserJS), the diff text is only escaped on sections where a change is marked, so unchanged lines containing HTML markup result in the HTML being rendered. Escape the string values for unchanged sections as well, to ensure that HTML markup in the diff text will not be rendered. To test: 1. Edit IntranetUserJS and add some code that contains HTML markup. For example: $("body").append('Say hi'); 2. Save the preference 3. Make another change to IntranetUserJS that does not affect the line you just added, and save again to ensure there are at least 2 action log lines for comparison 4. Go to Tools > Log viewer 5. Select System Preferences module and Submit 6. Find the log entries for the above two revisions to IntranetUserJS 7. Check the Compare checkboxes on those entries, and click View comparison --> Note that the HTML button is rendered in the comparison 8. Apply patch 9. Clear browser cache and refresh the page 10. Repeat step 7 --> The button is not rendered and the code is displayed as written 11. Make a change to the line you added in step 1 (for example, replace "Say hi" with "Say hello") 12. Refresh the page 13. Check the checkboxes for the newest 2 log entries and click View comparison to view the diff for that last change --> Confirm the change is shown correctly - the button is not rendered and nothing has been double-escaped Signed-off-by: Phil Ringnalda Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit 2c4a89801e72d49debe27284edbe2cfed4f94f9e Author: Emmi Takkinen Date: Thu Apr 24 13:46:27 2025 +0300 Bug 34776: Add unit tests for sub restore_form_values Test that input values don't change when send to the sub restore_form_values. To test prove t/Form_MessagingPreferences.t Sponsored-by: Koha-Suomi Oy Signed-off-by: David Nind Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit c4052b981f82fd22dad8cd2f97bca0184aa4a34a Author: Emmi Takkinen Date: Thu Apr 24 13:45:32 2025 +0300 Bug 34776: Remove unneeded if statement We don't need to check if $op is add_form after error, since this value always changes. Sponsored-by: Koha-Suomi Oy Signed-off-by: David Nind Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit 6cc683b518223479f0c427a8305071fbd9581b5e Author: Marcel de Rooy Date: Wed Apr 23 17:08:11 2025 +0200 Bug 34776: Unit tests Just a small beginning.. Signed-off-by: David Nind Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit 8ed31509ae9053295e2c0d60d1967c16223bda76 Author: Emmi Takkinen Date: Wed Feb 26 08:23:09 2025 +0200 Bug 34776: Restore patron messaging preferences if error occurs during new account creation If error occurs while creating a new patron messaging preferences are either lost or reseted as default fro patron category. This patch adds new method restore_form_values to restore already added messaging preferences. To test: 1. Enable syspref EnhancedMessagingPreferences. 2. Create a new patron but cause an error to prevent it from saving (e.g. add wrong age). 3. Add messaging preferences for patron (if there are default preferences, add also new ones or remove defaults). 4. Attempt to save. => Note that messaging preferences were lost and you need to readd them. 5. Apply this patch. 6. Repeat steps from 2 to 4. => Note that messaging preferences which you added are kept even if error occurs. Sponsored-by: Koha-Suomi Oy Signed-off-by: Jesse Maseto Signed-off-by: David Nind Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit c0a1731715752f43749b964940a3c2b15a31e564 Author: Marcel de Rooy Date: Fri Jun 27 11:26:47 2025 +0200 Bug 39871: (QA follow-up) Do not hardcode nullable check Lets check DBIx's columns_info. Test plan: Try to blank an integer column and a string column. Verify results. Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit 341c93ee5858d35583a69c132afbfa3a2d39a8f8 Author: Emily Lamancusa Date: Wed Jun 25 12:53:02 2025 -0400 Bug 39871: Don't pass undef for non-nullable fields from batch mod tool To test: 1. Set not-for-loan, withdrawn, and damaged statuses on some items 2. Try to edit only those items with the Batch item modification tool 3. Check the checkboxes to clear the withdrawn, not-for-loan, and damaged statuses 4. Click Save 5. View the background job report --> Note that it says the items could not be modified 6. Look at the items --> The statuses have not been cleared 7. Apply patch and restart_all 8. Repeat steps 2-5 --> The background job report says the modifications were successful 9. View the items --> The statuses have been cleared Signed-off-by: David Flater Signed-off-by: Owen Leonard Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit 77fdb32e8fb45ddffd26136e5aadcabd675372fe Author: Tomás Cohen Arazi Date: Wed Jun 25 15:12:01 2025 -0300 Bug 40244: Fix typo in branchoverdues.tt This patch fixes a trivial typo. The text appears in two more places with the right form on the same template. Signed-off-by: Tomas Cohen Arazi Signed-off-by: Owen Leonard Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit 7d7697cd74f7b62717b818cd9aa670364c377313 Author: Caroline Cyr La Rose Date: Thu Jun 26 11:14:20 2025 -0400 Bug 40250: Terminology changes 'preference' to 'system preference' This patch corrects the terminology used in the patron category settings page, changing 'preference' to 'system preference'. https://wiki.koha-community.org/wiki/Terminology#P To test: 1. Apply patch 2. Go to Administration > Patron categories 3. Click 'New category' 4. Check that the hints under 'Checkout charge limit', 'Guarantees checkout charge limit', and 'Guarantors with guarantees checkout charge limit' use 'system preference' and not 'preference' Signed-off-by: Owen Leonard Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit ed5e0d9160eafe7739fca8ced5d20f8ae27eaaca Author: Caroline Cyr La Rose Date: Thu Jun 26 11:08:32 2025 -0400 Bug 40250: Wrong link to NoIssuesChargeGuarantorWithGuarantees in patron category page This patch corrects the link to the NoIssuesChargeGuarantorsWithGuarantees system preference in the patron category creation/modification page. To test: 1. Apply patch 2. Go to Administration > Patron categories 3. Click 'New category' 4. Check that the hint under 'Guarantors with guarantees checkout charge limit' links to the correct system preference 5. Click on the link and make sure it links to the correct system preference Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit 5f2dfbc2266729d5bc54e4cef52c92096ca29f2f Author: Owen Leonard Date: Wed May 21 12:47:06 2025 +0000 Bug 39954: Fix cataloging search results incorrect menu markup This patch corrects the dropdown menu markup in the "Records found in the reservoir" section of the cataloging search results page. It was not upgraded to Bootstrap 5 markup. To test, apply the patch and go to Cataloging. - Click "New from Z39.50/SRU" - Perform a search which will return multiple results. - Close the popup window and perform the same search in the "Cataloging search" header form. - Scroll down to the "Records found in the reservoir" section. - Click the "Actions" menu on one of the results. The menu should look correct. Sponsored-by: Athens County Public Libraries Signed-off-by: Roman Dolny Signed-off-by: Lisette Scheer Signed-off-by: Lucas Gass commit 1e57f5c8d3e491940d0b1d86c7e117fdb515a9a6 Author: Owen Leonard Date: Wed May 21 16:57:41 2025 +0000 Bug 39534: Hide reports subgroup filter if there are no subgroups This patch updates the JavaScript which runs on the list of saved SQL reports, adding a check for report subgroups to the display of the report subgroups dropdown. The patch also hides the subgroups dropdown if there is no saved tab, in which case the tabsInit function doesn't run. To test you should have multiple reports organized in multiple groups and subgroups. See the test plan on Bug 39534. - Go to Reports -> Saved SQL reports. - If the page loads with the "All" tab active, there should be no subgroups dropdown. - If the page loads under a different tab, the subgroups dropdown should only show if that group has subgroups. - Switch between the various report group tabs to confirm that the subgroups dropdown is shown or hidden correctly based on the existence of subgroups. Sponsored-by: Athens County Public Libraries Signed-off-by: Anneli Österman Signed-off-by: Lisette Scheer Signed-off-by: Lucas Gass commit 3e7c839714b5ede65495be0aea4adff1033b5ae6 Author: Mason James Date: Sat May 31 11:09:55 2025 +1200 Bug 40039: Add production enhancements to build-git-snapshot tool this patch adds some useful features to allow the build-git-snapshot tool to build production packages the patch adds the following options: --urgency, -u the urgency string for the resulting package. Default is '$urgency'. --incr, -i set debian revision (default = '-1') --(no)autochangelog whether or not to update the debian/changelog file. Default is to update it. note: this patch does not change any of the existing behaviour of the tool test plan to come... Signed-off-by: Tomas Cohen Arazi Signed-off-by: Lucas Gass commit f2c5ce20eeb1ceca274f8f1e64b3670cfc2939d7 Author: Tomás Cohen Arazi Date: Thu Jun 26 17:08:00 2025 -0300 Bug 40254: Regression tests This patch makes the tests related to `can_place_holds` cover more use cases, and highlight an underlying issue in the controller. Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit afd00523a38baf9f2733d1330adfef7ce009bc62 Author: Tomás Cohen Arazi Date: Thu Jun 26 17:08:11 2025 -0300 Bug 40254: Fix error in overrides check allowing too much This patch fixes a subtle (yet naive) error making the controller not care about blocking conditions if they were more than one and the first one was overridden. To test: 1. Apply the regression tests 2. Run: $ ktd --shell k$ prove t/db_dependent/api/v1/holds.t => FAIL: Tests fail! Some tests expect a 409 (denied for a conflict) but return a 201! 3. Apply this patch 4. Repeat 2 => SUCCESS: Tests pass! 5. Sign off :-D Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 21f3340442389cce98516d4380d61f952fa46b85 Author: Martin Renvoize Date: Thu Jun 26 15:36:08 2025 +0100 Bug 40079: (follow-up) Improve test coverage and fix undef handling This patch modernizes the Scrubber.t unit test with comprehensive coverage following Koha best practices: - Uses subtest structure for logical grouping - Tests all scrubber types (default, comment, note) - Includes security testing for XSS prevention - Covers edge cases and error handling - Tests new list elements added in previous commits Also fixes C4::Scrubber to handle undef parameters cleanly by treating them as 'default' type instead of generating warnings. Test plan: 1. Run prove t/Scrubber.t 2. Verify all tests pass without warnings 3. Confirm comprehensive coverage of module functionality Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit c5f64db21fd330963013acb8346c0d464f850d7f Author: Martin Renvoize Date: Thu Jun 26 15:18:03 2025 +0100 Bug 40079: (follow-up) Update unit test Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit 9ef8f098d815eba9d4c9ca914dec443a3cd95dfc Author: Martin Renvoize Date: Thu Jun 26 15:07:23 2025 +0100 Bug 40079: (follow-up) Add dl, dt, dd tags to notes profile scrubber Adds support for HTML description list elements (dl, dt, dd) to the 'note' profile in the HTML scrubber configuration. This allows librarians to use description lists in note fields for better structured content presentation. Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit ddad4e81a21985b5c66027b0c7a9e1c84607b7bf Author: Martin Renvoize Date: Thu Jun 5 10:29:41 2025 +0100 Bug 40079: Add ul/ol and li to allowed tags in notes profile This patch add the unordered list, ordered list and list item html tags to the list of allowed tags in C4::Scrubber. Test plan: 1) Add a course reserve and include the following in the public note field:
  • First item
  • Second item
2) View the course details page and note "First item Second item" all appears on the same line (the ul and li tags have been stripped) 3) View the course reserves page and note the same issue in the public notes field of the table display 4) Apply this patch 5) Repeat 2 and 3 and note you now have a bullet pointed list displayed in both places 6) The display of the note on the details page may look mis-aligned.. that will be dealt with on it's own bug Signed-off-by: David Nind Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit f245ad1605b1ce6bb12793f5790352953259b4ad Author: Tomás Cohen Arazi Date: Mon Jun 9 19:42:06 2025 -0300 Bug 39657: Add more checks and overrides to hold creation endpoint This patch adds new behaviors to the `POST /holds` endpoint. It uses the framework we created in the past for overriding policy rules, and add new options: * expired * debt_limit * bad_address * card_lost * restricted * hold_limit Some status codes are changed from 403 to 409. This should be revisited accross the codebase, as I think we made a wrong choice. Happy to review in this bug. The feature makes use of the newly introduced `$patron->can_place_holds()` method, which accepts to be passed through the overrides. To test: 1. Apply this patches 2. Run: $ ktd --shell k$ yarn api:bundle k$ koha-plack --restart kohadev k$ prove t/db_dependent/api/v1/holds.t => SUCCESS: Tests pass! 3. Test the endpoint with the various scenarios using your favourite REST tool (Postman!) 4. Sign off :-D Signed-off-by: Kristi Krueger Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 3c1df8b26b7b32cc81e51f48a1cce20975a94ff4 Author: Tomás Cohen Arazi Date: Mon Jun 9 19:41:40 2025 -0300 Bug 39657: Spec changes Signed-off-by: Kristi Krueger Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit c9ee9e9810a6d790370e60b4e2adb68cb2fb3aff Author: Tomás Cohen Arazi Date: Mon Jun 9 19:41:20 2025 -0300 Bug 39657: Unit tests Signed-off-by: Kristi Krueger Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 9516fe517c3e27c8779c803a2018ebb2e003d74a Author: PhilipOrr Date: Tue Apr 1 09:59:39 2025 +0000 Bug 39498: Correct patron restrictions displays This patch updates the way patron restrictions are displayed in the OPAC and staff interface, with the intention of making the details of each restriction more clear. In the OPAC, a new include file is created to be reused on the holds page and the user summary page. opac-user.pl is updated to allow a parameter to be passed to automatically open the "Overdues" tab. Test plan: 1. Before applying the patch, check how the display is currently. First set syspref PatronRestrictionTypes to "Allow" 2. Add two different new restriction types, fill out both "Code" and "Label" 3. Go to a patron's checkout page and add one of each of these restrictions, but do not fill out the comment field when adding them! 4. Observe that in the checkouts page and details page of the patron, it just says "Restricted since..." and does not show the restriction types. 5. Add another restriction, this time fill out the comment field 6. Observe that now in checkout and detail pages, the labels from the restriction types are listed and the comment shown. 7. Apply patch 8. Go to patron's details and checkout pages and check the restrictions are now displayed correctly, that is the text "with the explanation" is only shown for the restrictions that actually have a comment 8b. Log in to the OPAC with that patron and check they are displayed correctly in their summary page and when the patron is trying to place a hold. 9. Go to a different patron's account and add a restriction without a comment 10. Check it is now displayed correctly 11. Add more restrictions and check they are displayed correctly. Also add an OVERDUES restriction: 11a. Find a patron with an overdue item checked out (or create an overdue checkout on a patron's account) 11b. Go to Tools -> Overdue notice/status triggers 11c. Set up a rule for that patron's category, e.g. "First" -> Delay: 1, make sure to mark the check box for "Restrict" and "Print" 11d. Run misc/cronjobs/overdue_notices.pl 11e. That patron should now also have an OVERDUES restriction 12. Turn PatronRestrictionTypes off again and check the patrons if everything is still displayed correctly 13. Go to another different patron and add a restriction with no comment, check if it is displayed correctly 14. Add another restriction with a comment and check it is displayed correctly 15. Log in to the OPAC with the patron that had OVERDUES restriction and check they are displayed correctly in their summary page and when the patron is trying to place a hold. 16. Same thing for the other patron without the OVERDUES restriction. Signed-off-by: David Nind Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 5e5d53fea294d9a3c5c7b2e7c80ea963c4c9f410 Author: Matt Blenkinsop Date: Wed May 21 09:22:19 2025 +0100 Bug 39951: Fix column filter offsets Test plan: 1) Enable ERM module 2) Create an agreement and a license with a vendor 3) The table filters will be out of sync - Agreements - only the vendor filter is incorrect, it sits above the name column instead of the vendor column - Licenses - all dropdown filter options will be left shifted by one 4) Apply patch 5) yarn js:build 6) Hard refresh the browser 7) All the filters should now be above the correct columns Signed-off-by: Roman Dolny Signed-off-by: Jonathan Druart Signed-off-by: Lucas Gass commit 33032f99a8d47670faa28b229174024b5a6a0a31 Author: Tomás Cohen Arazi Date: Mon Jun 9 15:15:03 2025 -0300 Bug 40101: Make opac-reserve.pl use `$patron->can_place_holds()` Signed-off-by: Tomas Cohen Arazi Signed-off-by: Kristi Krueger Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 61c59ac1b1fc74f6e34c21f906997f00f2533787 Author: Tomás Cohen Arazi Date: Mon Jun 9 13:46:12 2025 -0300 Bug 40101: Add `Koha::Patron->can_place_holds()` This patch adds a new method to the `Koha::Patron` class. As described in the POD, this method makes checks on the patron's current situation and returns a boolean telling if it should be allowed to place holds. This doesn't check specific item/biblio holdability. It only covers patron specific conditions that could prevent holds to be placed. Both in `opac-reserve.pl` and `reserve/request.pl` this checks are all run, and all blocking situations are presented to the UI user. Feedback in community (so far) expressed this is a desirable situation, so that behavior can be retained with the use of the `no_short_circuit` parameter. If `no_short_circuit` is not passed, then the routine will return on the first blocking condition it finds. An `overrides` parameter is added, allowing to be passed a list of strings that match the possible error messages. This way, this method can be asked not to check for patron expiration, for example, and things like that. This is of course designed with the API overrides use case in mind. To test: 1. Apply this patches 2. Run: $ ktd --shell k$ prove t/db_dependent/Koha/Patron.t => SUCCESS: Tests pass! 3. Sign off :-D Signed-off-by: Tomas Cohen Arazi Signed-off-by: Kristi Krueger Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 54f41e0e617977c9e7c296295bbe82e09ef02cda Author: Tomás Cohen Arazi Date: Mon Jun 9 13:44:09 2025 -0300 Bug 40101: Unit tests Signed-off-by: Tomas Cohen Arazi Signed-off-by: Kristi Krueger Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit da3fb17670dc3ca560552bfef62f3541a385e22d Author: Paul Derscheid Date: Wed Jun 25 16:40:59 2025 +0000 Bug 40022: (QA follow-up) Tidy about-team.inc, about.tt Signed-off-by: Lucas Gass commit d66e792215dc5463dcb1019fa7b9135e3986fde8 Author: Martin Renvoize Date: Wed Jun 25 15:31:35 2025 +0100 Bug 40022: Sync teams in Koha, Wiki and release-tools Signed-off-by: Paul Derscheid Signed-off-by: Lucas Gass commit f271368712df7ef45d9ed839180d76596e5b8643 Author: Martin Renvoize Date: Tue Jun 24 17:42:46 2025 +0100 Bug 40022: Condense display by hiding versions under ellipses This patch improves the contributor section display in the about page by implementing a condensed view for version lists. When a contributor has more than 2 versions for a role, only the first 2 are shown with an ellipsis (...) that can be hovered to reveal the remaining versions. The implementation: - Sorts versions in reverse chronological order (most recent first) - Shows first 2 versions directly - Hides additional versions under a hoverable ellipsis using Bootstrap tooltips - Adds CSS styling for the ellipsis with dotted underline and help cursor This makes the contributor lists more readable while preserving access to complete version information. Signed-off-by: Paul Derscheid Signed-off-by: Lucas Gass commit 1159aecb11cbba14b2b43ee57da1bcabc968e68a Author: Martin Renvoize Date: Tue Jun 24 17:19:18 2025 +0100 Bug 40022: Add missing roles to the include This patch adds missing role mappings to the about-team.inc template to ensure all roles defined in teams.yaml are properly displayed. Added role mappings include: - manager_assistants (plural form) - maintainer_assistants (plural form) - maintainer_mentors (plural form) - accessibility_advocates (plural form) - security_manager - meeting_facilitator - social_media - website Also adds display logic for historical roles that may not be present in current teams but appear in contributor lists from teams.yaml. This ensures complete coverage of all team roles across historical and current release teams. Signed-off-by: Paul Derscheid Signed-off-by: Lucas Gass commit 780eb529c198007db401efb3a8a1fc26dc298b08 Author: Martin Renvoize Date: Tue Jun 24 16:50:48 2025 +0100 Bug 40022: Add the 25.11 release team This patch updates the teams.yaml to include the voted in 25.11 release team. Test plan 1/ Check against https://wiki.koha-community.org/wiki/Release_Teams Signed-off-by: Paul Derscheid Signed-off-by: Lucas Gass