]> git.koha-community.org Git - koha.git/log
koha.git
16 months agoBug 34225: KohaTable broken on batch item deletion and modification results
Owen Leonard [Fri, 7 Jul 2023 12:19:27 +0000 (12:19 +0000)]
Bug 34225: KohaTable broken on batch item deletion and modification results

This patch adds the columns_settings include file to the batch item
modification and batch item deletion templates so that the tables can be
rendered as DataTables.

To test, apply the patch and go to Cataloging -> Batch item
modification.

- Submit a batch of barcodes or item numbers for modification.
- On the next page which shows all the items you submitted, the table
  should be rendered as a DataTable.
- Confirm that sorting, filtering, and export all work correctly.
- Confirm that there are not JS errors in the browser console.
- Perform the same tests on Cataloging -> Batch item deletion.

Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 30979: DBRev 23.06.00.009
Tomas Cohen Arazi [Fri, 14 Jul 2023 15:05:13 +0000 (12:05 -0300)]
Bug 30979: DBRev 23.06.00.009

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 30979: Fix regression
Tomas Cohen Arazi [Fri, 14 Jul 2023 13:20:27 +0000 (10:20 -0300)]
Bug 30979: Fix regression

This patch fixes a regression introduced by the 'Fix public availability
500' follow-up.

To test:
1. Run:
   $ ktd --shell
  k$ prove t/db_dependent/api/v1/checkouts.t
=> FAIL: Tests fail!
2. Apply this patch
3. Repeat 1
=> SUCCESS: Tests pass! Tests are useful!
4. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 30979: (QA follow-up) Tidy things
Tomas Cohen Arazi [Fri, 14 Jul 2023 13:07:20 +0000 (10:07 -0300)]
Bug 30979: (QA follow-up) Tidy things

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 30979: (QA follow-up) Add missing docs on error codes
Tomas Cohen Arazi [Fri, 14 Jul 2023 12:43:29 +0000 (09:43 -0300)]
Bug 30979: (QA follow-up) Add missing docs on error codes

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 30979: (follow-up) Fix public availability 500
Martin Renvoize [Wed, 17 May 2023 18:56:43 +0000 (19:56 +0100)]
Bug 30979: (follow-up) Fix public availability 500

When we introduced the logged in user id to the token generation we
had the knock on effect of creating a 500 response for unauthenticated
availability lookups.

This patch resolves the 500, but results in a token that's not useful
for the end user.  We should consider this in the wider context down the
line.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 30979: Add modal trigger to shibboleth target url
Martin Renvoize [Mon, 20 Feb 2023 17:02:05 +0000 (17:02 +0000)]
Bug 30979: Add modal trigger to shibboleth target url

Signed-off-by: Silvia Meakins <smeakins@eso.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 30979: Redirect to checkout summary
Martin Renvoize [Tue, 24 Jan 2023 11:03:40 +0000 (11:03 +0000)]
Bug 30979: Redirect to checkout summary

This is a temporary solution whilst we wait for the biblio api endpoints
so we may include more biblio details in the checkout modal itself.

Signed-off-by: Silvia Meakins <smeakins@eso.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 30979: Always show self-checkout when preference enabled
Martin Renvoize [Tue, 17 Jan 2023 14:14:36 +0000 (14:14 +0000)]
Bug 30979: Always show self-checkout when preference enabled

This patch updates the display logic such that if the truested
self-checkout option is enabled we always show the checkout button and
prompt a login when no user is found.

Signed-off-by: Silvia Meakins <smeakins@eso.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 30979: Add checkout modal to the OPAC
Martin Renvoize [Mon, 15 Aug 2022 11:19:31 +0000 (12:19 +0100)]
Bug 30979: Add checkout modal to the OPAC

This patch adds a new self checkout modal to the OPAC when
OpacTrustedCheckout is enabled and a user is logged in.

The new modal allows an end user to scan an item barcode to checkout.
We check for item existance and availability and then check the item
out after any confirmations have been displayed.

Signed-off-by: Silvia Meakins <smeakins@eso.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 30979: Limit public checkout endpoint using preference
Martin Renvoize [Mon, 6 Mar 2023 17:32:32 +0000 (17:32 +0000)]
Bug 30979: Limit public checkout endpoint using preference

The public api endpoint for self-checkout should only be enabled in the
case where the OpacTrustedSelfCheckout option is enabled.

Signed-off-by: Silvia Meakins <smeakins@eso.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 30979: Add 'OpacTrustedCheckout' preference
Martin Renvoize [Mon, 18 Jul 2022 09:22:06 +0000 (10:22 +0100)]
Bug 30979: Add 'OpacTrustedCheckout' preference

This patch adds a new 'OpacTrustedCheckout' system preference to govern
whether the library allows opac users to check out items to themselves
from their OPAC login.

Signed-off-by: Silvia Meakins <smeakins@eso.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 30979: Add public endpoints
Martin Renvoize [Fri, 5 May 2023 14:56:27 +0000 (15:56 +0100)]
Bug 30979: Add public endpoints

This patch expands the checkouts endpoints to allow for a public workflow.

We add the availability endpoint under `/public/checkouts/availability`
and restrict the information we send back to only those fields a public
user should be allowed to see.

We also add a new checkout endpoint at `/patrons/{patron_id}/checkouts`
that allows for users to checkout to themselves and accepts the same POST
request with checkout details including item_id and a confirmation token
in the body that the staff client endpoints accept.

Signed-off-by: Silvia Meakins <smeakins@eso.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 30979: Unit tests
Martin Renvoize [Wed, 10 May 2023 10:24:17 +0000 (11:24 +0100)]
Bug 30979: Unit tests

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33727: (QA follow-up) perl tidy whole file
Marcel de Rooy [Fri, 14 Jul 2023 07:36:03 +0000 (07:36 +0000)]
Bug 33727: (QA follow-up) perl tidy whole file

Test plan:
Run prove again. Run qa tools.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33727: Merge both Calendar tests
Marcel de Rooy [Sat, 13 May 2023 12:18:02 +0000 (12:18 +0000)]
Bug 33727: Merge both Calendar tests

The old t tests become part of the first subtest.

Test plan:
Run the new t/db_dependent/Calendar.t

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33727: Groundwork for Calendar.t
Marcel de Rooy [Sat, 13 May 2023 12:06:55 +0000 (12:06 +0000)]
Bug 33727: Groundwork for Calendar.t

Update test while removing need for Test::DBIx::Class.

Test plan:
Run t/Calendar.t

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34243: Fix copy/pasted city references in api tests
Marcel de Rooy [Wed, 12 Jul 2023 14:53:46 +0000 (14:53 +0000)]
Bug 34243: Fix copy/pasted city references in api tests

Two occurrences.
Just comments.

Test plan:
Read the patch.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33039: DBIC schema
Tomas Cohen Arazi [Fri, 14 Jul 2023 11:46:53 +0000 (08:46 -0300)]
Bug 33039: DBIC schema

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33039: DBRev 23.06.00.008
Tomas Cohen Arazi [Fri, 14 Jul 2023 11:44:23 +0000 (08:44 -0300)]
Bug 33039: DBRev 23.06.00.008

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33039: Add ability to specify a template for serial subscription "Published on...
Kyle Hall [Wed, 22 Feb 2023 12:03:39 +0000 (07:03 -0500)]
Bug 33039: Add ability to specify a template for serial subscription "Published on (text)" field

Some libraries would like to have the text version of the serials
"published on" field auto-generated from a template. This template
should be definable at the subscription level.

Test Plan:
1) Apply this patch
2) Run updatedatabase.pl
3) Restart all the things!
4) Create or edit a new subscription
5) Edit the "Publication date template", create a template toolkit
   template.
   Keys available are the Koha::Subscription object as 'subscription'
   and the following serial table columns as keys:
    serialseq
    serialseq_x
    serialseq_y
    serialseq_z
    subscriptionid
    biblionumber
    status
    planneddate
    publisheddate
    publisheddateext
    notes
    routingnotes
   So your example template could be "[% subscription.subscriptionid %] [% biblionumber %]"
6) Generate the next serial
7) Note the next issue has a "Date published (text)" field based on the
   template you set!

Signed-off-by: Laura Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33804: (follow-up) Convert to JSDoc formatted documentation
Martin Renvoize [Thu, 25 May 2023 10:57:15 +0000 (11:57 +0100)]
Bug 33804: (follow-up) Convert to JSDoc formatted documentation

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33804: Use as_due_date to display due dates
Jonathan Druart [Tue, 23 May 2023 10:16:55 +0000 (12:16 +0200)]
Bug 33804: Use as_due_date to display due dates

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33804: Add as_due_date option to $date
Jonathan Druart [Tue, 23 May 2023 10:16:41 +0000 (12:16 +0200)]
Bug 33804: Add as_due_date option to $date

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34097: Prevent clicking ellipsis for dateaccessioned plugin from scrolling up
Phil Ringnalda [Tue, 27 Jun 2023 22:34:59 +0000 (15:34 -0700)]
Bug 34097: Prevent clicking ellipsis for dateaccessioned plugin from scrolling up

Test plan:
1. Find a record with several items (in ktd "MacLaren's Gaelic
   self-taught" will do nicely
2. Click the Edit button next to one of the items
3. Click the "..." to the right of "d - Date acquired" and verify that the
   page doesn't scroll up to the top, and that the current date is
   inserted in the field
4. Click the "..." to the right of "w - Price effective from" and verify
   that the page doesn't scroll up and the current date is inserted

Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33863: Update values in data that will be saved
Jonathan Druart [Tue, 11 Jul 2023 08:21:09 +0000 (10:21 +0200)]
Bug 33863: Update values in data that will be saved

We are not saving the values of the input but a representation of the
form, contains in $("#order_edit").data('row');

To acchieve that it's preferable to reuse _update_unitprice and call it
when #change_currency is modified.

Some code cleaning slipped into the patch, for readability purpose.

Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33863: Reset value if checkbox is unchecked
Jonathan Druart [Wed, 5 Jul 2023 09:55:33 +0000 (11:55 +0200)]
Bug 33863: Reset value if checkbox is unchecked

Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33863: (bug 25655 follow-up) Check "Change currency" only if checked before
Jonathan Druart [Tue, 30 May 2023 12:37:33 +0000 (14:37 +0200)]
Bug 33863: (bug 25655 follow-up) Check "Change currency" only if checked before

We should not check "Change currency" if it has not modified in the
original order.

Test plan:
Create an order with 3+ items
Receive 1 item, don't check "change currency"
Receive an other item
=> "Change currency" is not checked
Check "Change currency", modify the currency and the price
Receive a third item
=> Change currency is checked, invoice currency and price are set
correctly to the previous values

Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33946: (QA follow-up) Add spans and classes for styling and translatability
Katrin Fischer [Mon, 10 Jul 2023 21:08:38 +0000 (21:08 +0000)]
Bug 33946: (QA follow-up) Add spans and classes for styling and translatability

Adds back the spans around No title and more spans for
'No bibliographic record' with individual classes for each
to allow for styling later.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33946: Resync opac/intranet includes
Martin Renvoize [Thu, 8 Jun 2023 12:19:07 +0000 (13:19 +0100)]
Bug 33946: Resync opac/intranet includes

This patch resyncs the whitespace chomping in the opac include to match
that in the intranet include so aid in diffing between the two.

No changes should be visible in the UI but there may be cleaner markup
as a result.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33946: Do not display link to non-existing bibliographic record
Jonathan Druart [Thu, 8 Jun 2023 07:48:42 +0000 (09:48 +0200)]
Bug 33946: Do not display link to non-existing bibliographic record

If you use biblio-title.inc on a biblio that does not longer exist, "No title" is shown with a link to catalogue/detail?.pl?biblionumber=

We should at least remove the link.

We could even do better and display "No bibliographic record" if the biblio does not longer exist.

Test plan:
Edit mainpage.pl, add
$template->param( your_bib => Koha::Biblios->find(42) );
Edit intranet-main.tt, add
[% INCLUDE 'biblio-title.inc' biblio=your_bib link = 1 %]

Not hit the main page and see what's hapenning.
If you have a bibliographic record with biblionumber=42, its info will
be displayed.
Remove this record and try again => it's replaced with "No bibliographic record"
without a link

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33956: Use Koha::Biblio->opac_summary_html from opac-user.pl
Jonathan Druart [Wed, 5 Jul 2023 09:07:35 +0000 (11:07 +0200)]
Bug 33956: Use Koha::Biblio->opac_summary_html from opac-user.pl

This code is currently duplicated in controllers opac-readingrecord.pl
and opac-user.pl.

After bug 33949 it will be removed from opac-readingrecord.pl, and bug
33956 aims to remove it from opac-user.pl.

Final situation will be: we have the code in a module, covered by tests
\o/

Test plan:
Check an item out
Setup OPACMySummaryHTML ("biblionumber: {BIBLIONUMBER}" for instance)
Go to the "Your summary" at the OPAC and notice the "Links" column
Everything should work identically before and after this patch

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33954: Koha::Biblio->opac_summary_html
Jonathan Druart [Thu, 8 Jun 2023 09:38:01 +0000 (11:38 +0200)]
Bug 33954: Koha::Biblio->opac_summary_html

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33954: Add tests
Jonathan Druart [Thu, 8 Jun 2023 10:46:25 +0000 (12:46 +0200)]
Bug 33954: Add tests

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33953: Koha::Biblio->ratings
Jonathan Druart [Thu, 8 Jun 2023 09:58:51 +0000 (11:58 +0200)]
Bug 33953: Koha::Biblio->ratings

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33953: Adjust tests
Jonathan Druart [Thu, 8 Jun 2023 10:36:52 +0000 (12:36 +0200)]
Bug 33953: Adjust tests

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33952: Koha::Biblio->normalized_isbn
Jonathan Druart [Thu, 8 Jun 2023 08:55:36 +0000 (10:55 +0200)]
Bug 33952: Koha::Biblio->normalized_isbn

This is needed for bug 33947 where we need to call ->normalized_isbn on a Koha::Biblio object.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33952: Add tests
Jonathan Druart [Thu, 8 Jun 2023 10:29:38 +0000 (12:29 +0200)]
Bug 33952: Add tests

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34211: Add +strings for GET /api/v1/biblios/:biblio_id/items
Jonathan Druart [Thu, 6 Jul 2023 12:08:26 +0000 (14:08 +0200)]
Bug 34211: Add +strings for GET /api/v1/biblios/:biblio_id/items

Allow to embed stringified version of attributes for the "Get items for
a biblio" endpoint

Test plan:
curl -u koha:koha --request GET 'http://localhost:8081/api/v1/biblios/47/items' --header "Content-Type: application/json" --header "x-koha-embed: +strings" | jq

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34211: Add tests
Jonathan Druart [Thu, 6 Jul 2023 12:08:13 +0000 (14:08 +0200)]
Bug 34211: Add tests

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 27824: Trim column headers
Jonathan Druart [Wed, 5 Jul 2023 13:44:50 +0000 (15:44 +0200)]
Bug 27824: Trim column headers

To support additional spaces.

Using the system for defining a column name placeholder (Bug 23390), if
there is a space inside the column name placeholder it won't work. The
SQL example in Bug 5697:

SELECT
i.itemnumber,
i.itemnumber as Exemplarnummber,
[[i.itemnumber| itemnumber for batch]],
CONCAT('<a
href=\"/cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=',
i.biblionumber, '&itemnumber=', i.itemnumber, '#edititem', '\">',
i.itemnumber, '</a>' ) AS "itemnumber as edit link"
FROM items i

"[[i.itemnumber| itemnumber for batch]]" has a space before "itemnumber
for batch." With that space removed it works as expected.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 27824: Add a test
Jonathan Druart [Wed, 5 Jul 2023 13:44:32 +0000 (15:44 +0200)]
Bug 27824: Add a test

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 31147: Recalls should not adjust due time for related checkouts
Aleisha Amohia [Mon, 10 Jul 2023 03:45:52 +0000 (03:45 +0000)]
Bug 31147: Recalls should not adjust due time for related checkouts

The current recalls behaviour adjusts the due date of the most appropriate checkout based on the 'recall due date interval' circulation rule. It also adjusts the due time, which is buggy behaviour. The due date should be adjusted based on the circulation rule, but the due time should remain the same.

To test:

1. Enable the UseRecalls system preference and configure recalls-related circulation and fines rules
2. Check out Item A to Patron A
3. Log into the database and check the due date for that checked out item, e.g.

SELECT date_due FROM issues WHERE itemnumber = XXXX;

--> It should be YYYY-MM-DD 23:59:00

4. Log into the OPAC as Patron B and place a recall on Item A. This will force a change to the recall's due date. Check the due date in the database

SELECT date_due FROM issues WHERE itemnumber = XXXX;

--> It should be today + the number of days in your recall due date interval circulation rule, at the exact time you placed the recall. This is buggy behaviour.

5. Apply the patch and restart services
6. Check in Item A, do NOT fulfill the recall
7. Cancel the recall

8. Check out Item A to Patron A
9. Log into the database and check the due date for that checked out item, e.g.

SELECT date_due FROM issues WHERE itemnumber = XXXX;

--> It should be YYYY-MM-DD 23:59:00

10. Log into the OPAC as Patron B and place a recall on Item A. This will force a change to the recall's due date. Check the due date in the database

SELECT date_due FROM issues WHERE itemnumber = XXXX;

--> It should be today + the number of days in your recall due date interval circulation rule, with time of 23:59:00.

11. Check in Item A, do NOT fulfill the recall
12. Cancel the recall

13. Check out Item A to Patron A. Specify a due date and change the due time so it isn't 23:59.
14. Log into the OPAC as Patron B and place a recall on Item A. This will force a change to the recall's due date. Check the due date in the database

SELECT date_due FROM issues WHERE itemnumber = XXXX;

--> It should be today + the number of days in your recall due date interval circulation rule, with time you set in Step 13.

15. Confirm tests pass t/db_dependent/Koha/Recalls.t

Sponsored-by: Catalyst IT
Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33933: Only show use restriction once on OPAC detail page
David Cook [Wed, 7 Jun 2023 05:30:40 +0000 (05:30 +0000)]
Bug 33933: Only show use restriction once on OPAC detail page

This patch removes a regression from bug 32611 that caused the
use restriction text to be shown twice for "Available" items.

Test plan:
0. Apply patch
1. Go to http://localhost:8081/cgi-bin/koha/cataloguing/additem.pl?biblionumber=29
2. Edit item and add "Restricted access" for "5 - Use restrictions"
3. Go to http://localhost:8080/cgi-bin/koha/opac-detail.pl?biblionumber=29
4. Note that "Status" says "Available (Restricted access)" and there is no
duplicate "Restricted access" at the top of that table cell

Signed-off-by: ebal <eric.balluto@univ-lyon2.fr>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 28196: Insert searchid in URL correctly, so it doesn't follow the hash
Phil Ringnalda [Tue, 20 Jun 2023 01:32:46 +0000 (18:32 -0700)]
Bug 28196: Insert searchid in URL correctly, so it doesn't follow the hash

Test plan:
1. Search the catalog in the staff client for anything which will return
   at least two results
2. Click on any result to go to the bib detail page
3. Click the edit button for any item attached to the bib
4. Verify that the loaded URL contains &searchid=scs_(a number), and
   that the URL ends with #edititem
5. Make any change to the item, save, verify that your change was made

Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34220: Only show biblio-view-menu.inc if their is an associated bib
Lucas Gass [Fri, 7 Jul 2023 23:12:56 +0000 (23:12 +0000)]
Bug 34220: Only show biblio-view-menu.inc if their is an associated bib

To test:
- Go to Tools > Log viewer
- Uncheck All modules
- Check the 'Catalog' module
- Make sure "To screen in the browser" is the selected output
- Click Submit

After the page loads, instead of the tools side navbar appearing on the left, a 'catalog detail' type navbar (Normal, MARC, ISBD, etc.) is present with links that error out as there's no associated bibnumber.

-Apply patch
-Try again, you should not see the biblio-view-menu
-Try one more time but this time add a valid biblionumber to the Object: field. Now the biblio-view-menu should show with links to that particular bib.

Works as advertised.
Signed-off-by: Alexander Blanchard <alexander.blanchard@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 31082: (QA follow-up) Fix translation - we are in a .tt not in a .js file
Katrin Fischer [Sun, 9 Jul 2023 15:33:01 +0000 (15:33 +0000)]
Bug 31082: (QA follow-up) Fix translation - we are in a .tt not in a .js file

Just changing from two to one underscore.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 31082: Make the string translatable
Jonathan Druart [Fri, 7 Jul 2023 09:40:32 +0000 (11:40 +0200)]
Bug 31082: Make the string translatable

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 31082: (follow-up) same for "remove" action button on bundle item list
Victor Grousset/tuxayo [Sun, 18 Jun 2023 22:39:19 +0000 (00:39 +0200)]
Bug 31082: (follow-up) same for "remove" action button on bundle item list

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 31082: Add tooltip to buttons when item bundles cannot be changed while checked out
Jonathan Druart [Thu, 25 May 2023 09:46:39 +0000 (11:46 +0200)]
Bug 31082: Add tooltip to buttons when item bundles cannot be changed while checked out

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33581: Add sample patrons to patch and some hints
Katrin Fischer [Thu, 8 Jun 2023 10:20:02 +0000 (10:20 +0000)]
Bug 33581: Add sample patrons to patch and some hints

* Adds sample patrons to the new dependency checking JS
* Adds a hind "requires sample libraries" to sample patrons
  and sample holidays.

To test:
* Build CSS (yarn build)
* Veriy the checkbox for sample patrons works like the
  sample holidays one
* Verify the hint shows up as intended

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33581: Disable sample holiday if libraries are not selected
Jonathan Druart [Wed, 7 Jun 2023 09:31:20 +0000 (11:31 +0200)]
Bug 33581: Disable sample holiday if libraries are not selected

If libraries are not selected we should not try to insert holidays, or
the installer will fail with a missing FK.

This patch simply disable and uncheck the checkbox when libraries are
not going to be inserted.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 32801: Prevent 500 on /checkouts
Jonathan Druart [Wed, 5 Jul 2023 10:26:09 +0000 (12:26 +0200)]
Bug 32801: Prevent 500 on /checkouts

If checked_in flag is passed we return the "old checkouts". But if the
item has been deleted we explode with
  "message":"Expected integer - got null.","path":"\/0\/item_id"

The specs should reflect that an item can have been deleted.

Test plan:
Hit the endpoint and confirm the above.
Can be done easily using curl:
  curl -u koha:koha --request GET 'http://localhost:8081/api/v1/checkouts?patron_id=5&checked_in=1' --header "Content-Type: application/json" | jq

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 32801: Add tests
Jonathan Druart [Wed, 5 Jul 2023 10:25:40 +0000 (12:25 +0200)]
Bug 32801: Add tests

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34094: (follow-up) Fix failing unit test
Martin Renvoize [Tue, 11 Jul 2023 13:26:46 +0000 (14:26 +0100)]
Bug 34094: (follow-up) Fix failing unit test

The unit tests were written to assume we always do a 'contains' search,
but the new system preference allows for 'starts_with' or 'contains'.

As such, for the tests to pass, we need to explicitly mock the
preference to 'contains'

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33893: Use template wrapper for tabs: OPAC checkout history
Owen Leonard [Mon, 5 Jun 2023 13:07:35 +0000 (13:07 +0000)]
Bug 33893: Use template wrapper for tabs: OPAC checkout history

This patch updates the OPAC checkout history page so that it uses
the new WRAPPER syntax to generate tabs markup.

This patch also updates tab WRAPPER directives in html_helpers.inc to
allow us to pass a custom id for tab links in situations like this one
where we have multiple tabs requiring unique IDs but they all point to
the same panel.

To test, apply the patch and make sure the OnSiteCheckouts system
preference is set to "disabled."

- Log into the OPAC as a patron with checkouts.
- View the checkout history page. The checkout history information
  should be displayed without any tabs.
- Enable the OnSiteCheckouts system preference and if necessary check
  out some on-site checkouts to your patron.
- On the OPAC history page there should now be three tabs: All,
  Checkouts, and On-site checokuts.
  - Switching between the tabs should filter the table accordingly.
- Test that the changes to the tab wrapper have not broken tabs on other
  pages, e.g. bibliographic details or user summary.

Signed-off-by: AlexanderBlanchardAC <alexander.blanchard@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 26862: Improve MARC21 530 display on detail pages
Katrin Fischer [Mon, 3 Jul 2023 16:19:28 +0000 (16:19 +0000)]
Bug 26862: Improve MARC21 530 display on detail pages

This makes some changes to the way we display field 530 in OPAC
and staff interface:

* Adds missing spaces before $u and between repeated $u subfields
* Adds a description/label before the output of the subfields
* Adds display to the staff interface (was OPAC only)
* Adds separators between repeated 530 fields:
  * OPAC: updates mark-up to use the new CSS driven separators
  * Staff interface: adds | with separator class

To test:
* Find or create a records with multiple 530 entries
* Repeat $u with multiple URLs
* Verify display in staff (missing) and OPAC
* Apply patch
* Verify display is improved :D

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Heather Hernandez <heather_hernandez@nps.gov>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34244: Improve contrast in staff interface main page layered icons
Owen Leonard [Mon, 10 Jul 2023 12:37:07 +0000 (12:37 +0000)]
Bug 34244: Improve contrast in staff interface main page layered icons

This patch adjusts CSS for the staff interface home page so that there
is better contrast with Font Awesome icons which are layered. The
main advanced search and item search links have two icons layered one on
top of the other, and the "lower" one needs to have better contrast
after the staff interface redesign.

To test, apply the patch and rebuild the staff interface CSS. Log into
the staff interface and confirm that the advanced search and item search
link icons are clear and distinguishable from each other.

Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34233: Move select2 include out of patron-search.inc
Lucas Gass [Fri, 7 Jul 2023 21:58:55 +0000 (21:58 +0000)]
Bug 34233: Move select2 include out of patron-search.inc

1. Apply patch
2. Place a hold and make sure the patron pickup locations are
   populating correctly again/
3. Work through the test plan on Bug 28726 to make sure it still works.
4. Enable ArticleRequests, make sure you can still do a patron search
   there.
5. Do a patron search from members.tt, make sure that still works.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34112: Replace fa.fa-pencil-alt with fa-solid.fa-pencil in edit buttons
Owen Leonard [Fri, 23 Jun 2023 13:54:43 +0000 (13:54 +0000)]
Bug 34112: Replace fa.fa-pencil-alt with fa-solid.fa-pencil in edit buttons

The FontAwesome class "fa-pencil-alt" works in v.6 but is actually a v.5
class. We should use "fa-solid fa-pencil" instead.

This patch also corrects some leftover instances of "fa-edit"

To test, apply the patch and view some pages in the OPAC and staff
interface which have updated icons, e.g.

 - Administration -> Libraries
 - Catalog -> Bibliographic details
 - OPAC -> Bibliographic details

Confirm that the pencil icon looks correct. Checking all modified
templates is probably too much, but inspecting the patch should show
that only fa-pencil-alt and fa-edit icons are affected.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33776: Additional default plugin repo in koha-conf-site.xml.in
Blou [Thu, 18 May 2023 20:39:05 +0000 (16:39 -0400)]
Bug 33776: Additional default plugin repo in koha-conf-site.xml.in

Solutions inLibro started formating its repository to be found by Bug
23975.  This patch adds it to the default list in the config template.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34218: Send a record copy to avoid loss of information and display problems
Thibaud Guillot [Thu, 6 Jul 2023 11:46:47 +0000 (13:46 +0200)]
Bug 34218: Send a record copy to avoid loss of information and display problems

As I wrote in the bug description, I encountered this problem in a particular case,
so I'll explain it in the test plan, but it's certainly likely to be encountered in different ways.

Test plan:

1) Link authorised values with  a field on a MARC framework, like a 942a related to branches
2) Set it on a record with no items
3) Activate syspref "AlternateHoldingsField" and set it to field 942a
4) Go to OPAC View and you will see "Holdings: " without any values
5) Apply this patch
6) Do step 4) again and now it's fixed

Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34137: Requested cancellation date column missing from holds awaiting pickup...
Owen Leonard [Wed, 28 Jun 2023 14:48:55 +0000 (14:48 +0000)]
Bug 34137: Requested cancellation date column missing from holds awaiting pickup table config

This patch adds an entry for the requested cancellation date column to
columns_settings.yml so that the column can be configured correctly in
table settings and on the fly.

To test you will need at least one hold with a cancellation request:

- Go to Administration -> Circulation and fine rules -> Default waiting
  hold cancellation policy
  - Add at least one rule allowing cancellation on waiting items.
- Place a hold for a patron which would fall under the rule you defined.
- Satisfy the hold by checking the item in at the hold's destination
  location.
- Cancel the hold, either by logging in to the OPAC as the patron with
  the hold, or in the staff client via the holds tab on the patron's
  record.

- Apply the patch and restart all services.
- Go to Circulation -> Holds awaiting pickup
- In the "Holds with cancellation requests" tab, confirm that there is a
  "Date cancellation requested" column and that it is one of the choices
  under the "Columns" button.
- Confirm that the correct columns are shown and hidden when making
  selections in the columns menu.
- Go to Administration -> Table settings -> Circulation -> Holds
  awaiting pickup.
   - Test setting "Is hidden by default" and "Cannot be toggled" for
     various columns in the table, including the "Date cancellation
     requested" column.

Signed-off-by: Quinn <quinn.morris@citruslibraries.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34116: Add page-sectioning to item search in label creator
Owen Leonard [Mon, 26 Jun 2023 17:51:29 +0000 (17:51 +0000)]
Bug 34116: Add page-sectioning to item search in label creator

This patch adds a "page-section" class to search results page seen when
adding items to a label batch. The patch also makes some minor changes
to markup around the search header to make it more consistent with other
search pages.

To test, apply the patch and go to Cataloging -> Label creator.

- Click New -> Label batch
- Without entering anything in the textarea, click the "Add item(s)"
  button"
- In the pop-up window, perform a search which will return multiple
  results.
- Confirm that everything looks correct and all controls work as they
  should.

Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33047: Return 404 instead of 500 when biblio does not exist
Jonathan Druart [Thu, 11 May 2023 13:49:08 +0000 (15:49 +0200)]
Bug 33047: Return 404 instead of 500 when biblio does not exist

If the biblionumber or the itemnumber passed in parameter does not
exist we should return 404 instead of exploding with a 500.

Test plan:
Attach cover images to biblio and items
Notice that the UI is working correctly (staff and OPAC)
Hit catalogue/image.pl and opac/opac-image.pl with non-existent
biblionumber and imagenumber
Notice that you now get 404 instead of 500

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34072: Remove float/clear from froms.scss
Lucas Gass [Tue, 20 Jun 2023 22:19:01 +0000 (22:19 +0000)]
Bug 34072: Remove float/clear from froms.scss

To test:
- go to /cgi-bin/koha/circ/view_holdsqueue.pl
- inspect something within the page to open the dev tools
- press ctrl-shift-m to show the device toolbar
- use the device toolbar to reduce the resolution of your window
- observe that the search controls are lost at smaller resolutions
- Apply patch, regerate CSS ( https://wiki.koha-community.org/wiki/Working_with_SCSS_in_the_OPAC_and_staff_interface ), clear browser cache
- Try again, you should now see the search controls
- Since this patch changes forms.scss try some other forms in Koha at different screen sizes to make sure they still look correct

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34086: Show location on detail page when there is no permenant location
Lucas Gass [Wed, 21 Jun 2023 19:21:05 +0000 (19:21 +0000)]
Bug 34086: Show location on detail page when there is no permenant location

To test:
1. Have some items without a permanent location.
2. Go to the staff detail page.
3. In the 'Home library' column notice the span .shelvingloc is empty.
4. Add a permanent location, now the shelvingloc is populated
5. Apply patch
6. The location should now show even when there is no permenant location.

Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33817: (QA follow-up) Fix tidyness
Tomas Cohen Arazi [Mon, 10 Jul 2023 17:31:40 +0000 (14:31 -0300)]
Bug 33817: (QA follow-up) Fix tidyness

This patch fixes some reported tidyness issues with the patches.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33817: (follow-up) Fix spec and messages
Martin Renvoize [Tue, 27 Jun 2023 11:03:58 +0000 (12:03 +0100)]
Bug 33817: (follow-up) Fix spec and messages

This patch should resolve the issues highlighted at signoff time by
Victor.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33817: Enforce server-side
Jonathan Druart [Thu, 25 May 2023 09:37:38 +0000 (11:37 +0200)]
Bug 33817: Enforce server-side

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33817: Prevent item bundle that is checked out to be modified
Jonathan Druart [Wed, 24 May 2023 11:16:14 +0000 (13:16 +0200)]
Bug 33817: Prevent item bundle that is checked out to be modified

While an item bundle is checked out, we don't want any items to be
added or removed from the bundle.

To test:
* Create a record with LDR Pos. 7 = c
* Add an item for your bundle
* Add one or more existing items from other records to the bundle
* Check out the bundle item
* Verify it appears correctly on the patron account
* Verify you can still add/remove items from the bundle
* Apply patch set
* Verify that the add/remove links are now disabled (greyed out)

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34005: Move button toggling code outside JS for loop
Andreas Roussos [Wed, 14 Jun 2023 14:00:15 +0000 (14:00 +0000)]
Bug 34005: Move button toggling code outside JS for loop

When OpacHighlightedWords is set to "Highlight", if you search
in the OPAC and the number of keywords is odd (1, 3, 5, etc.),
then the "Unhighlight" / "Highlight" button will stop working
after a couple of clicks. The relevant commit is 9cb89b46397
from v20.11.00, where the code responsible for toggling the
"Unhighlight" / "Highlight" button was moved inside the JS
for loop that cycles through each term in the array of search
terms. This explains why the toggling only works when an even
number of search terms is being used.

This patch fixes that, by placing the button toggling code in
its original position (outside the JavaScript for loop of the
highlightOn() function).

Test plan:

0) If required, set OpacHighlightedWords to "Highlight".

1) Search for "history" in the OPAC, and view the details page
   of one of the results. Click on the "Unhighlight" button a
   few times -- after a couple of clicks the button text will
   stop toggling and you won't be able to remove the keyword
   highlight any more.

2) Apply this patch.

3) Repeat step 1): this time you should be able to toggle the
   search keyword highlighting no matter how many times you
   click on the "Unhighlight" / "Highlight" button.

4) Repeat step 1), but this time search for "century history":
   you should be able to toggle search keyword highlighting in
   the details page on and off repeatedly without any problems.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34214: Make 'icon' configurable for Toolbar options
Jonathan Druart [Thu, 6 Jul 2023 07:19:11 +0000 (09:19 +0200)]
Bug 34214: Make 'icon' configurable for Toolbar options

Bug 33417 added a generic 'Toolbar' Vue component but always add a 'plus' icon. We should make it configurable.

Test plan:
Regenerate the Vue app: `yarn js:build`
Go to the ERM module and confirm that the toolbar has the '+' icon.

Sponsored-by: BULAC - http://www.bulac.fr/
Signed-off-by: Alexander Blanchard <alexander.blanchard@ptfs-europe.com>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34201: Restore sorting indicator on ERM tables
Jonathan Druart [Wed, 5 Jul 2023 11:47:23 +0000 (13:47 +0200)]
Bug 34201: Restore sorting indicator on ERM tables

DataTable Vue component keep the 'sorting' class on the th which display
the grey up/down icon over the blue icon which indicate the current sort
column

Test plan:
Create several agreements, notice that the list view is having the
sorting indicators (blue arrows) in the top right of the first column.
Sort the columns: asc, desc, combined sort (shift+click) and confirm
that the indicators are correct

Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33497: Don't get host items if the MARC record is invalid
Jonathan Druart [Fri, 7 Jul 2023 13:50:52 +0000 (15:50 +0200)]
Bug 33497: Don't get host items if the MARC record is invalid

When don't want to explode with "invalid data" later so we need to
condition the host_item search

call trace was
        Koha::Biblio::Metadata::record('Koha::Biblio::Metadata=HASH(0x55ab92e60120)') called at /kohadevbox/koha/Koha/Biblio.pm line 538
        Koha::Biblio::_host_itemnumbers('Koha::Biblio=HASH(0x55ab92e4d5c0)') called at /kohadevbox/koha/Koha/Biblio.pm line 498
        Koha::Biblio::items('Koha::Biblio=HASH(0x55ab92e4d5c0)', 'HASH(0x55ab934615d8)') called at /kohadevbox/koha/catalogue/detail.pl line 200

This is fixing t/db_dependent/selenium/regressions.t

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34124: Improve in-page navigation on table settings page
Owen Leonard [Mon, 26 Jun 2023 20:30:56 +0000 (20:30 +0000)]
Bug 34124: Improve in-page navigation on table settings page

This patch adds links to the table settings page so that the user can
jump directly to a particular table within a page section.

The patch also changes the logic of when in-page links are displayed: I
think it makes sense not to show a "Jump to page" link when there is
only one page. The page will show a "Jump to table" link only if there
is only one table.

To test, apply the patch and go to Administration -> Table settings.

- Expand and check multiple sections.
- In the "Administration" section, there are multiple pages.
  - Check that the "Jump to page" links work correctly.
- In the "Catalog" section, there is only one page: "detail."
  - Check that the "Jump to table" links work correctly.

Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34074: Improve translations of strings on the about page
Owen Leonard [Thu, 6 Apr 2023 10:21:35 +0000 (10:21 +0000)]
Bug 34074: Improve translations of strings on the about page

This patch makes a few simple changes to the about page template to
improve how the translation tool picks up strings to translate.

The patch also corrects a couple of lines where template tags contained
line breaks.

To test, apply the patch and view the about page in the staff interface.
Everything should look correct.

Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34212: Fix tests
Jonathan Druart [Thu, 6 Jul 2023 13:41:40 +0000 (15:41 +0200)]
Bug 34212: Fix tests

Not sure what we were trying to do, but apparently we only use the keys
to generate the id string. How did "please" end up here?

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34212: Compare strings with eq instead of ==
Jonathan Druart [Thu, 6 Jul 2023 13:41:15 +0000 (15:41 +0200)]
Bug 34212: Compare strings with eq instead of ==

And don't ignore warnings next time ;)

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34212: Replace Koha::Checkouts->find with $item->checkout
Martin Renvoize [Thu, 6 Jul 2023 06:44:48 +0000 (07:44 +0100)]
Bug 34212: Replace Koha::Checkouts->find with $item->checkout

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33781: Terminology: Item already issued to other borrower.
Owen Leonard [Thu, 25 May 2023 13:24:28 +0000 (13:24 +0000)]
Bug 33781: Terminology: Item already issued to other borrower.

This patch updates a couple of error message strings so that they use
the correct terminology and read well.

"This item is on hold for another borrower." becomes "This item is on
hold for another patron."

"Item already issued to other borrower." becomes "This item is already
checked out to another patron."

To test, apply the patch and log into the OPAC as a patron who has items
checked out which are available for renewal.

In another tab, place a hold on one of those items on behalf of a
different patron.

Back in your OPAC tab, click the "Renew" link next to the title which is
now on hold. The page should reload and show the updated message, "This
item is on hold..."

I was not able to trigger the other message.

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33858: Format dates in offline circ
Jonathan Druart [Wed, 7 Jun 2023 08:57:37 +0000 (10:57 +0200)]
Bug 33858: Format dates in offline circ

1 - check item 3999900000001 out to a patron
2 - upload the attached KOC file from bug 33838
3 - navigate to pending offline circ actions
4 - verify that the date is shown unformatted
5 - apply patch
6 - verify that the date is now shown formatted

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Univ Brest <cecile.lambour@univ-brest.fr>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34131: (QA follow-up) Update page title to reflect breadcrumbs and side-menu...
Pedro Amorim [Fri, 7 Jul 2023 10:46:14 +0000 (10:46 +0000)]
Bug 34131: (QA follow-up) Update page title to reflect breadcrumbs and side-menu behaviour

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34131: (QA follow-up): Add 'ill_availability_services' to method filter check
Pedro Amorim [Fri, 7 Jul 2023 10:34:22 +0000 (10:34 +0000)]
Bug 34131: (QA follow-up): Add 'ill_availability_services' to method filter check

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34131: Add 'current' class on correct side menu link
Pedro Amorim [Tue, 27 Jun 2023 12:38:09 +0000 (12:38 +0000)]
Bug 34131: Add 'current' class on correct side menu link

This changes the way we're looking for the correct menu item to set as
active.

If we don't find an exact match for path+params, we attempt to set
'current' to just matching on path.

What this does is it sets the 'Plugins' menu item as active, even if
the url is 'plugins-home.pl?method=report

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34131: Update breadcrumbs and side bar
Pedro Amorim [Tue, 27 Jun 2023 12:33:16 +0000 (12:33 +0000)]
Bug 34131: Update breadcrumbs and side bar

Update plugins-home accordingly if tool plugins only filter is being
used or not.
Update breadcrumbs for plugins-disabled page

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33790: Fix and add various links to the manual
Katrin Fischer [Mon, 29 May 2023 19:39:03 +0000 (19:39 +0000)]
Bug 33790: Fix and add various links to the manual

* Makes the move from tools to cataloguing for the pages linked
  from the cataloguing start page
* Adds missing help links to admin and tools pages
* Fix other existing links

To test:
* Best is to look at the patch, you'll see the pages you need
  to test on the left.
* Open the page and access the help page through the help link
  Note: for a few links you'll need to update the version in the
  URL to 23.05 (identity providers is one) as the page doesn't
  exist yet in the 22.11 manual

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33974: (follow-up) _order_by is not always an arrayref
Tomas Cohen Arazi [Thu, 6 Jul 2023 18:50:40 +0000 (15:50 -0300)]
Bug 33974: (follow-up) _order_by is not always an arrayref

The loop through the `_order_by` query parameter occurences introduced
by this patchset was naive regarding the possible scenarios.

When there's only one parameter passed, it shouldn't be expecting an
arrayref, but a scalar. This patch deals with that in the simplest way.

To test:
1. Run:
   $ ktd --shell
  k$ prove t/db_dependent/Koha/REST/Plugin/Objects.t
=> FAIL: Tests are failing
2. Apply this patch
3. Repeat 1
=> SUCCESS: Tests pass!
4. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34107: Switch order for id and name feeding the first column in datatables
Pedro Amorim [Tue, 4 Jul 2023 15:26:27 +0000 (15:26 +0000)]
Bug 34107: Switch order for id and name feeding the first column in datatables

Test plan:
* Create 3 agreements, agreement #1 named 'a', agreement #2 named 'c' and agreement #3 named 'b'.
* Go to agreements list, click the Name column header, notice how the agreements get sorted by id #, not by first char in name. Expected order would be abc or cba, but it's acb or bca.
* Apply patch, on k-t-d, run the following if you're not using 'yarn js:watch':
    yarn js:build
* Sort the list again on the 'name' column, notice how it now sorts alphabetically as expected, either abc or cba.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33029: Add wrapper method for dt_from_string to KohaDates template toolkit plugin
Kyle Hall [Tue, 21 Feb 2023 17:45:48 +0000 (12:45 -0500)]
Bug 33029: Add wrapper method for dt_from_string to KohaDates template toolkit plugin

It would be very useful to have direct access to dt_from_string in our templates. This would allow for us to handle custom date and time formatting. It would, for example, allow us to output the month name for a given date via Template Toolkit easily.

Test Plan:
1) Apply this patch
2) In a notice add '[% Use KohaDates %][% KohaDates.datetime_from_string().ymd %]' to the top of a notice
3) Generate that notice for a patron
4) Note today's date in iso format is rendered at the top of the notice

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Aleisha Amohia <aleishaamohia@hotmail.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34002: Check for stage_marc_import permssion
Lucas Gass [Tue, 13 Jun 2023 19:41:48 +0000 (19:41 +0000)]
Bug 34002: Check for stage_marc_import permssion

-1 Log in to the staff client as a user who has  Acquisition management (acquisition) permissions but not the stage_marc_import (tools) permission.
-2 Go to Acquisitions and Add to a basket.
-3 Select 'From a new file'
-4 You will be logged out as the user does not have percussion to visit that page.
-5 Apply patch
-6 Try again, you will not see the link for 'From a new file' if you don't have the permssion.
-7 Give the user the stage_marc_import, you will now see the link

Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33606: (QA follow-up) Cosmetic changes
Marcel de Rooy [Fri, 23 Jun 2023 07:11:23 +0000 (07:11 +0000)]
Bug 33606: (QA follow-up) Cosmetic changes

Even the POD name wasnt changed after copying :)

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33606: Fix settings
Pedro Amorim [Wed, 17 May 2023 16:28:23 +0000 (16:28 +0000)]
Bug 33606: Fix settings

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33606: Mark the endpoint as experimental
Jonathan Druart [Tue, 16 May 2023 12:33:29 +0000 (14:33 +0200)]
Bug 33606: Mark the endpoint as experimental

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33606: Add a erm/config route to retrieve the ERM config needed for the Vue app
Jonathan Druart [Tue, 25 Apr 2023 13:56:51 +0000 (15:56 +0200)]
Bug 33606: Add a erm/config route to retrieve the ERM config needed for the Vue app

This could be extended later in bug 32968 to pass the permission of the
logged in user.

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 34174: (bug 33341 follow-up) Fix Ris export
Jonathan Druart [Wed, 5 Jul 2023 14:45:19 +0000 (16:45 +0200)]
Bug 34174: (bug 33341 follow-up) Fix Ris export

Bug 33341 incorrectly fix the perlcritic warning.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33667: Allow copying holidays to all libraries when editing
Emmi Takkinen [Tue, 23 May 2023 12:29:12 +0000 (15:29 +0300)]
Bug 33667: Allow copying holidays to all libraries when editing

When editing an existing holiday and checking the
"copy to all libraires" checkbox, the other calendars won't
get updates. Allow this by first checking if holiday exists
in target calendar and if not, add it.

To test:
1. Add unique holiday to branch A.
2. Don't check checkbox "Copy to all libraries".
3. Save.
4. Verify the holidays shows on all calendars as
a green box.
5. Edit the holiday, now check "Copy to all libraries"
and save.
=> Verify nothing has changed in other calendars:
only the green box, no holiday in list on the right
6. Edit again, make a change to description,
check checkbox, save.
=> Verify it's still not showing in the other
calendars.
9. Apply this patch.
10. Edit holiday again, check "Copy to all libraries"
and save.
=> Verify holiday is now added to other calendars.
11. Edit again, this time do not copy and save.
=> Verify holiday was edited just in branch A.
12. Again edit, check and save.
=> Verify holiday was edited in all libraries.

Sponsored-by: Koha-Suomi Oy
Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 18855: Don't create duplicate overdue fines if an issue is returned
Michael Hafen [Thu, 19 Jan 2023 21:56:31 +0000 (14:56 -0700)]
Bug 18855: Don't create duplicate overdue fines if an issue is returned

This includes Jonathan's followup

If cronjobs/fines.pl is running during circulation hours, then an issue may
be considered for having it's overdue fine updated after the issue has been
returned and it's fine status flipped from 'UNRETURNED' to 'RETURNED'.  In
this case UpdateFine will create a duplicate fine because it can't find the
specific accountline for the (formerly) overdue issue.

This changes cronjobs/fines.pl to double check the issue before updating
the fine.  If the issue has changed between starting the script and updating
the fine, then the script will skip it.

There is a small amount of time between the check and calling UpdateFine
where the issue can be changed and this problem can reoccure.  The chance
of that happening is so small that it's probably fine to leave as is.

It is also possible that the fine won't be updated because the issue was
returned.  In this case the fine payed by the patron will be lower, but that
is better then the patron finding later that there is more to a fine they
thought they had paid all of.

Test plan (by Caroline):
0. Preliminary settings
   0.1. finesMode system preference must be set to Calculate and charge
   0.2. There must be a circulation rule that will charge fines (beware of bug 32271)
   0.3. In Tools > Calendar, today must not be a holiday

1. Make a lot of overdue checkouts - I used the batch checkout feature, but if your system already has a lot of overdue checkouts, you can skip to step 2

   1.1. Enable batch checkouts
        1.1.1. Go to Administration > Global system preferences
        1.1.2. Search for BatchCheckouts
        1.1.3. Set BatchCheckouts to Allow
        1.1.4. Select all categories in BatchCheckoutsValidCategories
        1.1.5. Click "Save all Circulation preferences"

   1.2. Get a list of barcodes
        1.2.1. Go to Reports
        1.2.2. Click "Create from SQL"
        1.2.3. Give the report a name
        1.2.4. For the SQL query, enter

               SELECT barcode FROM items WHERE onloan IS NULL LIMIT 60;

1.2.5. Click "Save report"
1.2.6. Click "Run report"
1.2.7. Click "Download" > "Tab separated text"

   1.3. Go to a patron's file
        1.3.1. Go to Patrons
        1.3.2. Click on "Search"
        1.3.3. Click on a patron's name

   1.4. Do a batch checkout with a due date in the past
        1.4.1. Click on the "Batch check out" tab on the left
        1.4.2. In "Use a file", click "Choose file"
        1.4.3. Choose the file downloaded from the report
        1.4.4. In "Hard due date", choose a date in the past
        1.4.5. Click "Check out"
        1.4.6. Click "Checkout or renew"

2. Find the last issue in the database

   2.1. In the database (or in reports), type the following query

        SELECT issues.*, items.itype as itemtype, items.homebranch, items.barcode, items.itemlost, items.replacementprice, items.biblionumber FROM issues  LEFT JOIN items USING (itemnumber) WHERE date_due < NOW() \G;

   2.2. Copy the barcode from the last entry

3. Set up so that you can run fines.pl and check in the item at the same time (or very close to the same time)

   3.1. In Koha, click the "Check in" option in the search bar at the top of the page
   3.2. Paste the barcode in the search bar BUT DO NOT PRESS ENTER OR THE ARROW RIGHT AWAY
   3.3. In a terminal, enter the fines.pl command

        ./misc/cronjobs/fines.pl

   3.4. Execute the command and immediately click on the arrow in the staff interface to check in the item

4. Check the patron's fines

    4.1. Click on the patron's name in the check in screen
    4.2. Go to the Accounting tab on the left
    4.3. In the search box just above the table, paste in the returned item's barcode

    --> Without the patch, there are two fines, one Fine (Accruing) and one Fine (Returned) for the same item at the same time
    --> With the patch, there is only one fine, Fine (Returned)

Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33497: (follow-up) Adjust relationship name from bug 33493
Nick Clemens [Wed, 31 May 2023 12:06:20 +0000 (12:06 +0000)]
Bug 33497: (follow-up) Adjust relationship name from bug 33493

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
16 months agoBug 33497: (follow-up) Remove unecessary scalar
Nick Clemens [Wed, 31 May 2023 11:32:54 +0000 (11:32 +0000)]
Bug 33497: (follow-up) Remove unecessary scalar

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>