]> git.koha-community.org Git - koha.git/log
koha.git
9 days agoBug 37505: (QA follow-up) Adjust tests
Emily Lamancusa [Mon, 21 Oct 2024 13:32:11 +0000 (09:32 -0400)]
Bug 37505: (QA follow-up) Adjust tests

Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
9 days agoBug 37505: (QA follow-up) Don't log return stat if ignore_localuse and no checkout
Emily Lamancusa [Mon, 21 Oct 2024 12:52:21 +0000 (08:52 -0400)]
Bug 37505: (QA follow-up) Don't log return stat if ignore_localuse and no checkout

Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
9 days agoBug 37505: Remove onloan check when checking out to stats patron
Lucas Gass [Thu, 29 Aug 2024 21:54:57 +0000 (21:54 +0000)]
Bug 37505: Remove onloan check when checking out to stats patron

To test:
1.  Create a Statistical Patron
2.  Set BlockReturnOfLostItems to Block.
3..  Mark an item as lost
4. Check it out to the Statistical Patron. You should see the message "Item was lost, cannot be returned."

5. Set BlockReturnOfWithdrawnItems to Block.
6.  Mark an item as withdrawn
7. Check it out to the Statistical Patron. You should see the message "Item was withdrawn, cannot be returned."
8. Turn off BlockReturnOfWithdrawnItems, check out the same item to the Statistical Patron. You should see a message "Item was withdrawn."

9. Place an item on hold.
10. Check it out to the Statistical Patron
11. See the message "Item on hold, please checkin."

12. Make sure  ClaimReturnedLostValue is set to a lost value
13. Claim a return, making sure it is not still checked out to the patron
14. Checkit it out to the Statistical Patron.
15. See the message "Item claimed returned, please checkin."

16. Have an item on a regular patron account that has been recalled.
17. Checkit it out to the Statistical Patron.
18. See the message "Item can fill a recall, please checkin."

Signed-off-by: Kelly <kelly@bywatersolutions.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
9 days agoBug 38211: frameworkcode must be set before read
Jonathan Druart [Mon, 21 Oct 2024 09:51:45 +0000 (11:51 +0200)]
Bug 38211: frameworkcode must be set before read

It's a stupid global variable, we MUST have this init line BEFORE we
read it!

Test plan:
See the other bugs linked with this one, confirm the test plan for all
of them still pass.

Test plan for this specific bug report:
1. Cataloging - New record -> Audio Cassettes, CDs
2. Fill in the required fields and save
3. Switch to 'Normal', Edit - Edit record
4. Note that 001 and 003 are not visible, and the Settings menu has a checkmark by Audio Cassettes, CDs
5. Click the browser Back button, then Edit - Edit record
6. Note that 001 and 003 are not visible, and the Settings menu has a checkmark by Audio Cassettes, CDs

Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 38053: Change description of DefaultLongOverduePatronCategories and DefaultLongOv...
Caroline Cyr La Rose [Tue, 1 Oct 2024 15:23:48 +0000 (11:23 -0400)]
Bug 38053: Change description of DefaultLongOverduePatronCategories and DefaultLongOverdueSkipPatronCategories system preferences

This patch changes the description of the DefaultLongOverduePatronCategories
and DefaultLongOverdueSkipPatronCategories system preferences
to make it clearer it has to do with the **long overdues** process
and not just the overdues process. It also highlights the
warning by making it bold.

To test:
1. Apply patch
2. Go to Administration > System preferences > Circulation >
   Lost item policy
3. Read the description for DefaultLongOverduePatronCategories
   and DefaultLongOverdueSkipPatronCategories, make sure it
   makes sense, that the grammar and spelling is OK

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 38053: Change section of DefaultLongOverduePatronCategories and DefaultLongOverdu...
Caroline Cyr La Rose [Tue, 1 Oct 2024 15:13:59 +0000 (11:13 -0400)]
Bug 38053: Change section of DefaultLongOverduePatronCategories and DefaultLongOverdueSkipPatronCategories system preferences

This patch moves the DefaultLongOverduePatronCategories and
DefaultLongOverdueSkipPatronCategories system preferences to
the Lost item policy section of the circulation preferences,
to be with the other DefaultLongOverdue system preferences.

To test:
1. Apply patch
2. Go to Administration > System preferences > Circulation > Lost
   item policy
   --> The two system preferences should be there with the other
       ones

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36055: Simplify MARC21 Fast Add framework
Caroline Cyr La Rose [Fri, 9 Feb 2024 22:17:21 +0000 (17:17 -0500)]
Bug 36055: Simplify MARC21 Fast Add framework

This patch removes or hides a lot of unecessary fields from the
MARC21 Fast Add framework, notably subfields $6 and $8 which are
used only in advanced cataloging. Fast Add is meant to add an item
fast, while the patron is waiting, in order to check it out to them.
There is no need to enter details, only what is necessary to
identify and check out the item.

To test:
1. Go to Circulation > Fast cataloging
   --> Notice all the fields present
2. Fill out mandatory fields (000, 008, 245$a, 942$c)
3. Click 'Save'
   --> Notice all the item fields present
4. Apply patch and reset
5. Redo steps 1-3
   --> There should be a lot less fields

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Esther <esther@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 37412: Style placeholder text in the OPAC
Owen Leonard [Fri, 19 Jul 2024 13:29:34 +0000 (13:29 +0000)]
Bug 37412: Style placeholder text in the OPAC

This patch adds a custom style to input placeholder text so that it is
visibly different from the style of text entered in the input.

To test, apply the patch and rebuild the OPAC CSS
(https://wiki.koha-community.org/wiki/Working_with_SCSS_in_the_OPAC_and_staff_interface)

Go to the OPAC and check the appearance of the placeholder text in the
main search bar. Sign off if the vibes are right.

Sponsored-by: Athens County Public Libraries
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 37868: Remove C4::Reserves::ToggleSuspend
Jonathan Druart [Mon, 9 Sep 2024 12:53:05 +0000 (14:53 +0200)]
Bug 37868: Remove C4::Reserves::ToggleSuspend

We can easily replace the calls by ->suspend_hold and ->resume.

Test plan:
No behaviour changes expected.
Confirm that you can still suspend and resume holds (OPAC+staff)

Signed-off-by: Olivier V <olivier.vezina@inLibro.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36725: Add Current publication frequency 310$a to Elasticsearch index mappings
Alex Buckley [Sun, 12 May 2024 22:02:46 +0000 (22:02 +0000)]
Bug 36725: Add Current publication frequency 310$a to Elasticsearch index mappings

Test plan:
1. Start up KTD with Elasticsearch: ktd --es8 up

2. Apply this patch and restart all services (restart_all)

3. Reset the mappings: Administration > Catalog > Search engine configuration (Elasticsearch) > Reset mappings (at the bottom of the page)

4. Reindex: koha-elasticsearch --rebuild -d -b -a kohadev

5. Alternative to steps 3 and 4: reset_all

6. Add a new record using the default framework and put a term in 310$a, such as 'Annual'.

Sponsored-by: Education Services Australia SCIS
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 27123: (QA follow-up) Tidy modborrowers.pl
Kyle M Hall [Fri, 27 Sep 2024 15:04:23 +0000 (15:04 +0000)]
Bug 27123: (QA follow-up) Tidy modborrowers.pl

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 27123: (follow-up) Add note to warn about removing all messages
Owen Leonard [Thu, 26 Sep 2024 19:36:25 +0000 (19:36 +0000)]
Bug 27123: (follow-up) Add note to warn about removing all messages

This patch adds a note to the batch patron modification form in order to
warn the user about removing multiple messages at once.

To test:

- Apply the patch and go to Tools -> Batch patron modification
- Enter or select multiple patrons and submit them for modification
- On the page previewing the list patrons for modification, scroll down
  to the form.
- Find the field for "Message" and confirm that there is a note next to
  the checkbox.

Signed-off-by: George Williams <george@nekls.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 27123: Add messages to batch patrons modification
jeremy breuillard [Tue, 22 Feb 2022 13:03:08 +0000 (14:03 +0100)]
Bug 27123: Add messages to batch patrons modification

With this patch you can write or delete circulation messages on the
batch patrons modification form

Test plan:
1)Go to Home > Tools > Batch patron modification
2)Write one or more card numbers to access the modification form
3)Notice the input you can interact with
4)Apply patch and repeat 1) & 2)
5)Notice the new input 'Message:' which appeared down the form
6)Write a message and choose a type (opac or intranet)
7)Save & notice the new 'Message' column filled up with what you wrote
  before
8)To delete: back on the modification form - check the checkbox beside
  the input - save again

Signed-off-by: Valerie Burnett <valerie@bywatersolutions.com>
Signed-off-by: George Williams <george@nekls.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36054: Don't mark MARC21 005 as mandatory in frameworks now that AddBiblio and...
Phil Ringnalda [Fri, 7 Jun 2024 20:03:16 +0000 (13:03 -0700)]
Bug 36054: Don't mark MARC21 005 as mandatory in frameworks now that AddBiblio and ModBibilio will set it no matter what

With bug 35993, both AddBiblio and ModBiblio will add a missing 005 or update
an existing 005 to the current timestamp. That makes setting it as mandatory in
bib frameworks pointless: whether you remove it, blank it, or set it, what you
do doesn't matter because it will be set, and set to something different than
what you set.

Test plan:
1. Apply patch, reset_all
2. Administration - MARC bibliographic framework
3. In the Default framework row, Actions - MARC structure
4. In the 005 row, verify the Mandatory column says No
5. 005 row, Actions - View subfields
6. For the @ subfield, verify constraints says Not mandatory

Extra credit: Set EnableAdvancedCatalogingEditor to Enable and in both editors
try to save a record without a 005 or with one set to your choice of value, and
then in the MARC preview verify that no matter what there is always a 005 with
a value other than yours. Bonus for exporting a record, editing it with an
external editor to remove the 005, reimporting it, and verifying that the
imported record has a 005.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 18273: Do not insert authority if there already are duplicates in koha
Matthias Meusburger [Wed, 15 Mar 2017 16:10:45 +0000 (16:10 +0000)]
Bug 18273: Do not insert authority if there already are duplicates in koha

Test plan:

1) Create an authority with a unique value in a searchable field, for instance a PERSO_NAME authority with 'BZ18273' in the 100$a field.

2) Create a second authority with the same value in the same field.

3) Export this second authority as iso2709 (Save -> MARC (Unicode/UTF-8))

4) Run bulkmarcimport.pl with the following parameters:
perl bulkmarcimport.pl -a --file=/kohadevbox/koha/auth-xxxx.utf8 --match='Heading,100$a' -l /kohadevbox/koha/bulk.log

5) Check in the log file and/or through search that a third authority has been added (despite using the --match option)

6) Apply the patch

7) Delete the 3 authorities and repeat step 1 to 4.

8) Check that a third authority has not been added (--match worked)

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 37845: Remove C4::Members::DeleteExpiredOpacRegistrations
Jonathan Druart [Thu, 5 Sep 2024 15:06:04 +0000 (17:06 +0200)]
Bug 37845: Remove C4::Members::DeleteExpiredOpacRegistrations

This patch remove the subroutine C4::Members::DeleteExpiredOpacRegistrations.
The code is moved and adjusted to Koha::Patrons.
We now have 2 new methods:
  Koha::Patrons->filter_by_expired_opac_registrations
  Koha::Patrons->filter_by_safe_to_delete

Test plan:
Run the misc/cronjobs/cleanup_database.pl script with the
--del-exp-selfreg (as well as --verbose and --confirm) and confirm that
it behaves as expected

Note that it improve the output of the verbose mode and now tell if the something
is wrong with the config (syspref not set)

Signed-off-by: Sukhmandeep Benipal <sukhmandeep.benipal@inLibro.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 37844: Remove C4::Members::DeleteUnverifiedOpacRegistrations
Jonathan Druart [Thu, 5 Sep 2024 14:52:38 +0000 (16:52 +0200)]
Bug 37844: Remove C4::Members::DeleteUnverifiedOpacRegistrations

This patch removes the subroutine
C4::Members::DeleteUnverifiedOpacRegistrations and use the
Koha::Objects->filter_by_last_update method that is used for the other
flag in this script.

Test plan:
Confirm that --del-unv-selfreg works the same before and after this
patch applied

Signed-off-by: Sukhmandeep Benipal <sukhmandeep.benipal@inLibro.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 38197: Remove old version of Bootstrap JS left behind during upgrade
Owen Leonard [Thu, 17 Oct 2024 14:46:19 +0000 (14:46 +0000)]
Bug 38197: Remove old version of Bootstrap JS left behind during upgrade

This patch removes an old version of Bootstrap JS which should have been
removed by Bug 35402. The correct Bootstrap JS file is at
koha-tmpl/opac-tmpl/lib/bootstrap/js/bootstrap.bundle.min.js

This patch should have no effect on any OPAC functionality.
Bootstrap-related features should still work: Dropdown menus, modals,
etc.

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>
10 days agoBug 38056: Search term after deleting an authority shouldn't be URI encoded
Phil Ringnalda [Wed, 2 Oct 2024 02:01:39 +0000 (19:01 -0700)]
Bug 38056: Search term after deleting an authority shouldn't be URI encoded

Now that deleting an authority record uses a form, rather than building up a
URL in JavaScript, using the filter | uri on the value (confusingly named
value) which passes along the search terms to reload after deleting results
in a bad search. It should instead use the filter | html.

Test plan:
 1. Without the patch, top menu - Authorities
 2. The default search, Main heading ($a only), Authority type Default,
    Operator contains, Order by Heading A-Z will work fine. You need to a
    search which will return more than one of the same thing (not hard in
    ktd) - for MARC21 search for a professional
 3. You should get five results. For one of them, Actions - Delete - Confirm
    that you meant to click it
 4. You now have a%20professional in the search box, and search results for
    whatever ElasticSearch thinks a% means. It's certainly not professional -
    you can change that term to any random string and get the same results
 5. Apply patch, top menu - Authorities
 6. Repeat steps 2 and 3, but this time after deleting another result,
    you will get a professional without the %20 in the search box, and
    your results will be the remaining Addison-Wesley professional computing
    series authorities

Sponsored-by: Chetco Community Public Library
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>
10 days agoBug 37850: Add branchillemail to libraries public REST endpoint
Pedro Amorim [Thu, 5 Sep 2024 18:47:20 +0000 (18:47 +0000)]
Bug 37850: Add branchillemail to libraries public REST endpoint

To test, before applying patch:
1) Visit <opac_url>/api/v1/public/libraries
2) Notice illemail is not shown for each library
3) Apply patch. Restart plack
4) Repeat 1). Notice illemail is now shown for each library

Signed-off-by: Maryse Simard <maryse.simard@inlibro.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36315: ILSDI GetRecords use AuthorisedValues cache for items.location
Didier Gautheron [Thu, 14 Mar 2024 13:51:35 +0000 (14:51 +0100)]
Bug 36315: ILSDI GetRecords use AuthorisedValues cache for items.location

Speedup GetRecords by using Koha cache for items.location authorised value.

Test plan
1) Enable ILS-DI http://localhost:8081/cgi-bin/koha/admin/preferences.pl?op=search&searchfield=ILS-DI
2) Download a record   http://localhost:8080/cgi-bin/koha/ilsdi.pl?service=GetRecords&id=1
3) Note location_description
4) Apply patch
5) Re download the same record
6) Verify location_description are the same

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36798: DBRev 24.06.00.037
Katrin Fischer [Mon, 21 Oct 2024 10:25:37 +0000 (10:25 +0000)]
Bug 36798: DBRev 24.06.00.037

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36798: Unit tests
Janusz Kaczmarek [Thu, 16 May 2024 13:29:10 +0000 (13:29 +0000)]
Bug 36798: Unit tests

Added unit tests.

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36798: Add ability to search across all ISBNs using the ISBN-search
Janusz Kaczmarek [Thu, 16 May 2024 11:29:04 +0000 (11:29 +0000)]
Bug 36798: Add ability to search across all ISBNs using the ISBN-search

With the Bug 36574 we added a new ES search field isbn-all which makes it
possible to find records with the content of the subfield 020 $z
(invalid/cancelled ISBN) in general search (by keyword).  But still, when
performing a search with ISBN-search these records will not be found.
Since some libraries deliberately want to find records with only 020 $a
with ISBN-search, a system preference would be needed here to be able to
customize the ISBN search.

The same for ISSNs, with one system preference.

Test plan:
==========
(ISBN)
------
1. Have the ktd with with ES enabled.
2. With standard ktd test data, try to perform a ISBN search from Advanced
   search for 9780141930848.  You should get no results.
   In the general search input field (on the main page) try a search
   nb:9780141930848 and/or isbn:9780141930848 - you should get no results.
3. Apply the patch, restart_all.
4. Repeat p. 2 -- you should still get no results.
5. Enable SearchCancelledAndInvalidISBNandISSN syspref.
6. Repeat p. 2 -- now you should get one record (having 9780141930848
   in 020 $z).

(ISSN)
------
0. Return to main, delete the bug branch, reset_all == start from fresh.
1. Have the ktd with with ES enabled.
2. With standard ktd test data, try to perform a ISSN search from Advanced
   search for 1089-6891.  You should get no results.
   In the general search input field (on the main page) try a search
   ns:1089-6891 and/or issn:1089-6891 - you should get no results.
3. Apply the patch, restart_all.
   If you have had to apply also the bug 36727, reindex ES with:
   koha-elasticsearch --rebuild -r -d kohadev
   (there is a modification of mappings.yaml)
4. Repeat p. 2 -- you should still get no results.
5. Enable SearchCancelledAndInvalidISBNandISSN syspref.
6. Repeat p. 2 -- now you should get one record (having 1089-6891
   in 022 $y).

Sponsored-by: Ignatianum University in Cracow
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36798: Add 'SearchCancelledAndInvalidISBNandISSN' system preference
Janusz Kaczmarek [Tue, 14 May 2024 13:06:05 +0000 (13:06 +0000)]
Bug 36798: Add 'SearchCancelledAndInvalidISBNandISSN' system preference

This patch adds a new system preference SearchCancelledAndInvalidISBNandISSN:
whether to search for cancelled / invalid forms of ISBN/ISSN
when performing ISBN/ISSN search. (By default, with ES, only valid forms,
i.e.  020 $a / 022 $a are considered).

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 37023: Update timestamp when filling a hold
Johanna Raisa [Tue, 4 Jun 2024 11:44:56 +0000 (14:44 +0300)]
Bug 37023: Update timestamp when filling a hold

This patch updates the timestamp of the hold when it is filled and moved to old_reserves.

Test plan:
1) Apply the patch
2) prove t/db_dependent/Koha/Hold.t

Sponsored-by: Koha-Suomi Oy
Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 37972: (QA follow-up) Add missing filter
Lucas Gass [Mon, 23 Sep 2024 22:11:06 +0000 (22:11 +0000)]
Bug 37972: (QA follow-up) Add missing filter

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 37972: (follow-up) Correct syntax error in opac/opac-user.pl
Paul Derscheid [Mon, 23 Sep 2024 10:14:48 +0000 (10:14 +0000)]
Bug 37972: (follow-up) Correct syntax error in opac/opac-user.pl

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 37972: Allow selection of tab in patron's summary table by query param
Paul Derscheid [Fri, 20 Sep 2024 13:41:26 +0000 (13:41 +0000)]
Bug 37972: Allow selection of tab in patron's summary table by query param

To test:
1) Apply the patch
2) Place a hold on any biblio with the 'koha' patron for example
3) Authenticate in the OPAC with the patron you picked in step 1
4) Open opac-user.pl with the query param 'tab': /cgi-bin/koha/opac-user.pl?tab=opac-user-holds
5) Note that the holds tab in the patron's user summary is automatically selected
6) Sign-off

I'm totally open to renaming the query param, so if you have a suggestion that's more consistent
with the rest of koha, I'm all ears.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36694: Remove HC sticky from js/results-list.js
Victor Grousset/tuxayo [Thu, 18 Jul 2024 00:37:27 +0000 (02:37 +0200)]
Bug 36694: Remove HC sticky from js/results-list.js

It got moved there by bug-36557 after the patches here were written.

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36694: (follow-up) Remove some missed instances
Owen Leonard [Thu, 6 Jun 2024 12:13:38 +0000 (12:13 +0000)]
Bug 36694: (follow-up) Remove some missed instances

This patch removes some missed HCSticky code/mentions as well as the
entry on the About page.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36694: (follow-up) Remove Sticky JS from member-flags.tt
Lucas Gass [Mon, 20 May 2024 17:12:27 +0000 (17:12 +0000)]
Bug 36694: (follow-up) Remove Sticky JS from member-flags.tt

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36694: (follow-up): fix pages where toolbar was not sticky
Lucas Gass [Tue, 14 May 2024 16:39:36 +0000 (16:39 +0000)]
Bug 36694: (follow-up): fix pages where toolbar was not sticky

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36694: Remove remaining HC stick assets
Lucas Gass [Fri, 26 Apr 2024 17:43:35 +0000 (17:43 +0000)]
Bug 36694: Remove remaining HC stick assets

To test:
1. Apply patch and regenrate CSS
   (https://wiki.koha-community.org/wiki/Working_with_SCSS_in_the_OPAC_and_staff_interface)
2. You'll need to check that the 'sticky' header still sticks on each of
   these pages.
3. Do a patron search, the toolbar should stick as you scroll down.
4. In Acquisitions, Add a vendor. The toolbar should stick as you scroll
   down.
5. In Acquisitions, Add a basket. The toolbar should stick as you scroll
   down.
6. Search for a system pref, or go directly to the OPAC category (
   http://localhost:8081/cgi-bin/koha/admin/preferences.pl?tab=opac ).
   The toolbar should stick as you scroll down.
7. Do an authorties search. The toolbar should stick as you scroll down.
8. Go to advanced search. Without doing a search the toolbard should
   stick as you scroll down.
9. Go to item search. Without doing a search the toolbard should stick
   as you scroll down.
10. Do a catlog search. The toolbar should stick as you scroll down.
11. Add a bibliographic record, or edit one. The toolbar should stick
    as you scroll down.
12. Find a patron and go to the permissions page. The toolbar should
    stick as you scroll down.
13. Try each of the other members pages like memberentry.pl,
    moremember.pl, circulation.pl. On each of the pages the toolbar
    should stick.
14. Place multiple holds on a record. From reserve/request.pl the
    toolbar underneath 'Existing holds' should stick.
15. Edit a HTML customization, new item, and page. The toolbar should
    stick.
16. Cataloging >  Automatic item modifications by age > Edit rules. The
    toolbar should stick.
17. Edit a notice, the toolbar should stick.
18. Tools > Log viewer > Submit. UNder Log entries, the toolbar should
    stick.
19. Create some lists and make sure the toolbar sticks.

OPAC:
20. Add many items to an OPAC cart. Make sure the toolbar sticks.
21. Try the OPAC results, the toolbar should stick
22. Add many items to a list, on the OPAC list display the toolbar
    should stick.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36694: Remove HC sticky from OPAC pages
Lucas Gass [Fri, 26 Apr 2024 17:37:52 +0000 (17:37 +0000)]
Bug 36694: Remove HC sticky from OPAC pages

Rebased-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36694: Remove HC sticky from remaining staff pages
Lucas Gass [Fri, 26 Apr 2024 17:01:06 +0000 (17:01 +0000)]
Bug 36694: Remove HC sticky from remaining staff pages

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36694: Remove HC sticky from members/ pages
Lucas Gass [Fri, 26 Apr 2024 16:27:59 +0000 (16:27 +0000)]
Bug 36694: Remove HC sticky from members/ pages

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Rebased-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36694: Remove HC stikcy from cataloguing/ pages
Lucas Gass [Fri, 26 Apr 2024 16:18:13 +0000 (16:18 +0000)]
Bug 36694: Remove HC stikcy from cataloguing/ pages

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36694: Remove HC sticky from catalogue/ pages
Lucas Gass [Thu, 25 Apr 2024 19:58:59 +0000 (19:58 +0000)]
Bug 36694: Remove HC sticky from catalogue/ pages

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36694: Remove HC sticky from preferences.tt/authorities.tt
Lucas Gass [Thu, 25 Apr 2024 19:27:24 +0000 (19:27 +0000)]
Bug 36694: Remove HC sticky from preferences.tt/authorities.tt

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36694: Remove HC sticky from acqui/supplier.tt
Lucas Gass [Thu, 25 Apr 2024 19:18:36 +0000 (19:18 +0000)]
Bug 36694: Remove HC sticky from acqui/supplier.tt

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36694: Set sticky element top to -1px
Lucas Gass [Thu, 25 Apr 2024 16:44:43 +0000 (16:44 +0000)]
Bug 36694: Set sticky element top to -1px

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36694: Add JS observer to detect stuck sticky element
Lucas Gass [Wed, 24 Apr 2024 23:18:15 +0000 (23:18 +0000)]
Bug 36694: Add JS observer to detect stuck sticky element

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36694: Remove HC sticky from acqui/basket.tt
Lucas Gass [Wed, 24 Apr 2024 22:45:50 +0000 (22:45 +0000)]
Bug 36694: Remove HC sticky from acqui/basket.tt

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36694: Remove HC sticky from patron search searchbar
Lucas Gass [Wed, 24 Apr 2024 22:30:33 +0000 (22:30 +0000)]
Bug 36694: Remove HC sticky from patron search searchbar

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36454: (follow-up) Tweak CSS and add restricted status output
Owen Leonard [Tue, 17 Sep 2024 15:40:57 +0000 (15:40 +0000)]
Bug 36454: (follow-up) Tweak CSS and add restricted status output

This patch makes some tweaks to the style of the new information: We can
use the Bootstrap 5 "badge" class and "warning" style to get the
appearance we want.

This patch also adds output of the patron's restricted status if
present.

To test, apply the patch and rebuild the staff interface CSS. Perform a
patron search (from the checkout header search form for instance) and
confirm that a "restricted" badge appears alongside the branch and
expired badge.

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 36454: Add 'expired' information on patron auto complete results
Pedro Amorim [Mon, 16 Sep 2024 08:53:33 +0000 (08:53 +0000)]
Bug 36454: Add 'expired' information on patron auto complete results

Test plan:
1) Alter the 'Expiry date' of any patron.
2) Search for that patron on any search input that provides auto
   complete results (e.g. top 'Search patrons' input)
3) Notice the expired patron has a 'expired' indication. Those who
   aren't do not.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 35466: (follow-up) document skip_indexing parameter to bulkmarciport.pl
Thomas Klausner [Sat, 19 Oct 2024 12:32:34 +0000 (12:32 +0000)]
Bug 35466: (follow-up) document skip_indexing parameter to bulkmarciport.pl

Add documentation for the new -si, --skip_indexing parameter

Signed-off-by: Thomas Klausner <domm@plix.at>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 35466: (follow-up) Go to next if error, add to indexing call if not
Nick Clemens [Fri, 23 Aug 2024 13:14:58 +0000 (13:14 +0000)]
Bug 35466: (follow-up) Go to next if error, add to indexing call if not

Before the previous patch we were indexing with every AddAuthority/ModAuthority call and I assumed
we were also indexing during the commity, however, it appears we were not. This patch ensures we push
the record and ids into the arrays for indexing during commit.

Additionally I add a skip to next record on error, to match biblio behaviour.
I also correct a log referring to biblios during authority importing

Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Thomas Klausner <domm@plix.at>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 35466: Add skip_indexing parameter to bulkmarcimport.pl
Nick Clemens [Mon, 5 Aug 2024 12:48:04 +0000 (12:48 +0000)]
Bug 35466: Add skip_indexing parameter to bulkmarcimport.pl

This patch adds a new optoin to skip indexing to bulkmarcimport.
It also fixes a bug where authorities were being indexed multiple times
during import.

To test:
 1 - Apply patch
 2 - Download the sample files on this bug
 3 - Perform asearch engine search that should retrieve all records( 'a' in Zebra, '*' in ES)
 4 - Note the total (435 in KTD)
 5 - perl misc/migration_tools/bulkmarcimport.pl -b -v --file=bug_35466_b.mrc
 6 - Search again, note increaed by 100
 7 - perl misc/migration_tools/bulkmarcimport.pl -b -v --file=bug_35466_b.mrc --skip_indexing
 8 - Search again, no increase
 9 - perl misc/search_tools/rebuild_elasticsearch.pl -v
10 - Search again, increase, records were added but not initially indexed
11 - Browse to authorities and search as for biblios
12 - perl misc/migration_tools/bulkmarcimport.pl -a -v --file=bug_35466_a.mrc
13 - Search again, note increase
14 - perl misc/migration_tools/bulkmarcimport.pl -a -v --file=bug_35466_a.mrc --skip_indexing
15 - Search again, no increase
16 - perl misc/search_tools/rebuild_elasticsearch.pl -v
17 - Search again, increase, records were added but not initially indexed
18 - Sign off! Hi5!

Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Thomas Klausner <domm@plix.at>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
12 days agoBug 37103: (QA follow-up) Added space between Acquisitions and its icon
Laura_Escamilla [Thu, 19 Sep 2024 15:35:29 +0000 (15:35 +0000)]
Bug 37103: (QA follow-up) Added space between Acquisitions and its icon

Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
12 days agoBug 37103: Link log viewer options to corresponding system preference
Owen Leonard [Mon, 17 Jun 2024 15:41:53 +0000 (15:41 +0000)]
Bug 37103: Link log viewer options to corresponding system preference

This patch updates the log viewer interface so that users with the
correct permissions can click a module's "Log not enabled" icon to go
directly to the corresponding system preference for enabling the log.

To test, apply the patch and go to Tools -> Log viewer (must have
"view_system_logs" permission).

- You should see an icon next to each module for which logging is
  disabled. Hovering over the icon should give a tooltip: "Log not
  enabled."
- If you are logged in as a user with "manage_sysprefs" permission,
  clicking the icon should take you directly to the system preference
  for enabling or disabling that module's logs.
- If your user does not have "manage_sysprefs" permission the icon
  should not be a link.

Sponsored-By: Athens County Public Libraries
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
12 days agoBug 35508: (QA follow-up) Fix qa script issues
Kyle M Hall [Fri, 18 Oct 2024 10:31:32 +0000 (10:31 +0000)]
Bug 35508: (QA follow-up) Fix qa script issues

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
12 days agoBug 35508: Don't update patron attributes if new list of attributes matches list...
Kyle M Hall [Tue, 28 May 2024 17:26:03 +0000 (13:26 -0400)]
Bug 35508: Don't update patron attributes if new list of attributes matches list of existing attributes

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
12 days agoBug 35508: Move logic to Koha::Patron::Attribute::store()
Kyle M Hall [Wed, 17 Apr 2024 13:29:29 +0000 (09:29 -0400)]
Bug 35508: Move logic to Koha::Patron::Attribute::store()

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
12 days agoBug 35508: Update borrowers.updated_on when modifying a patron's attribute
Hammat Wele [Thu, 14 Dec 2023 13:59:42 +0000 (13:59 +0000)]
Bug 35508: Update borrowers.updated_on when modifying a patron's attribute

Currently, if you have patron attributes and modify the values in a patron's account, the patron's updated_on date is not updated. This patch makes the "Updated on" change when a patron attribute is updated.

To test:

1. Create a patron attribute type
   1.1. Go to Administration > Patron attribute types
   1.2. Click New patron attribute
   1.3. Fill out the code and description
   1.4. Click Save

2. Edit a patron (normal)
   2.1. Go to Patrons and find a patron account
   2.2. Click Edit
   2.3. Change a regular field (e.g. Middle name)
   2.4. Click Save

--> Notice the "Updated on" date in the left column has been updated to now

3. Edit a patron attribute
   3.1. In another patron account*, click Edit
   3.2. Change the value of an attribute
   3.3. Click Save

--> Notice the "Updated on" date did not change

4. Apply the patch
   4.1 Repeat step 3.1, 3.2, 3.3

--> Notice the "Updated on" date has now changed

Signed-off-by: Esther <esther@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
12 days agoBug 38164: Skip fuzzy translations
Tomas Cohen Arazi [Mon, 14 Oct 2024 12:52:14 +0000 (09:52 -0300)]
Bug 38164: Skip fuzzy translations

This patch was envisioned by Julian Maurice.

Test plan:
0. Apply the 1st patch (the revert)
1. Go to `misc/translator/po`
2. es-ES-messages-js.po
3. Mark "Edit" string as fuzzy (around line 48). It should look like:

```
msgid "Edit"
msgstr "Editar"
```

4. Edit ./intranet-main.tt and add the following lines at the bottom,
   inside the `$(document).ready` block:

```javascript
  console.log(_("Edit"));
  console.log(__("Edit"));
```

5. Install the templates
  k$ koha-translate --install es-ES --dev kohadev && restart_all
6. Enable *es-ES* by searching for `language` in the sysprefs and switch
   to it for the staff interface.
7. Go to the Koha home page, open the browser console
=> FAIL: Notice that the second log in the console is displaying the
fuzzy string (i.e. is being translated when it shouldn't)
8. Apply this patch
9. Re-install the translated templates:
  k$ koha-translate --update es-ES --dev kohadev && restart_all
10. Repeat 7
=> SUCCESS: With this patch applied both logs show the English version of the
string.
11. Remove the fuzzy flag on `es-ES-messages-js.po`
12. Repeat 9 and 10
=> SUCCESS: The results are similar to step 7, but in this case they are
expected as the string is not marked fuzzy.
13. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Aleisha Amohia <aleishaamohia@hotmail.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
12 days agoBug 38164: Revert "Bug 37303: Replace po2json with a JS version"
Tomas Cohen Arazi [Mon, 14 Oct 2024 12:50:23 +0000 (09:50 -0300)]
Bug 38164: Revert "Bug 37303: Replace po2json with a JS version"

This reverts commit 4eb981635453871fa2a33396391f3f75a6baa8b1.

Signed-off-by: Aleisha Amohia <aleishaamohia@hotmail.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37403: Wrong progress quantity in job details
Hinemoea Viault [Wed, 24 Jul 2024 16:35:28 +0000 (12:35 -0400)]
Bug 37403: Wrong progress quantity in job details

In fact the system adds a previous value to the progress. As if the system keeps a previous value and adds the correct count of records in addition.
This patch removes the previously stored value.

To test:
1. Go to Cataloging > Stage records for import
2. Choose a file with bibliographic records and click Upload file
3. In "Look for existing records in catalog?" choose a record matching rule (e.g. ISBN)
4. Click Stage for import
5. Click View detail of the enqueued job
   --> Progress show 2/1
6. Apply the patch
7. Repeat steps 1 to 4
8. Click View detail of the enqueued job
   --> Progress show 1/1

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
qa script:
Commit title does not start with 'Bug XXXXX: ' - d1bebb34d7

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Fixed patch subject line
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37304: Fix created by filter in Acquisitions advanced search
Brendan Lawlor [Mon, 22 Jul 2024 20:07:18 +0000 (20:07 +0000)]
Bug 37304: Fix created by filter in Acquisitions advanced search

This patch updates the field for the created by filter from
ui.item.borrowernumber to ui.item.patron_id

Test plan:
1. Add a vendor and a basket
2. Use advanced order search to search for created by 'koha'
3. Use the autofill dropdown to make the selection and click 'Search'
4. Your search returned no results.
5. Apply patch and repeat steps 2 and 3
6. Confirm the search returns the basket you created earlier

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37836: Prevent submitting empty barcodes in Self check-in
Bo Gustavsson [Wed, 4 Sep 2024 19:49:47 +0000 (21:49 +0200)]
Bug 37836: Prevent submitting empty barcodes in Self check-in

This patch disbles the "Submit" button when the barcode field is empty.

To test this patch:

Add the patch to your koha clone
Enable the "SelfCheckInModule".
Open the page and the "Submit" button should be disabled when the barcode field is empty.

Signed-off-by: Sam Sowanick <sam.sowanick@corvallisoregon.gov>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37070: (QA follow-up) Fix qa script issues
Kyle M Hall [Fri, 4 Oct 2024 17:00:26 +0000 (13:00 -0400)]
Bug 37070: (QA follow-up) Fix qa script issues

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37070: Incorrect barcode generation when adding orders to basket
Hammat Wele [Tue, 11 Jun 2024 14:08:45 +0000 (14:08 +0000)]
Bug 37070: Incorrect barcode generation when adding orders to basket

When the autoBarcode preference is set to « generated in the form 1, 2, 3 » and the maximum barcode is length 16 (ex 1000000000000000),
when adding orders to the basket,the numbers generated are in the hexadecimal form.

to reproduce:

1- Set the system preference autoBarcode to « generated in the form 1, 2, 3 »
2- Search for a biblio record
3- In the record details, click on New -> New item
4- fill the Barcode field to a number with length 16 (1000000000000000) and add the item
5- Create a suggestion
    5-1- Go to Acquisitions and click on suggestions
    5-2- Create a suggestion and accept it
6- Add a new order to a basket
    6-1- Go to Acquisitions and find a vendor
    6-2- Create a new Basket
    6-3- on the Basket click on 'Add to basket' and select 'From a suggestion'
    6-4- Add the order created on 5-2- to the basket
    6-5- On the item form click on Add item
    6-6- Select a Fund and save the order
7- In the orders table click on the record and check the item Barcode
    ---> the Barcode is in hexadecimal form
8- Cancel order and delete the catalog record
9- Apply the patch
10- Repeat step 6-4, 6-5, 6-6
11- Check the item Barcode
    ---> the Barcode is not in hexadecimal form
12- run prove t/db_dependent/Barcodes.t

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37606: Fix framework export module to escape double quotes
Baptiste Wojtkowski [Fri, 9 Aug 2024 14:33:37 +0000 (16:33 +0200)]
Bug 37606: Fix framework export module to escape double quotes

When exporting a framework as csv, the exporter does not check the presence of double quote in the fields. Hence, if there is one double quote, the csv is broken.

TEST PLAN:
1 - Change a framework to add a field containing double quote in name
2 - Export it in csv
3 - Create a new framework
4 - Import the csv in the new framework -> every fields after the one
containing double quotes should be broke. Every other fields should have
no subfield
5 - APPLY PATCH
6 - Repeat 2-5 -> everything should be correctly exported

Signed-off-by: Sukhmandeep Benipal <sukhmandeep.benipal@inLibro.com>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 38012: Remove ispermanent from returns and branchtransfers
Andrew Fuerste Henry [Fri, 4 Oct 2024 15:11:49 +0000 (15:11 +0000)]
Bug 38012: Remove ispermanent from returns and branchtransfers

To test:
There should be no change in behavior, as this code is not referred to elsewhere in Koha. Make sure you can still do checkeckins and transfers.

Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37977: Fix some issues with labels in inventory form
Phil Ringnalda [Fri, 20 Sep 2024 21:43:35 +0000 (14:43 -0700)]
Bug 37977: Fix some issues with labels in inventory form

The inventory form has several issues with labels with a for attribute that
doesn't match the id of the input, so the label doesn't actually get linked
to anything.

Test plan:
 1. Without the patch, go to Cataloging - Inventory
 2. In the section for "Item location filters" click the label for "Shelving
    location (items.location) is", which will focus the select menu, then
    press the down arrow on the keyboard to see that it's focused by opening
    the select menu.
 3. Click in a blank spot to close the select menu, then click the label for
    "Collection" and press the down arrow key, which will scroll the page
    since the label didn't focus the menu, and repeat with "Call number
    classification scheme" which also will scroll the page when you press
    down arrow.
 4. In the section for "Optional filters for inventory list or comparing
    barcodes" click any of the labels below items.notforloan - clicking a
    checkbox label should toggle whether the checkbox is checked, but it
    will not
 5. Apply patch, refresh page
 6. Repeat steps 3 and 4, but this time you will get the proper behavior,
    focusing the select menus and toggling the checkboxes

Sponsored-by: Chetco Community Public Library
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37905: Fix parameter name
Jonathan Druart [Wed, 4 Sep 2024 12:24:45 +0000 (14:24 +0200)]
Bug 37905: Fix parameter name

It's named enqueued_date on the API side, not enqueued_on (which is the DB
column's name)

No behaviour change expected here.

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37905: Use correct RFC3339 formatted date to the server
Jonathan Druart [Wed, 4 Sep 2024 12:20:33 +0000 (14:20 +0200)]
Bug 37905: Use correct RFC3339 formatted date to the server

This patch suggests to revert the previous attempt to fix this problem.
The date was using the client-side's tz and so the "last hour" was not
matching the one from the server.

With bug 37831 with simply need to pass a rfc3339-formatted date and the
filtering will be done as expected.

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoRevert "Bug 36217: Fix background jobs page's include_last_hour filter"
Jonathan Druart [Thu, 12 Sep 2024 12:27:02 +0000 (14:27 +0200)]
Revert "Bug 36217: Fix background jobs page's include_last_hour filter"

This reverts commit f5c839348091d129bb7100af2c9e64e486d0ea1d.

https://bugs.koha-community.org/show_bug.cgi?id=37905
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37902: (QA follow-up) Tidy Query.pm & Object.t
Kyle M Hall [Fri, 27 Sep 2024 13:23:21 +0000 (13:23 +0000)]
Bug 37902: (QA follow-up) Tidy Query.pm & Object.t

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37902: Apply exact match for datetime
Jonathan Druart [Wed, 18 Sep 2024 07:49:50 +0000 (09:49 +0200)]
Bug 37902: Apply exact match for datetime

We do not want to apply "like" and do a "contains" search if a correctly
formatted date is passed (ie. starting with "YYYY-MM-DD HH:MM:SS")

It causes underlying problems if we add '%' characters to this string as
it will then become an invalid date.

There are several ways of dealing with this problem. This patch is
suggesting the easiest path: Apply an exact search (ie. do not add '%')
if the value appears to be a datetime.

Certainly not the best looking patch but it seems to be quite effective:
  * no need to change the client
  * no need to rework build_query_params, merge_q_params, attributes_from_api

We could (to confirm) pass the result set, but it seems a lot of additional processing
(that is done later already, in attributes_from_api)

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37902: Add tests
Jonathan Druart [Thu, 12 Sep 2024 10:01:58 +0000 (12:01 +0200)]
Bug 37902: Add tests

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37902: Do not convert a date if it has like markers
Jonathan Druart [Mon, 16 Sep 2024 08:43:13 +0000 (10:43 +0200)]
Bug 37902: Do not convert a date if it has like markers

If we pass a datetime parameter we are adding "like" operator and % at
the beginning and ending of the attribute value.
For instance:
  attributes=2024-09-16 10:11:12
  attributes:{ like => '%2024-09-16 10:11:12%' }

We do not want to reach the fixup code and raise an exception.

However I don't think we should add the like for datetime attributes
actually. But can we modify this behaviour now?

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37902: Adjust timezone
Jonathan Druart [Thu, 12 Sep 2024 14:06:36 +0000 (16:06 +0200)]
Bug 37902: Adjust timezone

We didn't take into account the server's timezone.

This does not feel right, we are not supposed to deal with time zone
outside of Koha::DateUtils.

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37902: TODOs
Jonathan Druart [Thu, 12 Sep 2024 10:35:33 +0000 (12:35 +0200)]
Bug 37902: TODOs

There are still different structures we won't handle properly.
This patch adds conditionals to prevent failures or warnings.

Should be done, but later.

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37902: Make sure we loop over if a structure is passed
Jonathan Druart [Thu, 12 Sep 2024 09:19:36 +0000 (11:19 +0200)]
Bug 37902: Make sure we loop over if a structure is passed

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37902: Make sure filtered_params are converted
Jonathan Druart [Thu, 12 Sep 2024 08:41:18 +0000 (10:41 +0200)]
Bug 37902: Make sure filtered_params are converted

Previously we only adjusted the attributes that were passed directly,
not the ones in 'q' (which is the recommended way now)

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37728: Adjust test to catch more missing 'op' in POSTed forms
Jonathan Druart [Mon, 26 Aug 2024 09:03:05 +0000 (11:03 +0200)]
Bug 37728: Adjust test to catch more missing 'op' in POSTed forms

The test is not catching missing op in forms that are not the first POST
form of the template.

Found when fixing the test for bug 37309. It was not catching the
missing op in the second form.

Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37728: (follow-up) Tell the test that opac-illrequests.tt has an op
Phil Ringnalda [Tue, 24 Sep 2024 02:40:32 +0000 (19:40 -0700)]
Bug 37728: (follow-up) Tell the test that opac-illrequests.tt has an op

xt/find-missing-op-in-forms.t wants to see name="op" value="cud-..." in any
form with method="post", but opac-illrequests.tt inserts its op input by
passing around whole and unpack and repacking whole.keys which includes
the op. We just need to tell the test that it really exists.

At first, I thought of this approach as a joke, faking out the test, but
when I tried to be more responsible and put a whole <input type="hidden" etc.
in the comment, I realized that would be more likely to confuse someone
who thought that was uncommented and that they were making real changes than
it would be to future-proof against changes in the test's approach.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37786: members/cancel-charge.pl needs CSRF protection
Phil Ringnalda [Fri, 6 Sep 2024 21:33:17 +0000 (14:33 -0700)]
Bug 37786: members/cancel-charge.pl needs CSRF protection

members/cancel-charge.pl will take either a POST or a GET, and as long as the
accountline_id it is passed can be cancelled, will cancel it. That means any
link you click anywhere while logged in to Koha might cancel a charge. It also
takes a borrowernumber which isn't used for the cancelling, only to determine
what account to show after a charge is cancelled, letting a malicious link
show an account other than the one whose charge was just cancelled.

Test plan:
 1. Without the patch, Circulation - Checkout - search for the 'koha' patron
    you log in as
 2. Accounting - Create manual invoice - Make it a Manual fee of 100.00 and
    Save
 3. Pretending it's a well-disguised link in a spear-phishing email, load
    http://localhost:8081/cgi-bin/koha/members/cancel-charge.pl?borrowernumber=5&accountlines_id=1
 4. You are now looking at charges for the patron Acosta, Edna rather than for
    the patron koha, but if you look at the patron koha, its 100.00 charge
    has been cancelled.
 5. Apply patch and reset_all (or if you don't, you'll have to manually adjust
    the link to reflect the charge being accountlines_id 3 rather than 1)
 6. Circulation - Checkout - search for the 'koha' patron you log in as
 7. Accounting - Create manual invoice - Make it a Manual fee of 100.00 and
    Save
 8. Click the link http://localhost:8081/cgi-bin/koha/members/cancel-charge.pl?borrowernumber=5&accountlines_id=1
 9. You got a 403 because you didn't pass the op cud-cancel, but if you did
    pass that op, you would also get a 403 for having a cud- op in a GET (and
    if you POST, you won't have a csrf_token)
10. Checkout - search for koha - Accounting - Cancel charge
11. Having done it the right way, you're now on koha's list of transactions,
    where you can see you just cancelled it

Sponsored-by: Chetco Community Public Library
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 38190: Remove JS error on suggestion page
Jonathan Druart [Thu, 17 Oct 2024 09:11:26 +0000 (11:11 +0200)]
Bug 38190: Remove JS error on suggestion page

This code could appear several time as we include it in modals

Test plan:
Go on http://localhost:8081/cgi-bin/koha/suggestion/suggestion.pl
Open the console
Notice that without this patch you see a JS error
  Uncaught SyntaxError: redeclaration of const av_bsort1
With this patch applied the error is gone.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37528: (QA follow-up) Slight rephrase of system preference and warning message
Katrin Fischer [Fri, 18 Oct 2024 11:41:01 +0000 (11:41 +0000)]
Bug 37528: (QA follow-up) Slight rephrase of system preference and warning message

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37892: (QA follow-up) Fix condition in memberentry
Marcel de Rooy [Fri, 20 Sep 2024 09:07:42 +0000 (09:07 +0000)]
Bug 37892: (QA follow-up) Fix condition in memberentry

Patron may be undefined. So the test may crash.
Also there is an issue with operator precedence.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37892: (QA follow-up) Add tests for ->is_guarantor/ee
Marcel de Rooy [Fri, 20 Sep 2024 08:44:30 +0000 (08:44 +0000)]
Bug 37892: (QA follow-up) Add tests for ->is_guarantor/ee

Test plan:
Run t/db_dependent/Koha/Patron.t

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37892: Fix guarantor restriction, add tests
Nick Clemens [Wed, 11 Sep 2024 14:04:17 +0000 (14:04 +0000)]
Bug 37892: Fix guarantor restriction, add tests

[SQUASHED IN QA]

These patches will alter the checks for a patron that prevent a category with
'can_be_guarantee' from being a guarantor.  Two patrons in the same category should be
allowed to have a guarantee/guarantor relationship

The tests below assume you are using the KTD sample data. Update borrowernumbers if not.

To test:
 0 - Apply tests patch
 1 - Set the 'Patron' category as 'Can be a guarantee'
 2 - Add a relationship between two patrons of the same category
     This is restricted from the staff interface
     perl -e 'use Koha::Patrons; my $p = Koha::Patrons->find(5)->add_guarantor({ guarantor_id => 23, relationship => 'father'});'
 3 - Note there is no warning or exception. This should be allowed.
 4 - Checkout an item to Edna (borrowernumber 5)
 5 - Set 'TrackLastPatronActivityTriggers' to 'Checking in an item'
 6 - Try to check the item in, KABOOM
 7 - Set 'TrackLastPatronActivityTriggers' to 'Checking out an item'
 8 - Try to issue an item to Enda, KABOOM
 9 - prove -v t/db_dependent/Koha/Patron.t, fail
10 - Apply second patch
11 - prove -v t/db_dependent/Koha/Patron.t, one more test passes, but then fail
12 - Apply third patch
13 - prove -v t/db_dependent/Koha/Patron.t, pass!
14 - restart_all
15 - Checkout to Enda, OK!
16 - Checkin from Edna, OK!
17 - Find two more patrons in the category and attempt to link them
18 - 'Guarantor cannot be a guarantee'
19 - Apply fourth patch
20 - You can add a guarantor from the same category in interface
21 - Try to add a guarantor to the guarantor assigned in 20
22 - Confirm you cannot add a guarantor - "Guarantor cannot be a guarantee"

Signed-off-by: Olivier V <olivier.vezina@inLibro.com>
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Bug 37892: Fix patron updates

Signed-off-by: Olivier V <olivier.vezina@inLibro.com>
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Bug 37892: Fix patron creation

Signed-off-by: Olivier V <olivier.vezina@inLibro.com>
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Bug 37892: Fix memberentry.pl

Signed-off-by: Olivier V <olivier.vezina@inLibro.com>
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Bug 37892: (follow-up) Fix patron creation

This patch fixes the 22. of the test plan (22 - Confirm you cannot add a guarantor - "Guarantor cannot be a guarantee"
        )

Signed-off-by: Olivier V <olivier.vezina@inLibro.com>
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Bug 37892: (follow-up) Fix patron creation

TEST PLAN:
1 - Do the 22 parts of the test plan
2 - Add a guarantor to one patron not selected before (let's say A is
  the guarantee, B the guarantor)
3 - Try and add a guarantor to B -> you will success
4 - Remove B's guarantor
5 - Apply this patch
6 - Repeat 3 -> you will not be able to

Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Bug 37892: (follow-up) Tidyness

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
[EDIT]
Renamed a subtest to patron creation tests in Patron.t.
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37528: (follow-up) Add help strings for blank borrowerrelationship
Baptiste Wojtkowski [Wed, 9 Oct 2024 07:39:07 +0000 (09:39 +0200)]
Bug 37528: (follow-up) Add help strings for blank borrowerrelationship

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37528: (follow-up) Tidyness
Baptiste Wojtkowski [Mon, 16 Sep 2024 13:32:14 +0000 (15:32 +0200)]
Bug 37528: (follow-up) Tidyness

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37528: check if selected relationship is valid
Johanna Räisä [Thu, 1 Aug 2024 05:46:09 +0000 (08:46 +0300)]
Bug 37528: check if selected relationship is valid

This patch checks if the selected relationship is valid before trying to save the patron record.
It takes the list of valid relationships from borrowerRelationships syspref and checks if the selected relationship is in the list.

Also this patch fixes relationship field required message when BorrowerMandatoryField is not set.
The required message is shown when adding the guarantee from guarantor's detail page.

Test plan:
1) Add at least one option to borrowerRelationships syspref.
2) Leave the relationship unchecked from BorrowerMandatoryField syspref.
3) Create a new guarantee patron.
4) Add a guarantor to the guarantee patron.
5) Leave the relationship field empty and try to save the patron record.
6) Notice the 500 error page.
7) Apply the patch.
8) Repeat steps 3-5.
9) Notice the error message "Guarantor relationship is invalid".

Sponsored-by: Koha-Suomi Oy
Signed-off-by: Olivier V <olivier.vezina@inLibro.com>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 38183: Get the active tab number from data-attribute
Lucas Gass [Tue, 15 Oct 2024 23:50:00 +0000 (23:50 +0000)]
Bug 38183: Get the active tab number from data-attribute

To test:

1. Have more than 1 staff member who can manage suggestions
2. Create some suggestions
3. Move some suggestions to different statuses (Pending/Accepted/Rejected) so you have multiple tabs on the "Suggestions management" page.
4. Go to the first tab, check some suggestions, and click "Select manager" under "Update manager".
5. Pick a new manager, notice nothing changes on that tab.
6. Now look at the last tab in your list of tabs, see the suggestion manager has been set incorrectly to the last tab.
7. APPLY PATCH
8. Try 4-5 again. The manager should be selected correctly.
9. Try setting the manaager from every tab, making sure it works right.

Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 38156: Sort issues by borrowernumber before parallel chunking
Emily Lamancusa [Fri, 11 Oct 2024 19:26:25 +0000 (15:26 -0400)]
Bug 38156: Sort issues by borrowernumber before parallel chunking

When the automatic renewal cron job is using parallel processing, it
aims to process all of the renewals for any given patron together in one
chunk to avoid data conflicts. To accomplish this, it starts a new data
chunk each time it encounters a new patron. However, if a patron's
renewing checkouts aren't all consecutive in the database, that patron's
data ends up split across multiple chunks.

We need to sort the issues by borrowernumber before attempting to chunk
them in order to make sure they are chunked and processed correctly.

To test (using KTD default test data):
Setup:
1. Edit the default circulation rule:
    - Set Automatic renewal to "Yes"
    - Set No automatic renewal before to 3
2. Open the following patron accounts in separate tabs:
    - Floyd Delgado
    - Joyce Gaines
    - Edna Acosta
    - Mary Burton
3. Perform the following patron account edits for each of the above
   patrons (and keep the tabs open):
    - Enable automatic renewal notices, and set them to digests only
    - Add a value to the email field
4. Enter the kshell (ktd --shell)
5. Edit /etc/koha/sites/kohadev/koha-conf.xml, and add the following
   lines near the end, just above the </config> and </yazgfs> closing
   tags:
<auto_renew_cronjob>
    <parallel_loops_count>2</parallel_loops_count>
</auto_renew_cronjob>
6. restart_all

Reproducing the issue:
7. Apply the test patch only
8. Run perl generate_checkouts.pl to generate test data
9. perl misc/cronjobs/automatic_renewals.pl -v -c
--> The test patch added output that will show how the renewals were
    chunked into "chunk 0" and "chunk 1" for the two parallel loops.
    Note that the issues for each borrower are not processed nicely in
    one chunk, but are separated across multiple chunks and alternated
    with other borrowers.
10. Check the checkouts for each of the four patrons from above
--> All checkouts should have renewed
11. Check the notices tab for each of the four patrons
--> Notice errors in the automatic renewal digest notices. A patron's
    renewals may be split across multiple digests, a digest may be
    missing renewals, or a patron may not have received a digest at all

Testing the patch:
12. Apply the second patch
13. Reset the due dates on all checkouts so that they will all be
    eligible for automatic renewal again:
    - koha-mysql kohadev
    - UPDATE issues SET date_due=<two days from today>;
14. perl misc/cronjobs/automatic_renewals.pl -v -c
--> Note that the renewals are now correctly chunked by patron
15. Check the checkouts and notices tab for each of the four patrons
--> All checkouts should have renewed, and all patrons should have a
    single new Auto Renewals Digest notice that correctly lists all of
    their renewed items

Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Edit: tidied the code block inline (tcohen)
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 13342: Not logged user can place a review/comment
Hammat Wele [Tue, 3 Sep 2024 20:31:21 +0000 (20:31 +0000)]
Bug 13342: Not logged user can place a review/comment

We are able to comment a notice even when no user is connected

To test

1. Log in to OPAC.
2. Find a Biblio and open the comments tab.
3. Open another tab/window, and log out from the account.
4. Return to the first tab.
5. Click "Post your comments on this title."
 --> We are able to post a comment
6. Apply the patch
7. Repeat step 1, 2, 3, 4, 5
 --> You should be redirected to the login page.

Signed-off-by: David Cook <dcook@prosentient.com.au>
Bug 13342: Tidy

Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37720: (follow-up) Adjust tests
Lucas Gass [Mon, 30 Sep 2024 20:45:04 +0000 (20:45 +0000)]
Bug 37720: (follow-up) Adjust tests

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37720: Prevent XSS in label creator
Jonathan Druart [Wed, 28 Aug 2024 10:18:06 +0000 (12:18 +0200)]
Bug 37720: Prevent XSS in label creator

Because labels/label-edit-batch.pl fills a DataTable with things that include
a link created by C4/Creators/Lib.pm, it outputs them with the $raw filter,
so HTML in author/title/callnumber is executed in the label batch editor.
While we wait for a fix that moves the link creation into the template and
out of C4, encoding HTML in Lib.pm for the bits going into the link, and
switching from $raw to the html filter for the rest of the things, will at
least get rid of the XSS.

Test plan:
 1. Without this patch, but with the patch from bug 37654 so you don't get
    alert()s in batch import, download attachment 170675 [details]
 2. Cataloging - Stage records for import - browse to the downloaded file -
    Upload file - when the upload finishes Stage for import - when staging
    finishes View batch (get alert()s if you didn't apply bug 37654) - Import
    this batch into the catalog
 3. Once the import finishes, Cataloging - Manage staged records
 4. In the row for your import, in the # Items column, click "(Create label
    batch)"
 5. In the "Label batch #n created" message, click the link to the batch #
 6. Because the batch includes a call number with an open <script>, you'll
    get XSS alert()s and then one about something going wrong while loading
    the table, with only one of the two records showing in the batch editor
 7. Apply patch, restart_all
 8. Cataloging - Label creator - Manage Label batches
 9. In the row for your batch, click Edit
10. You will see both labels, with their attempts at XSS visible as text
    rather than being interpreted as HTML

Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 37681: Fix XSS in staff interface item URLs on detail page
David Cook [Tue, 20 Aug 2024 00:54:38 +0000 (00:54 +0000)]
Bug 37681: Fix XSS in staff interface item URLs on detail page

This patch uses Javascript objects and safe sinks to prevent XSS
in the item URLs on the staff interface detail page.

It also makes sure those URLs don't get double-escaped. Yippee!

Test plan:
0. Apply the patch
1. Add/edit an item with the following URL:
http://prosentient.com.au?q=http%3A%2F%2Fprosentient.com.au
2. Add/edit a different item with the following URLs:
http://prosentient.com.au?q=http%3A%2F%2Fprosentient.com.au |
http://prosentient.com.au?q=http%3A%2F%2Fprosentient.com.au
3. Go to the staff interface detail page
4. Notice that the URLs are not double-encoded!
5. Try out a malicious payload (talk to QA/security about this)
6. Confirm that the malicious payload fails to execute the XSS
7. Celebrate!

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 36598: (QA follow-up): tidy up code
Victor Grousset/tuxayo [Tue, 14 May 2024 18:39:00 +0000 (20:39 +0200)]
Bug 36598: (QA follow-up): tidy up code

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 36598: Add comments asking to keep both CSRF checks in sync
Julian Maurice [Tue, 14 May 2024 07:34:31 +0000 (09:34 +0200)]
Bug 36598: Add comments asking to keep both CSRF checks in sync

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 36598: Prevent use of unsafe HTTP method with non-cud op parameter
Julian Maurice [Tue, 14 May 2024 07:15:50 +0000 (09:15 +0200)]
Bug 36598: Prevent use of unsafe HTTP method with non-cud op parameter

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 36598: Improve documentation and error message in CSRF plugin
Julian Maurice [Mon, 13 May 2024 13:06:04 +0000 (15:06 +0200)]
Bug 36598: Improve documentation and error message in CSRF plugin

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 36598: Fix CSRF header name (underscore -> hyphen)
Julian Maurice [Fri, 3 May 2024 07:17:37 +0000 (09:17 +0200)]
Bug 36598: Fix CSRF header name (underscore -> hyphen)

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
13 days agoBug 36598: Prohibit CUD operations with safe HTTP methods (GET/HEAD/...)
Julian Maurice [Mon, 15 Apr 2024 07:08:48 +0000 (09:08 +0200)]
Bug 36598: Prohibit CUD operations with safe HTTP methods (GET/HEAD/...)

Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>