Commit Graph

57943 Commits

Author SHA1 Message Date
Fridolin Somers 269ad710b2
Bug 39733: Remove system preference delimiter mention in misc/cronjobs/staticfines.pl
Bug 27486 renamed system preference "delimiter" into "CSVDelimiter"

This patch just replaces the commented code with a TODO text

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:17 +02:00
Katrin Fischer 807ba16eb1
Bug 39508: Add newly supported source codes to system preference description
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:16 +02:00
Janusz Kaczmarek 658d2fe0d8
Bug 39508: With OPACAuthorIdentifiersAndInformation, make ISNI and Wikidata identifiers be displayed correctly
At the current, when OPACAuthorIdentifiersAndInformation is on, ISNI
and Wikidata entries in authority 024 field generate empty bullets.

Test plan:
==========
1. Turn OPACAuthorIdentifiersAndInformation on for Identifiers.
2. Edit an authority record adding 024 field(s) for wikidata / ISNI,
   e.g.:
   024 7_ $a 0000000120967858 $1 https://isni.org/isni/0000000120967858 $2 isni
   024 7_ $a Q859 $1 http://www.wikidata.org/entity/Q859 $2 wikidata
3. Go to a linked bibliograohic record in OPAC and see the 'Author
   information' tab. There should be empty bullets under author's
   name.
4. Apply the patch ; restart_all
5. Repeat p. 3. The bullets should be followed by a description and
   link.

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:16 +02:00
Pedro Amorim 891613f515
Bug 39774: Add id to wrapper
This makes it so that the established styling (seen from request details
page on OPAC, authenticated) is also applied here.

To test, before applying patch:
1) Enabled ILLModule and ILLOpacUnauthenticatedRequest
2) Create an unauth OPAC request: logout and visit:
http://localhost:8080/cgi-bin/koha/opac-illrequests.pl?backend=Standard&op=add_form
3) Enter the required fields, select type = 'Chapter', add some metadata info such as 'Place of publication', 'Publisher' and others.
4) Notice how the 'Request details' table is rendered, 'Place of
   publication' and 'Publisher' and misaligned. Apply patch. Refresh.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:15 +02:00
Alexander Blanchard 812a8cd23a
Bug 39547: Required Fields Not Conveyed
An accessibility audit highlighted that the Personal Details form uses required in red
text to indicate when a field is required but this is not also conveyed programmatically
for users with screen readers.
To test:
1) On Koha's staff site, naviagte to Administration
2) Add surname to PatronSelfModificationMandatoryField
3) On the oPac, navigate to Home > Koha > Your Personal Details
4) Notice that under surname there is red text that reads 'required'
5) Right click and inspect the Surname input
6) Notice that the input field does not have a required attribute
7) Apply the patch
8) Repeat the steps above
9) Notice that on inspect, the required attribute is now present
10) Navigate back to the staff site and to Administration
11) Remove Surname from PatronSelfModificationMandatoryField
12) Navigate back to the oPac Home > Koha > Your Personal Details and refresh
13) Inspect the Surname element and notice that the required attribute is gone
14) The same behaviour should be present for all form elements

Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:15 +02:00
Martin Renvoize 29e56b51ee
Bug 39492: (QA follow-up) Update wording with suggested text
This patch updates the wording for the aria-label to that suggested by
David. It clarifies context.

Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:14 +02:00
Alexander Blanchard 8570d716ad
Bug 39492: (follow-up) Add missing HTML filters
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:14 +02:00
Alexander Blanchard ef8b901431
Bug 39492: Accessibility - add aria label to the OPAC browse shelf link
An accessibility audit highlighted that the browse shelf link on a
record's holding page does not provide enough context for visually
impaired users. The suggested solution was to add aria labels to provide
context.

Test plan:
1. Ensure that you have at least one item with a call number.
2. Navigate to the records's page and scroll down to the holdings table.
3. Right click and choose inspect on the 'Browse shelf' link and note
   that there is not an aria label.
4. Apply the patch.
5. Refresh the page and repeat step 3.
6. Note that there is now an aria label that adds context to the browse shelf
   link - it now includes the title of the record, for example:
   ...aria-label="Browse Shelf for Programming Perl /"...

Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:13 +02:00
Lucas Gass b7c32d4fae
Bug 37334: Add search tests
Bug 37334: Adjust number of tests in Items.t

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:13 +02:00
Lucas Gass c7f5a5b729
Bug 37334: Add filter_by_available tests
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:12 +02:00
Lucas Gass 26d933e60b
Bug 37334: Add filter_by_recall test
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:12 +02:00
Lucas Gass fcb2c83ea0
Bug 37334: filter_by_in_bundle tests
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:11 +02:00
Lucas Gass fd6a61a280
Bug 37334: Add ability to filter by in_bundle
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:10 +02:00
Lucas Gass 3834ff48ab
Bug 37334: Fix filter_by_has_recalls
Signed-off-by: Emmi Takkinen <emmi.takkinen@koha-suomi.fi>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:10 +02:00
Lucas Gass e81d1a7f98
Bug 37334: Add filter_by_has_holds tests
Signed-off-by: Emmi Takkinen <emmi.takkinen@koha-suomi.fi>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:09 +02:00
Lucas Gass a9e4aa22da
Bug 37334: Add filter_by_in_transit tests
Signed-off-by: Emmi Takkinen <emmi.takkinen@koha-suomi.fi>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:09 +02:00
Lucas Gass c8400b6ac6
Bug 37334: Add POD
Signed-off-by: Emmi Takkinen <emmi.takkinen@koha-suomi.fi>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:08 +02:00
Lucas Gass b3d0b20d7e
Bug 37334: Add filter_by_checked_out tests
Signed-off-by: Emmi Takkinen <emmi.takkinen@koha-suomi.fi>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:08 +02:00
Lucas Gass b7cb15539e
Bug 37334: Add _status tests
Signed-off-by: Emmi Takkinen <emmi.takkinen@koha-suomi.fi>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:07 +02:00
Lucas Gass 4ab04c4759
Bug 37334: filter_by_available should not return notforloan statues other than 0
Signed-off-by: Emmi Takkinen <emmi.takkinen@koha-suomi.fi>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:07 +02:00
Lucas Gass 1e24524809
Bug 37334: Return all non zero notforloan statuses
Signed-off-by: Emmi Takkinen <emmi.takkinen@koha-suomi.fi>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:06 +02:00
Lucas Gass d7017ae838
Bug 37334: Fix restricted and notforloan filter logic
Signed-off-by: Emmi Takkinen <emmi.takkinen@koha-suomi.fi>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:06 +02:00
Jonathan Druart 92a6e63ab6
Bug 37334: Fix logic for not available
Several major changes here:
* the push @not_availab_itemnumbers for lost, damaged, etc. was totally
  wrong
* not for loan is only for positive values
* restricted can be NULL

Signed-off-by: Emmi Takkinen <emmi.takkinen@koha-suomi.fi>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:05 +02:00
Jonathan Druart a61d0178c6
Bug 37334: Restore filtering holdings per status
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Emmi Takkinen <emmi.takkinen@koha-suomi.fi>

Bug 37334: Fix column offset

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:04 +02:00
Jonathan Druart e8129f5aea
Bug 37334: Allow a column filter to be shown even searchable is off
We do not want to use the usual filtering method here, we are building
the query from "additional filters"

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Emmi Takkinen <emmi.takkinen@koha-suomi.fi>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:04 +02:00
Jonathan Druart c6043c1169
Bug 37334: Allow embed _status for GET /biblio/{biblio_id}/items
To test;

0. APPLY PATCH, restart_all
1. Go to a record details page (e.g. http://localhost:8081/cgi-bin/koha/catalogue/detail.pl?biblionumber=285)
2. Click the 'Show filters' button above the table
3. Now, at the top of the Status column you should see a dropdown to filter by status
4. You'll have to create several item status to test everything.

5. Add some new items/or change some item status to: DAMAGED, WITHDRAWN, NOTFORLOAN, RESTRICTED, and LOST
6. Test the status filter for each of these statuses, ensuring the work correctly.
7. Create more new items and have some that are checked out, ensure that filter works
8. Put some items into transit and make sure the 'In transit' filter works
9. Put some items on hold, both item and bib level. Make sure the 'On hold' filter works.
10. Turn on the USERecalls system preference and make some recalls, both item and bib level. Make sure the 'Recalled' filter works
11. Create some bundles, make sure the 'In bundle' status works.
12. Also make sure that the available filter is working.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Emmi Takkinen <emmi.takkinen@koha-suomi.fi>

Bug 37334: Correct logic for filtering by in_bundle

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:03 +02:00
Lucas Gass da3d4b72dd
Bug 39620: Fallback to GetMarcPrice if nessesary
To test:
1. Have a MRC file with price populated in the 020$c
2. Have nothing the MarcFieldsToOrder or  MarcItemFieldsToOrder sys prefs
3. Create a new basket and import from a new file
4. The price is not imported.
5. APPLY PATCH and restart_all
6. Try again, this time the price should be populated correctly.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:03 +02:00
Fridolin Somers e8dcf3e898
Bug 39827: Fix framework code in edit framework button
In Administration > MARC bibliographic frameworks the "Edit framework" button in tools bar always edits default framework

Test plan :
1) Go to Administration > MARC bibliographic frameworks
2) On any framework except default one click on actions then "MARC structure"
3) In tools bar click on "Edit framework"
4) Check you are editing the correct framework

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:02 +02:00
David Cook eeb86254da
Bug 39567: Run JS change in separate file ESM as per JS1
As per JS1 in the coding guidelines, I've moved the inline JS from
the template into a separate file.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:02 +02:00
Emily Lamancusa 3478e09d41
Bug 39567: Remove form-submit includes from tt files
Now that the form-submit code has been added to the global js-includes
files for both the staff interface and OPAC, it no longer needs to be
included directly in each template file.

To test:
1. Apply patch
2. Clear browser cache
3. git grep "form-submit.js"
--> Confirm that all imports of the form-submit.js asset have been
    removed, and the only results are the comment in global.js and
    staff-global.js

4. Test OPAC > Account page > Renew a checkout to confirm the link
    submission still works as expected in the OPAC
    i. Check out an item to a patron
    ii. Set a known password for that patron
    iii. Log into that patron's account in the OPAC
    iv. Click the "Renew" link next to that checkout in the checkouts
        table on the patron's OPAC account page
    --> Confirm the item is renewed as expected

5. Test some of the following buttons to confirm the link submission
   still works as expected in the staff interface:
    - Bib record > Holds > Revert transit/waiting status on a hold
    - Acquisitions > Basket > Create EDIFACT order
    - Acquisitions > Invoices > detail for a specific invoice > Delete
    - Acquisitions > Invoices > perform actions on invoices using the
                                action drop-down
    - Acquisitions > Invoices > open/close invoices by selecting the
                                checkboxes
    - Administration > Additional fields > Delete an additional field
    - Administration > Background jobs > Cancel a background job
    - Edit an item > scroll up > Actions drop-down > Print label
    - Cataloging > Label creator > Manage label batches > Edit a batch
        > Delete batch
    - Cataloging > Label creator > Manage label batches > Delete a batch
    - Patron account > holds > delete a hold
    - Tools > Patron lists > delete a list from the Actions drop-down
    - Reports > Saved reports > Preview SQL on a report > Delete
    - Reports > Saved reports > Delete a report from the actions drop-down
    - Rotating collections > Delete a collection from the actions drop-down
    - Stock rotations > move item to the next stage
    - Stock rotations > remove item from a rota
    - Stock rotations > Add/remove "In demand"
    - More > Lists > edit a specific list > Edit drop-down > Delete

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:01 +02:00
Emily Lamancusa 984cf190a7
Bug 39567: Include form-submit code from opac-bottom.inc (OPAC)
Import the form-submit.js script in the global includes file for the
OPAC, so that all pages have access to it without needing to
import it directly.

This patch also aligns the OPAC copy of form-submit.js to the staff
interface copy, as the OPAC copy is missing 3 lines to support opening
the link in a new tab (added to the staff interface copy in bug 37192).

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:01 +02:00
Jonathan Druart 9f44cb8a88
Bug 39567: Include form-submit code from js_includes.inc (staff interface)
Import the form-submit.js script in the global includes file for the
staff interface, so that all pages have access to it without needing to
import it directly.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-15 08:34:00 +02:00
Jonathan Druart 79ac18cecc
Bug 38010: Fix cypress tests by mocking more API responses
Jenkins runs the tests on top of the onboarding, there is no acq data

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2025-05-14 13:59:10 +02:00
Katrin Fischer 202d0e1fcc
Revert "Bug 39532: Script debar_patrons_with_fines.pl creates repeat restrictions, uses wrong restriction type"
This reverts commit 94286343c7.

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-13 18:50:47 +02:00
Katrin Fischer 645d769a94
Bug 39837: DBIC schema update
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-13 18:47:07 +02:00
Katrin Fischer ee4d5cd0bd
Bug 39837: DBRev 24.12.00.043
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-13 18:47:07 +02:00
Tomas Cohen Arazi 95c6d19195
Bug 39837: Fix uses of `interface_id`
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-13 18:47:06 +02:00
Tomas Cohen Arazi d68474784e
Bug 39837: Add definition in swagger
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-13 18:47:06 +02:00
Tomas Cohen Arazi fb2a4d99f5
Bug 39837: Rename (aqbookseller_interfaces) column interface_id to vendor_interface_id
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-13 18:47:05 +02:00
Katrin Fischer 74c33953c4
Bug 39838: DBIC schema update
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-13 18:47:05 +02:00
Katrin Fischer a745cf192c
Bug 39838: DBRev 24.12.00.042
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-13 18:47:04 +02:00
Tomas Cohen Arazi c4ea2cdb5b
Bug 39838: Fix uses of `alias_id`
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-13 18:47:04 +02:00
Tomas Cohen Arazi d81636c279
Bug 39838: Add `vendor_alias` definition in swagger
This patch adapts the definition file and also tweaks the attribute
names and descriptions to match our guidelines.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-13 18:47:03 +02:00
Tomas Cohen Arazi f3109d0021
Bug 39838: Rename (aqbookseller_aliases) column alias_id to vendor_alias_id
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-13 18:47:03 +02:00
Nick Clemens 6812b170a6
Bug 39561: Allow users with fast_cataloging to continue after duplicate is found
This patch adds the fast_cataloging permission to those checked when a duplicate is found

Additionally, the barcode was missing from the duplicate check and is now added to be passed forward

To test:
 1 - Create or choose a borrower and grant permissions:
     catalogue
     circulate
     borrowers: list_borrowers
     editcatalogue: fast_cataloguing
 2 - Log in as that patron
 3 - Search for another borrower and go to checkout screen
 4 - Enter random string as barcode to checkout
 5 - Item is not found, click to fast catalogue
 6 - In the editor type into 245$a 'Perl best practices' - or another title that exists in your system
 7 - Get a notice of duplicate with options:
     Yes: View existing items
     No, save as new record
 8 - Clicking 'Yes' will take you to the record details page - you cannot add an item because record is not FA framework
 9 - You can click 'back' to return to the messages
10 - Clicking 'No' will create a new record and take you to the details page - you can add an item (Edit->manage items)
     but barcode has been dropped
11 - Apply patch
12 - Repeate 3-6
13 - You now get options:
     Yes: View existing items (you cannot add items to an existing record)
     No, save as new record
14 - 'Yes' will take you to details view
15 - Click back
16 - 'No' will take you to the edit items screen and populate the barcode
17 - Saving the item should return you to patron and issue item
18 - Repeat again with a staff patron with full permissions and confirm saying 'Yes' completes the fast catalogin workflow as expected

Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-13 18:47:02 +02:00
Kyle M Hall 94286343c7
Bug 39532: Script debar_patrons_with_fines.pl creates repeat restrictions, uses wrong restriction type
The cronjob debar_patrons_with_fines.pl is meant to add a restriction based on a fines threshold.

The problem is that the script adds a MANUAL restriction, which makes no sense. MANUAL restrictions are meant to be manually created, never automatic as this script does.
In addition, they are repeatable, not unique. Every time this script runs, it will add an additional restriction.

There is already a restriction type meant for this type of use case: SUSPENSION
We should change this script to create SUSPENSION restrictions instead of MANUAL restrictions.

In summary, this script should use the unique restriction type SUSPENSION to prevent multiple additional restrictions from being created on each run.

Test Plan:
1) Set up a patron with fines
2) Run misc/cronjobs/debar_patrons_with_fines.pl -c -m "Test message"
3) Note the restriction is created
4) Run misc/cronjobs/debar_patrons_with_fines.pl -c -m "Test message" again
5) Note another restriction is created
6) Delete the restrictions
7) Apply this patch
8) Run misc/cronjobs/debar_patrons_with_fines.pl -c -m "Test message"
9) Note the restriction is created
10) Run misc/cronjobs/debar_patrons_with_fines.pl -c -m "Test message" again
11) Note another restriction is *not* created!

Signed-off-by: Magnus Enger <magnus@libriotech.no>
Signed-off-by: Emmi Takkinen <emmi.takkinen@koha-suomi.fi>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-13 18:47:02 +02:00
Chloe Zermatten f7a74621ad
Bug 39494: Announce status messaging on login page
So that screen readers announce errors, add a role attribute set to "alert" and a aria-live attribute set to "assertive".

Since the page reloads on each login attempt, the page will effectively be loaded with both attributes set (if there is an error) and so screens readers should be able to detect and announce the message.

Test plan:

1) On the Koha OPAC, navigate to Home > Log in to your account
2) Attempt to login, entering an incorrect password
3) Inspect the HTML, and notice that the relevant element now has a role attribute set to "alert" and an aria-live attribute set to "assertive".

Repeat steps 2-3, but instead of an incorrect password error, trigger:
A) a timeout error
B) a different IP address error
C) a too many login attempts error
D) an authorisation error (where we are authenticating with a third party)
E) a shibboleth authentication error
F) a CAS login error
G) an invalid username/password error for an anonymous patron
H) an anonymous patron error
I) a password expired error

Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-13 18:47:01 +02:00
Lucas Gass 6b80dec84d
Bug 39604: Remember cancelreserve choice when remembering patron for session
To test:
1. Put a few items on hold and make note of the barcodes.
2. Check out one of the items to a patron who doesn't have the hold
3. Check the cancel hold radio button
4. Also check the Remember for the session for this patron
5. Click 'Yes, check out'
6. Notice the item is checked out and the hold is cancelled
7. No checkout another on hold item to the same patron
8. No confirm screen ( good )
9. The item is checked out ( good )
10. The hold is not cancelled. ( bad )
11. APPLY PATCH and restart all
12. Try steps 1 - 9 again. This time the 2nd hold should be cancelled.

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-13 18:47:00 +02:00
Nick Clemens 574bd4f1fa
Bug 39503: Collapse thesaurus if value in 008_/11 = 'z' and 040 $f
With bug 30280 and subsequent patches we attempt to respect the
thesaurus indication when linking with LinkerConsiderThesaurus on.
However, there are still cases when we link wrong.

This happens when thesaurus in bibliographic field 6XX is defined by
subfield $2. In such a case the authority record should have 008/11 = 'z'
and, according to https://www.loc.gov/marc/authority/ad008.html
(cf. comment for 008/11 = 'z': "A MARC code for the conventions used to
formulate the heading *may* be contained in subfield $f"), may or may have
thesaurus declared in 040 $f.

This is why we make a second search attempt in C4::Heading::_search,
but doing so we have to make sure that the resulting authority
record has not a different thesaurus declared in 040 $f. (Note
that 008/11 and 040 $f are indexed with  the same search
field: subject-heading-thesaurus. So we search for the
second time in the same search field but with
'notdefined' == 008/11='z' instead of the original
thesaurus taken from subfield $2 of the bibliographic
field 6XX.) This means we have to explicitly check the
content of 040 $f of the resulting authority record.

Test plan:
==========
1. Turn on the LinkerConsiderThesaurus systempreference.
2. Create an authority record (e.g. TOPIC_TERM) with 008/11 = 'z' and
   040 $f containing a thesaurus indication (e.g. 'kaba'), and a term
   in field 150 $a (e.g. Early music).
3. Edit a bibliographic record: in field 650 put 2nd indicator '7',
   the term 'Early music' in $a, and a different thesaurus code in $2
   (e.g. 'dbn'). Click the 'Link authorities automatically' button.
   Note that 650 'Early music' (dbn) has been linked with and authority
   record 'Early music' (kaba). This is wrong.
4. Apply the patch ; restart_all ; reindex ES for authorities with:
   koha-elasticsearch --rebuild -d -a kohadev
5. Repeat p. 3. Now the 650 'Early music' (dbn) has not been linked to
   an authority record (650 - No matching authority found.)

Signed-off-by: Janusz Kaczmarek <januszop@gmail.com>
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-13 18:47:00 +02:00
Janusz Kaczmarek b15d06714d
Bug 39503: Unit tests
NB, some previous test had to be adjusted to make it posible to call
search_auth_compat in _search and properly interpret its results.

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-13 18:46:59 +02:00