commit da08fc5e1a0787869365eee43f68d717564c9d9a Author: David Nind Date: Sun Jan 26 20:03:16 2025 +0000 Bug 31270: (follow-up) Fix description for PatronSelfRegistrationLibraryList Test plan: 1. Check that the updated description for the PatronSelfRegistrationLibraryList system preference makes sense. Signed-off-by: David Nind Signed-off-by: Marcel de Rooy Signed-off-by: Katrin Fischer commit d8c5e63ec70744fd5c388a9ee1d2ad45d3eabfac Author: Nicolas Hunstein Date: Fri Jan 24 13:47:22 2025 +0000 Bug 31270: Terminology - use "self-registration" Standardize on the use of "self-registration" (and variations) for consistency in the OPAC and staff interface, instead of "self registration". Test plan: 1. Check the codebase for occurences of "self reg": . git grep "self reg" . git grep "selfreg" . git grep "Self reg" . git grep "Selfreg" 2. Note the occurences, excluding code comments, previous database updates, and previous release notes. 3. Search the system preferences for "self reg" and "selfreg". 4. Note the occurences in the results for the system preference descriptions (excluding system preference names) for: - PatronSelfRegistrationDefaultCategory - PatronSelfRegistrationEmailMustBeUnique - PatronSelfRegistrationLibraryList - PatronSelfRegistrationPrefillForm 5. Note the system preferences category heading for the OPAC - "Self registration and modification". 6. Apply the patch. 7. Repeat steps 1 to 5. There should now be no occurences (excluding code comments, previous database updates, and previous release notes). Signed-off-by: David Nind Signed-off-by: Marcel de Rooy Signed-off-by: Katrin Fischer commit 37a7222de03d05ac94fc4456b0390e928c470eba Author: Janusz Kaczmarek Date: Wed Jan 15 13:08:19 2025 +0000 Bug 38895: In advanced editor, the fixed data helpers put '#' instead of space in record content When editing a bibliographic record in advanced editor, there are helpers for fixed data coded fields (like 008). Like in the standard editor, empty value (space) is represented by a hash sign. But unlike in the standard editor, the hash sign is not converted into a space but remains as '#' in the saved record. This is obviously wrong. Test plan: ========== 1. Ensure to have EnableAdvancedCatalogingEditor set to 'enable'. 2. Create of edit a record, choosing for one of one-letter codes an empty value (represented by '#' in the helper). 3. Save the record, control in 'MARC preview' that you got a hash sign in the 008 field instead of a space. 4. Apply the patch ; restart all. 5. Open a record in advanced editor, refresh the page to reload the java script (Shift+Ctrl+R or another appropriate shortcut). Edit the 008 field again choosing for one of one-letter codes an empty value. 6. Save the record, control in 'MARC preview' that there is a space and not the hash sign. Sponsored-by: Ignatianum University in Cracow Signed-off-by: Esther Melander Signed-off-by: Marcel de Rooy Signed-off-by: Katrin Fischer commit 117b7eb0eb3003f3d31fca820ee4efde4d14d718 Author: Adolfo Rodríguez Date: Fri Nov 22 10:47:29 2024 +0100 Bug 38515: Keep serial notes when generating next serial. This patch prevents the loss of notes in serials when generating next serial Test plan: 1 Create a subscription, fill the notes field for the serial with Expected status and activate the system preference PreserveSerialNotes 2 Click Generate next 3 Check that the notes from the now Late serial are gone and that the new serial doesn't have notes. 4 Apply patch, restart services 5 Edit the serial with Expected status to fill the notes field. 6 Click Generate next 7 Check that the notes from the now Late serial are kepts and that they have been copied to the new serial. Signed-off-by: David Nind Signed-off-by: Marcel de Rooy Signed-off-by: Katrin Fischer commit 92c65166512c6d0a294df115fdc577e6d16f2923 Author: Owen Leonard Date: Fri Jan 24 15:58:32 2025 +0000 Bug 38964: Fix column span in footer of staff interface account payment page This patch fixes the column span in the table footer rows of the account payment page (pay.tt). I've also added a couple of lines of CSS to style the footer rows. To test, apply the patch and rebuild the staff interface CSS. - In the staff client, locate a patron with charges. - If necessary, go to a patrons "Accounting" tab and use the "Create manual invoice" page to add one or more charges to the account. - Under the "Make a payment" tab there should be one or more footer rows including "Total due." The "Total due" cell should be aligned right, with a grey background. Sponsored-by: Athens County Public Libraries Signed-off-by: Phil Ringnalda Signed-off-by: Lucas Gass Signed-off-by: Katrin Fischer commit 81446a7ce778045bcc9fc021cedcebb37c55e9b9 Author: Lucas Gass Date: Thu Jan 30 20:56:25 2025 +0000 Bug 39003: Fix the tab template variable in opac-user.pl To test: 1. SuspendHoldsOpac to 'allow' 2. Make some holds for a patron 3. Log in as that patron and go to 'Summary' 4. Click the 'Holds' tab 5. No suspend column 6. APPLY PATCH, restart_all 7. Try again, the column should show. 8. Turn off SuspendHoldsOpac, the column should be hidden. Signed-off-by: David Nind Signed-off-by: Marcel de Rooy Signed-off-by: Katrin Fischer commit 322072a4bb020ad7350027bc7048b6d2b318cfed Author: David Cook Date: Thu Jan 30 05:25:21 2025 +0000 Bug 38998: Only show Edit link for DB default SMTP server This change only shows the "Edit" on the smtp_servers.pl page for the "Current default configuratio" if the default configuration can be edited. That is, don't show it when config comes from the code, and do show it when the config comes from the database. Test plan: 0. Apply the patch 1. Go to /cgi-bin/koha/admin/smtp_servers.pl 2. Ensure you delete any SMTP servers you've defined 3. Note that there is no "Edit" button at the bottom of "Current default configuration" 4. Click "New SMTP server" and create a new default server 5. Go to /cgi-bin/koha/admin/smtp_servers.pl 6. Notice how now there is an "Edit" link at the bottom of "Current default configuration" Signed-off-by: Magnus Enger Followed the test plan, works as advertised. Signed-off-by: Marcel de Rooy Signed-off-by: Katrin Fischer commit 5d671511072b8b26737ad663211550425199ebd8 Author: Matt Blenkinsop Date: Fri Jan 31 13:14:24 2025 +0000 Bug 39007: Update API spec and unit test Test plan: 1) Run prove t/db_dependent/api/v1/erm_sushi_services.t - FAIL 2) Apply patch 3) Repeat step 1 - PASS 4) Inspect patch diff and note that last_audit has been added to the API definition Signed-off-by: Paul Derscheid Signed-off-by: Katrin Fischer commit 48aad541cc48a3e304c3c119040d2db75b758150 Author: Andreas Roussos Date: Tue Jan 28 16:00:14 2025 +0000 Bug 38987: Use the correct HTML id attribute Starting with Koha 24.11.01, we can no longer link authorities with other authorities (linking a bibliographic record with an authority still works fine). This affects both MARC21 and UNIMARC instances, and is valid on the main branch, too. This patch fixes that. Test plan: 1) Navigate to Koha's Authorities module and create a new authority (using the 'Default' authority type). In tab 5, expand field 500 by clicking on its description. 2) Launch the Authority finder form by clicking on the small 'Tag editor' button on the far right of subfield 500$a. 3) Click the yellow 'Search' button at the bottom of the page. When the results appear, click on the '+ Choose' button for one of the authorities (any authority will do). Notice that nothing happens and the Authority finder stays open, whereas normally it should close automatically at this point and transfer you back to the authority editor, copying the info from the authority you selected into the subfields of field 500. Press F12 (works in Chrome and Firefox) to launch the Developer Tools of your browser and notice that in the JavaScript console the following error message has been registered: "Uncaught TypeError: e is null" 4) Apply this patch (and restart_all for good measure), then press CTRL-F5 to reload all JS assets. 5) Repeat step 3) above; this time, when you click on the '+ Choose' button the authority finder window will close and the contents of the authority you selected will be copied into the subfields of field 500. Signed-off-by: David Nind Signed-off-by: Lucas Gass Signed-off-by: Katrin Fischer commit ed3481786f2122b731a9465470eff0c2e0a3a38c Author: Fridolin Somers Date: Sat Jan 25 00:02:52 2025 +0000 Bug 38963: Check for existence of biblio object before fetching cover images in the OPAC This patch adds a conditional to ensure the biblio object has been retrieved and assumes no cover images otherwise. This is similar to bug 37425 that fixed the issue for the staff interface. Test plan: 1. Enable the OPACLocalCoverImages system preference. 2. Search in the OPAC (for example, attic). 3. Find the biblionumber for one of the results and delete it from the database using SQL: DELETE FROM biblio WHERE biblionumber=3; 4. Search again. NOTE: Steps 3 and 4 need to be done very quickly to generate the error. I had the terminal open with the SQL already loaded, and the browser also open. 5. Error trace generated: Can't call method "cover_images" on an undefined value at /kohadevbox/koha/opac/opac-search.pl line 702. at /kohadevbox/koha/opac/opac-search.pl line 701 6. Reindex, confirm error is gone: koha-rebuild-zebra -d -f -v kohadev 7. Apply the patch. 8. Repeat steps 2 to 4 - I searched for perl and used biblionumber 13. 9. No error generated 10. Reindex and repeat search and confirm no error. Signed-off-by: David Nind Signed-off-by: David Cook Signed-off-by: Katrin Fischer commit 05ea8ec61c2c480b57f40f660c985c5dd08479f8 Author: Pedro Amorim Date: Fri Jan 24 15:58:43 2025 +0000 Bug 38528: (QA follow-up) Add tests for set_additional_fields with marcfield_mode = 'get' Signed-off-by: Pedro Amorim Signed-off-by: Jonathan Druart Signed-off-by: Katrin Fischer commit 30d0a3176753668b5606a1dd3311afd9d7f31809 Author: Baptiste Wojtkowski Date: Thu Jan 23 17:11:00 2025 +0100 Bug 38528: (follow-up) add test for prepare_cgi_additional_field_values Signed-off-by: Pedro Amorim Signed-off-by: Jonathan Druart Signed-off-by: Katrin Fischer commit f9561c59c255e2f3a52144da9c79196ead5fd676 Author: Pedro Amorim Date: Wed Dec 18 12:09:27 2024 -0100 Bug 38528: Update empty field value logic prepare_cgi_additional_field_values needs to consider a field value as empty, because a MARC get field will always be submitted empty, and then picked up and handled by set_additional_fields accordingly. But because we don't want to polute the database with tons of empty additional fields if many empty repeatable fields were submitted in the UI, the check for empty value still happens, but only after the MARC get check has happen, not before. Signed-off-by: Baptiste Signed-off-by: Pedro Amorim Signed-off-by: Jonathan Druart Signed-off-by: Katrin Fischer commit 489d8a47a339a801d29c947118610ab331d19921 Author: Nicolas Hunstein Date: Wed Jan 15 07:46:22 2025 +0000 Bug 38874: update descriptions of "UpdateItemLocationOnCheckout" and "UpdateItemLocationOnCheckin" updates description "PROC: _PERM_ - causes an item that is in the Processing center to be updated to it's permanent location." to "PROC: _PERM_ - causes an item that is in the Processing center to be updated to its permanent location." to test: - go to Administration/System preferences - check descriptionss for system preferences UpdateItemLocationOnCheckout and UpdateItemLocationOnCheckin - verify descriptions contain "it's" instead of "its" in the place "PROC: _PERM_ ..." - apply patch - verify descriptions have changed to "its" Signed-off-by: Aude Signed-off-by: Emily Lamancusa Signed-off-by: Katrin Fischer commit 7d871e9de34dfa02cc19674a1e1c1ced5be69746 Author: Katrin Fischer Date: Thu Jan 30 17:48:43 2025 +0000 Bug 25711: (QA follow-up) Fix terminology, add form validation and price formatting Signed-off-by: Katrin Fischer commit eecad75fd1eff79a3a7e2adfe8def68d1af199ee Author: Martin Renvoize Date: Sun Jan 12 17:38:26 2025 +0000 Bug 25711: (QA follow-up) Re-base fixes Signed-off-by: Martin Renvoize Signed-off-by: Katrin Fischer commit 171c6797768212df7a681614d48949f4af86e40e Author: Petro Vashchuk Date: Mon Aug 9 17:45:14 2021 +0300 Bug 25711: Move get_effective_expire_charge to Koha::CirculationRules Move get_effective_expire_reserves_charge as a new method in Koha::CirculationRules to retrieve the effective value of the rule, which means it will get the value from existing circulation rule and if it doesn't exist or set to undefined it will get the default value from the preferences. Also added tests for this logic. Signed-off-by: Martin Renvoize Signed-off-by: Katrin Fischer commit 095b67043672ef3d2c22128d849b3850818db9c6 Author: Petro Vashchuk Date: Wed Aug 4 15:19:48 2021 +0300 Bug 25711: Fix existing tests and add new one Add a new test with circulation rule for library_C_code that has set expire_reserves_charge which is 0. In this case 0 should be used as the charge. Also use build_object instead of build to build the koha object. Signed-off-by: Martin Renvoize Signed-off-by: Katrin Fischer commit e374fe685cda797f1b718b1f64472f7cfb018d07 Author: Jonathan Druart Date: Wed Aug 4 10:29:02 2021 +0200 Bug 25711: Wording 'use global' > 'Default' We use 'Default' for useDaysMode already Signed-off-by: Martin Renvoize Signed-off-by: Katrin Fischer commit ae545d821b348fd0caf75af27309a9269a77f033 Author: Nick Clemens Date: Fri Jul 30 13:54:38 2021 +0000 Bug 25711: (QA follow-up) Move tests and disallow blank rule The tests can go where the existing cancellation charge tests are. If we define the default rule we do not need to delete all circulation rules as the itemtypes and branches are all created for the tests The rule should not be saved if blank, this allows simplifying the logic when getting the charge Signed-off-by: Martin Renvoize Signed-off-by: Katrin Fischer commit 22418a5ba818450786e4e782bebacb6a9feb12c6 Author: Martin Renvoize Date: Tue Apr 20 15:14:41 2021 +0100 Bug 25711: (QA follow-up) Refactor to clarify logic At the point where 'ExpireReservesMaxPickUpDelayCharge' can/should kick in, we should already have an item waiting (else what's triggered a pickup delay). As such we can drop the fall through default of using the syspref when we don't yet have an item. We can also save us some calculations and database hits by only calculating the charge value when we've actually been asked to charge. So we also move the block inside the 'charge_cancel_fee' block. Signed-off-by: Martin Renvoize Signed-off-by: Petro Vashchuk Signed-off-by: Martin Renvoize Signed-off-by: Katrin Fischer commit 6f28ffbcc54376cd282897c5abb2c3b535ac555f Author: Petro Vashchuk Date: Thu Sep 5 14:11:25 2024 +0300 Bug 25711: Add ExpireReservesMaxPickUpDelayCharge to circulation rules Add a feature that allows to define ExpireReservesMaxPickUpDelayCharge in circulation rules per specific items/patron categories. When value not found in circulation rules it uses global ExpireReservesMaxPickUpDelayCharge, as it was before this smart-rules feature was introduced. To check the feature after applying the patch: 1) Go to /cgi-bin/koha/admin/preferences.pl and set ExpireReservesMaxPickUpDelay to allow. 1) Go to /cgi-bin/koha/admin/smart-rules.pl circulation rules table and notice the newly added "Expire reserve charge" row. 2) In that row add numerical values to type/patron categories that you will be using later to test this feature. 3) Prepare an item for our next step, pick a biblio that has item with the same item type you altered in smart rules and check it out. 3) Place a hold on that item and set the expiration date as the next day. 4) Check in it after that. 5) Do SQL request to change expiration date manually to "yesterday": in "reserves" table, find the id of the hold that you placed and "UPDATE reserves SET `expirationdate`='2020-07-19' WHERE `reserve_id`=329;" Or alternatively: 5) Wait for tomorrow, change server time or invent a time machine. 6) Run cancel_expired_holds.pl cron job. 7) Check that patron got charged in "accounting" left tab and "transactions" upper tab: your patron should have debt of that amount of fee you assigned in that rule (/cgi-bin/koha/members/boraccount.pl?borrowernumber=...YourPatronID...) 8) You can repeat this with other rules and different numbers/biblio/item types to check that different fees apply according to smart rules. 9) If there's no matching smart rule or smart rule have an empty string as a fee - global ExpireReservesMaxPickUpDelayCharge variable value will be used. 10) But in case if matching rule has zero ("0") as a value - that allows to have no-fee smart-rule results, as a feature. IMPORTANT: Smart-rules filters only applied to item-level holds when item-type for items is known. If there's biblio-level hold, in that case global ExpireReservesMaxPickUpDelayCharge value will be used). Mentored-by: Andrew Nugged Signed-off-by: Martin Renvoize Signed-off-by: Katrin Fischer commit e72ee54eb53a0c6192b3f4d0d5850d1a3396bf7c Author: David Cook Date: Thu Jan 30 05:18:34 2025 +0000 Bug 36008: Use notice_email_address instead of email for SendAlerts issue type This change makes Koha use "notice_email_address" instead of "email" for SendAlerts with a type of "issue". This brings SendAlerts more in line with the rest of Koha Test plan: 0. Apply the patch 1. Create a subscription - Go to http://localhost:8081/cgi-bin/koha/serials/serials-home.pl - Click "New subscription" and follow the prompts / fill out required fields - On the first screen, ensure "Patron notification" says "New serial issue" (You can edit this after creating the subscription if necessary) 2. Click "subscribers" next to "Patron notification: SERIAL_ALERT" 3. Log into the OPAC, go to the bib record for that subscription, click "Subscriptions", and click "Subscribe to email notification on new issues" and click "Yes" on the subsequent screen 4. Edit your patron record and make sure you have an email in "Secondary email" and not "Primary email" 5. Set up a SMTP server for your Koha or some other email delivery mechanism 6. Go to the "Serial collection" for your subscription e.g. http://localhost:8081/cgi-bin/koha/serials/serials-collection.pl?subscriptionid=1 7. Click "Receive" 8. Mark the serial as "Arrived" 9. Click "Save" 10. Note that you receive an email using your Koha user's "Secondary Email" address Signed-off-by: Martin Renvoize Signed-off-by: Katrin Fischer commit 3a5d8d51cac5d7811278002fda44f47d798da893 Author: Jonathan Druart Date: Wed Jan 15 14:30:00 2025 +0100 Bug 38900: Provide info about the problematic strings The translation script explodes without meaningful error when "incorrect" structure is found (edit) Found when working on bug 38714, the translation script can break with an error that does not directly point to the problematic string [13:00:23] Error: Command failed: misc/translator/xgettext.pl --charset=UTF-8 -F -o /tmp/koha-2rwDEm/Koha-opac-bootstrap.pot -f /tmp/koha-2rwDEm/files Can't use an undefined value as a HASH reference at misc/translator/xgettext.pl line 131. at ChildProcess.exithandler (node:child_process:422:12) at ChildProcess.emit (node:events:517:28) at ChildProcess.emit (node:domain:552:15) at maybeClose (node:internal/child_process:1098:16) at ChildProcess._handle.onexit (node:internal/child_process:303:5) at Process.callbackTrampoline (node:internal/async_hooks:128:17) [13:00:23] 'po:update' errored after 992 ms Test plan: 0. Use main and confirm that `gulp po:update --lang LANG` returns successfully 1. Apply the first patch => The error is Can't use an undefined value as a HASH reference at misc/translator/xgettext.pl line 131, <$INPUT> line 80. 2. Apply this patch => The error is now: Incorrect structure found at ./koha-tmpl/intranet-tmpl/prog/en/modules/admin/branches.tt:230: '