Commit Graph

59291 Commits

Author SHA1 Message Date
Owen Leonard 2dea829ba4
Bug 39831: Correct typo in manage-marc-import.tt
This patch corrects a typo in the staged MARC record management
template: "xAction" -> "Action".

To test:

- Go to Cataloging -> Stage records for import.
- Import a batch of MARC records for staging.
- Import the staged batch.
- Go to Cataloging -> Manage staged records.
  - Click the file name of the import to view its details.
    - The label "Action if matching record found:" should be correct.

Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-07 14:29:53 +02:00
Tomas Cohen Arazi 0fc9f4d960
Bug 39741: Make valid-templates.t handle dirs
This patch changes the regex so it doesn't expect the exclusion
parameters to only be files but accept directories too.

The risk of this is we might at some point catch more than we want.

I don't think it is worth spending more time in it, though.

To test:
1. Run:
   $ ktd --shell
  k$ prove xt/author/valid-templates.t
=> SUCCESS: Tests pass!
2. Apply this patch
3. Repeat 1
=> SUCCESS: Tests pass! We don't need to list each individual file
anymore and it will still work!
4. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-06 18:48:27 +02:00
Lucas Gass 1d2813b601
Bug 38356: (QA follow-up) Fix spelling mistake
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-06 18:48:27 +02:00
Emmi Takkinen abf74c4a26
Bug 38356: Check patrons current checkouts separately
If syspref CheckPrevCheckout is enabled, Koha checks if patron
has previously checked out item within timeperiod set in
syspref CheckPrevCheckoutDelay. This however doesn't take into
account cases where item is currently checked out for patron and
they are trying to check out another item from same record (can
be done if syspref AllowMultipleIssuesOnABiblio is enabled). We
should always check if item is currently checked out for the
patron if CheckPrevCheckout is enabled.

To test:
1. Enable syspref CheckPrevCheckout and set CheckPrevCheckoutDelay
as e.g. 10. Also enable syspref AllowMultipleIssuesOnABiblio.
2. Find a record that has been checked out for patron over 10 days ago.
3. Attempt to check out item from same record for same patron.
=> Note that you have to confirm if you want to check out item for
the patron.
4. Find record that is currently checked out for a patron.
5. Attempt to check out item from same record for same patron.
=> Note that item is checked out for patron without confirm message.
6. Apply this patch and restart services if needed.
7. Repeat steps 2. and 3.
=> Confirm that you still have to confirm if you want to check out
item for the patron.
8. Repeat steps 4. and 5.
=> New confirm message "Patron has this title currently checked out:..."
should be displayed and you have to confirm if you want to check out
item for the patron.

Also prove t/db_dependent/Patron/Borrower_PrevCheckout.t

Sponsored-by: Koha-Suomi Oy
Signed-off-by: Felicie <felicie.thiery@biblibre.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-06 18:48:26 +02:00
Jonathan Druart 648d5a5c43
Bug 39775: Remove no-sort def
Not needed.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-06 18:48:26 +02:00
Matt Blenkinsop d323fa4467
Bug 39775: Restore filtering to the serials claims table
This patch implements the 'add_filters' argument for kohaTable() to restore filtering to the serials claims table

Test plan:
1) Navigate to Serials and then Claims (if prompted to create a notice, please do this)
2) If you have no claims listed, return to the serials page and create a new serial (the details of this aren't too important)
3) Return to the serials claims page, try to use one of the filters at the bottom of the table
4) Nothing will happen and the table won't filter
5) Apply patch
6) Hard refresh the browser
7) The filters will now be at the top of the table and should work

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-06 18:48:25 +02:00
Tadeusz „tadzik” Sośnierz 1da28b221a
Bug 39772: Extend background_tasks API to allow for human-readable job names
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-06 18:48:25 +02:00
Tadeusz „tadzik” Sośnierz c2eb2625b2
Bug 39772: Display package names for plugin jobs rather than "unknown" messages
This slightly improves the current situation, where on background_jobs.pl
each plugin job would be displayed as "Unknown job type 'plugin_...'".
After this patch, we display the implementing package name
(sourced from plugins' background_tasks()), which is slightly more
human-friendly and significantly less error-looking.

Test plan:

1. In KTD, install a plugin implementing background jobs (e.g. the KitchenSink)
2. On http://localhost:8081/cgi-bin/koha/plugins/plugins-home.pl,
   enable the plugin and run a tool/report from it
3. Observe ugly job types column on http://localhost:8081/cgi-bin/koha/admin/background_jobs.pl
4. Apply the patch
5. Observe the improved job types on http://localhost:8081/cgi-bin/koha/admin/background_jobs.pl

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-06 18:48:24 +02:00
Fridolin Somers c74a67a8ac
Bug 39734: Remove obsolete call of system preference IntranetmainUserblock
Bug 35153 moved IntranetmainUserblock to additional contents.

Remove call in C4/Auth.pm

Test plan :
Check additional content "IntranetmainUserblock" is still OK ;)

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-06 18:48:24 +02:00
Lucas Gass afa35709d9
Bug 25787: Add unit tests
prove -v t/db_dependent/api/v1/clubs_holds.t

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Pedro Amorim <pedro.amorim@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-06 18:48:23 +02:00
Nick Clemens b1592b4967
Bug 25787: Update club holds to only require place_holds permission
This moves the permission check from top level to the specific place_hold
permission

To test:
 1 - Create a club
 2 - Enroll some patrons
 3 - Find or create a staff user with 'place_holds' permission and catalogue permission
 4 -  Log in as that staff
 5 - Find a book and go to holds tab'
 6 - Search for your club
 7 - Try to place hold
 8 - Nothing happens FIXME we should alert of the 403 error or other
 9 - Apply patch, yanr build, restart_all
10 - Place hold
11 - Success!

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Pedro Amorim <pedro.amorim@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-06 18:48:23 +02:00
Katrin Fischer b2636dee8a
Bug 39835: DBIC schema update
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-06 18:48:22 +02:00
Katrin Fischer 095f5a2c14
Bug 39835: DBRev 24.12.00.038
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-06 18:48:22 +02:00
Jonathan Druart 15b2565b9b
Bug 39835: columns_settings should be tinyint
They are boolean in the schema file already

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-06 18:48:21 +02:00
Jonathan Druart 9e45ef028f
Bug 39835: Add is_boolean for tinyint(1)
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-06 18:48:21 +02:00
Jonathan Druart fcf679b920
Bug 39835: Modify boolean column from int(1) to tinyint(1)
This is part of our guideline and we should enforce it.

This patch also add "is_boolean => 0" for int(1) that are not boolean

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-06 18:48:20 +02:00
Nick Clemens 4800537201
Bug 39389: Don't stringify the system preference value
This bug is caused by the code that is intended to hide the export column when disabled failing
because the value of exports_enabled is "0" and not 0

To test:
1 - Checkout an item to a patron
2 - Disable ExportCircHistory
3 - Load the patron's circulation table on the Check Out tab
4 - Notice no export column
5 - Click 'Export' above the table and you can export
6 - Go to the patron's circulation table on the Details tab
7 - The export column shows
8 - Try to export - JS error
9 - Apply patch
10 - Clear local storage in the browser
11 - Repeat 3-6 - no more export column and you can export
12 - Enable ExportCircHistory
13 - Confirm the circ table on both pages hsows the export column and can be exported
     (You may need to clear local storage again)

Signed-off-by: Magnus Enger <magnus@libriotech.no>
Signed-off-by: Janne <janne.seppanen@lahti.fi>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-06 18:48:20 +02:00
Alexander Blanchard a83c07da19
Bug 33012: Accessibility - Fix OPAC navigation when using the tab key
An accessibility audit highlighted that when logged in you cannot tab
to the log out link in the welcome menu. The search history link in
the same menu was also unable to be tabbed to. These links were also
not able to be reached using arrows.

The links for Your Lists, Private Lists and New List could be reached
using the arrows on the keyboard but not via the tab option.

Test plan:
1) Navigate to the Koha OPAC.
2) Ensure you are logged in.
3) Use tabs to navigate the site.
4) When you reach the Welcome menu press enter.
5) Note that you can tab to 'Your Account' and the 'Clear' icon but not
   to 'Search History' or to 'Log Out'
6) Tab also to the hamburger menu and press enter
7) Note than you can navigate this menu via the arrows on the keyboard but
   not via the tab button
8) Apply patch
9) Repeat steps 1-7
10) Note that you can now tab to all of the above links

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-06 18:48:19 +02:00
Katrin Fischer 8099e118ee
Bug 39618: DBRev 24.12.00.037
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-06 18:48:19 +02:00
Lucas Gass 9276f33d4b
Bug 39618: Add index to borrowers.preferred_name column
To test:
1. APPLY PATCH
2. updatedatabase

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-06 18:48:18 +02:00
Nick Clemens e93057f4fc
Bug 39415: (follow-up) Add 651g to bib heading fields as well
Test plan:
 0 - Apply other patches - reindex your catalog
     perl misc/search_tools/rebuild_elasticsearch.pl -v -d
 1 - Set the prefs AutoLinkBiblios and CatalogModuleRelink to Do
 2 - Create three GEOGR_NAME authorities:
      151$aDismal Swamp
      151$aDismal Swamp$gSouth
      151$aPit of Despair
 3 - In a new bib record, add 651 fields
      651$aPit of Despair
      651$aDismal Swamp
      651$aDismal Swamp$gSouth
 4 - Click Link authorities automatically
 5 - 'Pit of despair' links correct - other records both link to 'Dismal swamp'
 6 - Apply this patch, restart_all
 7 - Click Link authorities automatically
 8 - Dismal Swamp and Dismal Swamp South are correctly linked

Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Matt Blenkinsop <matt.blenkinsop@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-06 18:48:18 +02:00
Nick Clemens 38d552f4cb
Bug 39415: Add subfield g for geographic name authorities
This patch adds the subfield g to the hardcoded list of controlled fields
so that it is no longer ignored

To test:
1 - Edit a GEOGR_NAME authority to add a g subfield to field 151
2 - Search for this authority in Authorities
3 - Don't see g
4 - Apply patch, restart all
5 - Search again, you see g!
6 - Edit a record and link to the authority
7 - g is copied over!

Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Thomas Klausner <domm@plix.at>
Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Matt Blenkinsop <matt.blenkinsop@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-06 18:48:17 +02:00
Martin Renvoize 98e34f7883
Bug 39779: (QA follow-up) Undo revert and instead call .api()
This patch leaves Laura's patch intact for the record, but effectively
reverts it's reversion of bug 38255 in which all ajax DataTables were
converted to a standard kohaTable instantiation structure.

We need a DataTable() api in subsequent uses of the table and not the
jQuery object that kohaTable returns so I update all calls to
saleDataTable to sale_kohaTable.api() which returns us the DataTable()
api instance from the dataTable jQuery object.

Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-06 18:48:17 +02:00
Laura_Escamilla 4e6ac647e3
Bug 39779: Updated table type
To test:
1. In K-T-D set up POS module with a cash register and configure an item for sale.
2. Attempt to add the configured item for purchase. The console log will show: "Uncaught TypeError: table.row is undefined"
3. Apply the patch
4. Refresh the page.
5. Repeat step 2. You are now able to add the configured item for purchase. You can also remove it or go through with the full transaction.
6. Sign off and have an incredible day! :D

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-06 18:48:16 +02:00
Jonathan Druart cbd53ca899
Bug 38944: Fix for Mysql8
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-06 18:48:15 +02:00
Jonathan Druart ea8a81fd68
Bug 39325: Skip codespell check for bullseye
bullseye has 2.0.0-1
bookworm has 2.2.2-1

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-06 18:48:15 +02:00
Matt Blenkinsop 3e68c4cf2e
Bug 38010: (follow-up) Make vendor table columns configurable
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-06 18:48:14 +02:00
Matt Blenkinsop 0a79524c0c
Bug 38010: (follow-up) Fix API spec terminology
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-06 18:48:14 +02:00
Jonathan Druart a41f52530a
Bug 39833: Adjust character_set_client in kohastructure.sql
koha-dump now generates the dump with utf8mb4

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2025-05-05 14:23:32 +02:00
Jonathan Druart 6df775d051
Bug 30888: Remove KEY origincode
koha-dump removes it

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2025-05-05 14:23:31 +02:00
Jonathan Druart 592431aed3
Bug 38689: Correctly place edifact_errors in kohastructure.sql
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2025-05-05 14:03:09 +02:00
Jonathan Druart d6bc8fe713
Bug 38663: DBIC schema changes
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2025-05-05 14:03:08 +02:00
Jonathan Druart ccc84b1a32
Bug 38663: Fix columns order in db_rev
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2025-05-05 14:03:08 +02:00
Jonathan Druart a387c0c381
Bug 39075: DBIC schema changes
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2025-05-05 14:03:07 +02:00
Jonathan Druart 01f842f4a7
Bug 39075: Explicit NOT NULL for timestamp
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2025-05-05 14:03:06 +02:00
Jonathan Druart 0a94b02139
Bug 38010: Embed invoices_count - fix patron deletion from show view
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2025-05-05 10:33:51 +02:00
Jonathan Druart 25a805e8e4
Bug 39826: UTF8-decode vendor interface's password on display
We store an encrypted version of the passwords for vendor's interfaces, but we don't utf8 decode it after it is decrypted

Test plan:
0. Do not apply this patch
1. Create or edit a vendor and add at least one interface with non ascii
   characters, eg. émyPassword❤
2. Go to the detail view of the vendor and click the "Show password"
   link
=> The password is not correctly utf8-decoded
3. Apply this patch, repeat 2
=> The password is correctly displayed
4. Repeat 1 and 2
=> The password is correctly displayed

Note that maybe we should make sure the encrypt_hex is getting a valid
utf8-encoded variable.
2025-05-05 10:17:22 +02:00
Jonathan Druart ef774abc8c
Bug 23875: Fix tests
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2025-05-05 09:51:47 +02:00
Jonathan Druart 2a798dff8c
Bug 38010: Fix xt/api.t
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2025-05-05 09:51:46 +02:00
Jonathan Druart 2f84989a38
Bug 38010: Fix cypress tests - add _count to the mock object
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-02 17:19:33 +02:00
Jonathan Druart b2787045f4
Bug 38010: Fix cypress tests - do not intercept /config
We do not want to intercept /acquisitions/vendors/config
Ideally we should mock it separately

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-02 17:19:33 +02:00
Jonathan Druart 25ec6e70bd
Bug 38010: Add tests for DELETE vendors/{vendor_id}
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-02 17:19:32 +02:00
Jonathan Druart 9d72067523
Bug 38010: Fix vendor deletion tests
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-02 17:19:31 +02:00
Matt Blenkinsop f59817721a
Bug 38010: (QA follow-up) Add default settings to vendor store
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-02 17:19:30 +02:00
Matt Blenkinsop 48592d9d3d
Bug 38010: Add protection logic to the DELETE endpoint
Amended-by: Jonathan Druart
typo: subsicriptions => subscriptions

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-02 17:19:30 +02:00
Matt Blenkinsop bbc3041a6c
Bug 38010: Translation fix
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-02 17:19:29 +02:00
Matt Blenkinsop fb4f2e42b1
Bug 38010: Migrate to_api logic to GET endpoint
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-02 17:19:28 +02:00
Jonathan Druart c5819f40a8
Bug 38010: Embed baskets+count and subscriptions+count
We don't need to whole list of baskets and subscriptions

(cherry picked from commit 391b4d3b32b57c97bfb7e66ab394020ae7eed0e5)

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-02 17:19:28 +02:00
Jonathan Druart a780f0396f
Bug 38010: Fix LeftMenu
(cherry picked from commit a78af54eebf07a623779f4642bcdad28f35e662f)

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-02 17:19:27 +02:00
Matt Blenkinsop 9105ba1e63
Bug 38010: (QA follow-up) Move syspref values to config endpoint
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-02 17:19:26 +02:00