koha.git
3 years agoBug 27797: Make POST /holds use the stashed koha.overrides
Tomas Cohen Arazi [Fri, 26 Feb 2021 13:51:52 +0000 (10:51 -0300)]
Bug 27797: Make POST /holds use the stashed koha.overrides

Bug 26181 introduced a way to override behavior through a new header,
x-koha-override. And bug 27760 introduced a generic approach to handle
x-koha-override.

This patchset makes the POST /api/v1/holds route rely on this new way of
handling x-koha-override instead of doing it manually.

The header is added to the spec as a parameter.

Note: the header should be defined as:

    "type": "array",
    "collectionFormat": "csv",
    "items": {
        "type": "string",
        "enum": [
            "any"
        ]
    }

but the versions of JSON::Validator we use have lots of bugs related to
header type coercion, so it just doesn't work. The changelog for
JSON::Validator is fairly elocuent about it.

The override now takes a list of valid keywords (right now only 'any'
but it would be fairly straight-forward to add a fairly granular set of
options based on each possible AddReserve failure.

To test:
1. Apply this patches
2. Run:
   $ kshell
  k$ prove t/db_dependent/api/v1/holds.t
=> SUCCESS: Tests pass!
4. Sign off!

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27797: Unit tests
Tomas Cohen Arazi [Fri, 26 Feb 2021 13:50:46 +0000 (10:50 -0300)]
Bug 27797: Unit tests

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27760: (QA follow-up) Improve POD
Tomas Cohen Arazi [Thu, 11 Mar 2021 11:03:13 +0000 (08:03 -0300)]
Bug 27760: (QA follow-up) Improve POD

This patch improves the POD for the added helper, and also adds
references to the JSON::Validator issue that explains the current
implementation. A FIXME is added for when we upgrade our used
JSON::Validator version.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27760: Improve readabiliity using map
Jonathan Druart [Thu, 11 Mar 2021 10:15:26 +0000 (11:15 +0100)]
Bug 27760: Improve readabiliity using map

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27760: Make authenticate_api_request call stash_overrides
Tomas Cohen Arazi [Thu, 25 Feb 2021 12:43:11 +0000 (09:43 -0300)]
Bug 27760: Make authenticate_api_request call stash_overrides

By making this method call the helper, we make sure the overrides
hashref is available to any controller to make us of it.

To test:
1. Apply this patches
2. Run:
   $ kshell
  k$ prove t/db_dependent/api/v1/auth_authenticate_api_request.t \
           t/Koha/REST/Plugin/Query.t
=> SUCCESS: Tests pass! The helper works as expected and the
authenticate_api_request method invokes it!
3. Sign off :-D

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27760: Add stash_overrides helper
Tomas Cohen Arazi [Thu, 25 Feb 2021 12:35:28 +0000 (09:35 -0300)]
Bug 27760: Add stash_overrides helper

This patch adds a simple helper that reads the x-koha-override request
header, and processes it to stash a hashref with the passed overrides.

No check on the overrides themselves is done, as they should be
validated using the OpenAPI spec.

To test:
1. Apply this patch
2. Run:
   $ kshell
  k$ prove t/db_dependent/api/v1/auth_authenticate_api_request.t
=> SUCCESS: Tests pass!
3. Sign off :-D

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27864: (QA follow-up) Select2 style on multi-holds
Tomas Cohen Arazi [Fri, 30 Apr 2021 14:31:13 +0000 (11:31 -0300)]
Bug 27864: (QA follow-up) Select2 style on multi-holds

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27864: (QA follow-up) Hide logged-in option if invalid pickup location
Tomas Cohen Arazi [Fri, 30 Apr 2021 12:55:26 +0000 (09:55 -0300)]
Bug 27864: (QA follow-up) Hide logged-in option if invalid pickup location

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27864: (QA follow-up) Remove size=1 on selects (28066 follow-up)
Tomas Cohen Arazi [Mon, 26 Apr 2021 11:21:41 +0000 (08:21 -0300)]
Bug 27864: (QA follow-up) Remove size=1 on selects (28066 follow-up)

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27864: Correct dropdown size
Tomas Cohen Arazi [Mon, 15 Mar 2021 14:36:04 +0000 (11:36 -0300)]
Bug 27864: Correct dropdown size

This patch makes the dropdown width inherit the existing style.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27864: Visual feedback on overridden pickup locations when placing hold
Tomas Cohen Arazi [Fri, 12 Mar 2021 21:01:28 +0000 (18:01 -0300)]
Bug 27864: Visual feedback on overridden pickup locations when placing hold

This patch makes the form for placing a hold, use the API to retrieve
the valid pickup locations for a biblio.

To test:
1 - In Circulation and fines rules > Default checkout, hold and return policy, change 'Hold pickup library match' to 'item's home library'
2 - Set AllowHoldPolicyOverride system preference to Allow
3 - Try placing a hold on a biblio with several items.
    Ensure that there is one item with homebranch of the patrons branch and
    one at another branch
4 - Note the pickup location dropdown lists all branches, even those not matching the policy (Item's home library)
5 - FAIL: There's no sign they are overrides to rules
6 - Apply the patch
7 - Repeat 3
8 - SUCCESS: Same behavior as before all libraires listed, but there's a sign
    + tooltip for overridden ones.
9 - Sign off :-D

Note: styling follow-up coming

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27932: Add GET /biblios/:biblio_id/pickup_locations route
Tomas Cohen Arazi [Thu, 11 Mar 2021 18:47:10 +0000 (15:47 -0300)]
Bug 27932: Add GET /biblios/:biblio_id/pickup_locations route

This patch adds the mentioned route. It does so by:
- Adding the new path in paths.json
- Adding the full route spec in biblios.json
- Adds a controller method that takes care of the task

To test:
1. Apply this patches
2. Run:
   $ kshell
  k$ prove t/db_dependent/api/v1/biblios.t
=> SUCCESS: Tests pass!
3. Play with your favourite REST tool. Pay special care to
   the AllowHoldPolicyOverride syspref and the expected behaviors.
=> SUCCESS: All works as expected
4. Sign off :-D

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27932: Unit tests
Tomas Cohen Arazi [Thu, 11 Mar 2021 18:46:57 +0000 (15:46 -0300)]
Bug 27932: Unit tests

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28270: (bug 24279 follow-up) Fix tooltip for the claim lost status
Jonathan Druart [Fri, 30 Apr 2021 12:27:20 +0000 (14:27 +0200)]
Bug 28270: (bug 24279 follow-up) Fix tooltip for the claim lost status

It says "At least one item is available at this library" instead of
"Return claims must be processed from the patron details page"
(like on cataloguing/additem)

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28170: Fix upload.tt search result buttons for page two onwards
Lari Taskula [Mon, 19 Apr 2021 14:54:34 +0000 (14:54 +0000)]
Bug 28170: Fix upload.tt search result buttons for page two onwards

From https://datatables.net/faqs/index

"When attaching events to cells in a table controlled by DataTables, you need
to be careful how it is done. Because DataTables removes nodes from the DOM,
events applied with a static event listener might not be able to bind
themselves to all nodes in the table."

Before this patch, there were three non-functional buttons on upload search
result page, "+ Choose", "Download" and "Delete".

This patch binds the handlers to a static element so that the three buttons
in upload.tt on page two onwards are functional again.

To test:
1. This test is for the "Download" and "Delete" buttons
1.1. Before applying patch, go to cgi-bin/koha/tools/upload.pl
1.2. Make sure you have at least 21 files uploaded
1.3. Perform a search via "Search term" form so that at least 21 results are
     returned (e.g. a dot (.) as the search term should return all files with
     filetype)
1.4. Press "Download" and "Delete" for the first result row, it should work
     as expected (no need to actually delete the file - as long as it pops up
     a confirmation, it works as expected)
1.5. Go to page 2 of results
1.6. Press "Download" and "Delete" for the first result in page 2
1.7. Observe nothing happening
1.8. Apply patch
1.9. Repeat steps 3-6
1.10. Observe buttons working as expected

2. This test is for the "+ Choose" button
2.1. Go to cgi-bin/koha/admin/marc_subfields_structure.pl?op=add_form&tagfield=856&frameworkcode=#subufield
2.2. Under "Other options (choose one), for "Plugin", select "upload.pl"
2.3. Find a biblio and click Edit Record
2.4. Go to 856$u and click "Upload"
2.5. Repeat steps 1.1. - 1.10., but this time for the "+ Choose" button

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28207: Fix biblio_framework.frameworktext isn't in GROUP BY
Jonathan Druart [Mon, 26 Apr 2021 08:49:12 +0000 (10:49 +0200)]
Bug 28207: Fix biblio_framework.frameworktext isn't in GROUP BY

When a new framework is created and "Marc structure" is opened, a SQL
error happened if sql_strict_mode is on.

Test plan:
Create a 2 new biblio frameworks
Click "Marc structure" for one of them
=> You see the list of all frameworks with an existing structure

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28217: Prevent several non-repeatable attributes to be merged
Jonathan Druart [Fri, 23 Apr 2021 13:37:46 +0000 (15:37 +0200)]
Bug 28217: Prevent several non-repeatable attributes to be merged

When using the patron merge feature it's possible to generate a patron
with several non-repeatable attributes.

This patch prevents that.

Test plan:
Create 2 patron attribute types, one repeatable and one non-repeatable
Create 2 patrons and add them repeatable attributes
Add a non-repeatable attribute to one of them
Merge the 2 patrons
=> It succeeds, the resulting patron has all the repeatable attribute
and the non-repeatable one.

Do it again but this time add non-repeatable to both patrons
Merge them
=> It fails, you should see an error on the UI
  Merge failed! The following error was reported: Tried to add more than one non-repeatable attributes. type=TYPE value=VALUE.

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27061: Remove duplicate permission check in svc/mana/search
Jonathan Druart [Fri, 20 Nov 2020 08:04:30 +0000 (09:04 +0100)]
Bug 27061: Remove duplicate permission check in svc/mana/search

There is a call to check_cookie_auth then another one to get_template_and_user

Test plan:
Use mana to create new report and new subscription.
Confirm that you need the necessary permissions to use it

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28244: DBRev 20.12.00.044
Jonathan Druart [Fri, 30 Apr 2021 07:49:22 +0000 (07:49 +0000)]
Bug 28244: DBRev 20.12.00.044

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28244: Fix typo in Ukrainian in history
Victor Grousset/tuxayo [Fri, 30 Apr 2021 01:38:28 +0000 (03:38 +0200)]
Bug 28244: Fix typo in Ukrainian in history

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28244: Fix typo in Ukrainian in language tables in English
David Cook [Wed, 28 Apr 2021 04:53:07 +0000 (04:53 +0000)]
Bug 28244: Fix typo in Ukrainian in language tables in English

This changes the English of Ukranian to Ukrainian.

1) Apply patch
2) Go to http://localhost:8080/cgi-bin/koha/opac-search.pl
3) Click on "Language" drop-down
4) Note near the bottom it says "Ukrainian" instead of "Ukranian"

Signed-off-by: Henry Bolshaw <bolshawh@parliament.uk>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28258: DBRev 20.12.00.043
Jonathan Druart [Fri, 30 Apr 2021 07:50:26 +0000 (07:50 +0000)]
Bug 28258: DBRev 20.12.00.043

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28258: Fix existing occurrence
Jonathan Druart [Thu, 29 Apr 2021 08:43:31 +0000 (10:43 +0200)]
Bug 28258: Fix existing occurrence

I think it's good to fix the original problem as well

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28258: Update bad formatting in AUTO_RENEWALS notice
Lucas Gass [Wed, 28 Apr 2021 20:48:37 +0000 (20:48 +0000)]
Bug 28258: Update bad formatting in AUTO_RENEWALS notice

To test:
-Look at the AUTO_RENEWALS notice and see the syntax [% checkout.date_due as_due_date => 1 %]
-Apply patch, updatedatabase
-Look at the AUTO_RENEWALS notice and see the syntax [% checkout.date_due | $KohaDates as_due_date => 1%]

Additional test:
1 - Checkout an item to a patron
2 - Find their borrowernumber, the itemnumber, and the biblionumber
3 - Use the get_prepared_letter script to test the letter content
    perl misc/devel/get_prepared_letter.pl --module circulation --letter-code AUTO_RENEWALS --tables="{\"borrowers\": 5,\"issues\": 1040,\"items\": 1040,\"biblio\": 2 }"

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28250: Remove upload of debug for Selenium failures
Jonathan Druart [Wed, 28 Apr 2021 10:18:36 +0000 (12:18 +0200)]
Bug 28250: Remove upload of debug for Selenium failures

We added an upload of the source page and of the screenshot but both services are discontinued.

If we need them back we must host them ourselves.

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28249: Prevent Selenium->wait_for_element_visible to fall in an infinite loop
Jonathan Druart [Wed, 28 Apr 2021 12:52:20 +0000 (14:52 +0200)]
Bug 28249: Prevent Selenium->wait_for_element_visible to fall in an infinite loop

Stop if max_retries is reached

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27811: Hide the Accounting tab if needed
Jonathan Druart [Thu, 22 Apr 2021 12:23:05 +0000 (14:23 +0200)]
Bug 27811: Hide the Accounting tab if needed

Same as the previous patch for the "Accounting" tab of the circulation
module.

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27811: Hide payment buttons if not enough permission
Jonathan Druart [Thu, 22 Apr 2021 12:20:27 +0000 (14:20 +0200)]
Bug 27811: Hide payment buttons if not enough permission

If the logged in librarian does not have the updatecharges >
remaining_permissions subpermission, we should hide the 2 "Make payment"
and "Pay all fines" button from the patron detail/circ page.

Test plan:
1 - Grant an account circulation/staffaccess permissions and any subpermissions in updatechagres but NOT 'remaining_permissions'
2 - Add some charges to a patron account
3 - Sign in with the account created in #1
4 - Bring up the patron you added charges to
=> The two buttons are not displayed

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27636: (QA follow-up) Unit tests for AutoReconcile
Martin Renvoize [Thu, 29 Apr 2021 06:39:21 +0000 (07:39 +0100)]
Bug 27636: (QA follow-up) Unit tests for AutoReconcile

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27636: (QA follow-up) Restore force AutoReconcile
Martin Renvoize [Wed, 28 Apr 2021 13:36:27 +0000 (14:36 +0100)]
Bug 27636: (QA follow-up) Restore force AutoReconcile

This patch restores the behaviour ->pay always acting as though
`AccountAutoReconcile` was enabled.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27636: Be explicit on the exception we expect
Jonathan Druart [Wed, 28 Apr 2021 09:32:09 +0000 (11:32 +0200)]
Bug 27636: Be explicit on the exception we expect

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27636: (QA follow-up) Fix tests and validate
Martin Renvoize [Wed, 28 Apr 2021 09:21:14 +0000 (10:21 +0100)]
Bug 27636: (QA follow-up) Fix tests and validate

This patch fixes the tests for when a negative amount is passed to the
pay method.  Prior to now, a negative amount would have been passed
through and recorded. This was inconsistent with all other accounts
methods and has been deprecated to ensure consistent amounts handling.

This patch also introduces basic validation to prevent negatives being
entered into the UI.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 17202: DBIC schema changes
Jonathan Druart [Thu, 29 Apr 2021 07:55:38 +0000 (09:55 +0200)]
Bug 17202: DBIC schema changes

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28202: Pickup libraries must be sorted by name when placing hold
Fridolin Somers [Fri, 23 Apr 2021 09:10:15 +0000 (11:10 +0200)]
Bug 28202: Pickup libraries must be sorted by name when placing hold

When placing hold, the pickup libraries are not sorted by name but by code.

You can see in other places : pickup_locations() calls
Koha::Libraries->search with { order_by => ['branchname'] }

Test plan :
1) Go to staff interface
2) Create a new libary with code 'AAA' and name 'ZZZ'.
2) Select a record
3) Begin placing hold
4) Look at list in "Pickup at:"
=> Without patch library 'ZZZ' is first
=> With patch library 'ZZZ' is last

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28202: Unit test
Fridolin Somers [Fri, 23 Apr 2021 10:49:33 +0000 (12:49 +0200)]
Bug 28202: Unit test

Run prove t/db_dependent/Koha/Biblio.t

Note that sort must be case insensitive.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28169: Add quotes around value in template to render proper JS
Andrew Nugged [Mon, 19 Apr 2021 12:02:09 +0000 (15:02 +0300)]
Bug 28169: Add quotes around value in template to render proper JS

There is code in request.tt:

    homebranch: "[% ... %]",
    holdallowed: [% ... %]

There only digits where expected earlier in holdallowed
but now it can be string value ('from_any_library' for example),
so it should be in quotes.

To reproduce the problem:
1. Add circulation rules which allow 1 hold only to the itemtype
2. Make sure AllowHoldPolicyOverride syspref enabled
3. Make 1 hold to patron for any biblio which has a few items available,
   for example on "reset_all dev db set":
   /cgi-bin/koha/reserve/request.pl?biblionumber=4&findborrower=1
   (this biblio record has 4 items)
4. Start another hold for same patron on any biblio record or the same,
   and keep browser's JS console open,
   for example on "reset_all dev db set":
   /cgi-bin/koha/reserve/request.pl?biblionumber=4&findborrower=1
5. You should see now JS error in browser console:
   Uncaught ReferenceError: from_any_library is not defined
   Uncaught ReferenceError: columns_settings_borrowers_table is not defined
6. Apply the patch
7. Repeat the steps 4-5 (reload the page) and now the JS error should be gone

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28148: Remove 'print' class from 'Print transfer slip' when transfer exists
Nick Clemens [Wed, 14 Apr 2021 15:17:53 +0000 (15:17 +0000)]
Bug 28148: Remove 'print' class from 'Print transfer slip' when transfer exists

The 'print' class triggers JS to create the transfer and update a form

When a transfer exists we have no form and use 'openWin' to trigger the
print

Also, I remove a stray '1' in the template

To test:
1 - Set AutomaticItemReturn to "Don't"
2 - Check in an item from another branch
3 - Confirm the transfer
4 - Check it in again
5 - Click 'Print slip'
6 - Note error in console:
    Uncaught TypeError: this.form is null
7 - apply patch
8 - Repeat
9 - No error!

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27819: Fix Object POD
Nick Clemens [Sat, 27 Feb 2021 17:48:29 +0000 (17:48 +0000)]
Bug 27819: Fix Object POD

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27819: Spurious item deletion errors from delete_records_via_leader.pl
Nick Clemens [Sat, 27 Feb 2021 17:24:56 +0000 (17:24 +0000)]
Bug 27819: Spurious item deletion errors from delete_records_via_leader.pl

The job reports errors when deleting items.

The issue seems to be that Koha::Object->delete claims in the POD to
return -1, 0, or 1 as a result, but it in fact returns the Object
itself on a successful deletion

The errors are reported as:
ERROR DELETING ITEM 501740: Koha::Item=HASH(0x55ce407a1a78)

To recreate:
 1 - Find or create a record with some items
 2 - Ensure those  items can be deleted (not on loan, etc.)
 3 - Edit the record leader and set position 5 to 'd'
 4 - perl misc/cronjobs/delete_records_via_leader.pl -i -v --confirm
 5 - Deletion succeeds, but reports failure on items
 6 - Apply patch
 7 - Find or create a new record as above, but this time add an
     additional item and check it out to a patron
 8 - perl misc/cronjobs/delete_records_via_leader.pl -i -v
 9 - Test mode should report 1 item to be deleted, one with error
10 - perl misc/cronjobs/delete_records_via_leader.pl -i -v --confirm
11 - One item should be deleted, one item not, record not deleted
12 - check the item in
13 - perl misc/cronjobs/delete_records_via_leader.pl -i -v --confirm
14 - Successful deletion with no error reported

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 17202: DBRev 20.12.00.042
Jonathan Druart [Wed, 28 Apr 2021 09:07:26 +0000 (09:07 +0000)]
Bug 17202: DBRev 20.12.00.042

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 17202: (follow-up) Conditionally add FK
Nick Clemens [Tue, 27 Apr 2021 12:52:26 +0000 (12:52 +0000)]
Bug 17202: (follow-up) Conditionally add FK

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 17202: (QA follow-up) Add foreign key constraint
Kyle M Hall [Fri, 23 Apr 2021 13:36:03 +0000 (09:36 -0400)]
Bug 17202: (QA follow-up) Add foreign key constraint

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 17202: Don't report an item in a collection if the collection doesn't exist
Nick Clemens [Wed, 7 Apr 2021 13:56:56 +0000 (13:56 +0000)]
Bug 17202: Don't report an item in a collection if the collection doesn't exist

This simply adds a JOIN to the collections table - if the collection is gone
then the item is not considered to be in a rotating collection

Also remove variable to store the return that is not used later

To test:
Create a rotating collection
Add an item
Delete the rotating collection
View the db (SELECT * FROM collections_tracking;)
The item is still in the collection
Enable AutomaticItemReturn
Checkin the item at a branch not its home
The item does not get transferred home
Apply patch
Restart all the things
Check in the item, it is transferred home

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 17202: Unit tests
Nick Clemens [Tue, 27 Apr 2021 12:48:26 +0000 (12:48 +0000)]
Bug 17202: Unit tests

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28213: Prevent crash if patron or club deleted after search to hold
Jonathan Druart [Mon, 26 Apr 2021 09:10:11 +0000 (11:10 +0200)]
Bug 28213: Prevent crash if patron or club deleted after search to hold

Deleting a patron or patron club causes server error on searching.

To recreate:
- create a club template
- create a club
- enroll a patron in the club
- from the clubs page, select Search To Hold for your club
- do a search, see that it says "Hold for [club name]" in your search results page
- go back to the clubs page and delete your club
- try to perform a search
=> Without this patch you get "Can't call method "name" on an undefined value at /kohadevbox/koha/catalogue/search.pl line 207"

Same when placing a hold for a patron (check the search result and the
detail pages)

Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27842: (follow-up) Correct existing serail/subscriptionhistory before deletion
Nick Clemens [Thu, 4 Mar 2021 12:42:59 +0000 (12:42 +0000)]
Bug 27842: (follow-up) Correct existing serail/subscriptionhistory before deletion

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27842: Update serial.biblionumber when a subscription is linked with another...
Jonathan Druart [Wed, 3 Mar 2021 11:21:33 +0000 (12:21 +0100)]
Bug 27842: Update serial.biblionumber when a subscription is linked with another record

It seems that a librarian can edit the biblionumber for a given subscription, however, when receiving serials the biblionumber is pulled from the existing serials, so all new received issues are received on the old biblionumber.

This is problematic in light of bug 21901 - you can change the biblionumber, the serials still point to the old biblionumber - and deleting the biblio deletes the serials. Additionally, the update will delete serials where this was the case

Test plan:
1 - Create a new subscription
2 - Receive an issue
3 - Edit the subscription and change the biblionumber
4 - Receive another issue
5 - SELECT biblionumber FROM serial
=> the biblionumber link must have been updated

Signed-off-by: Petro Vashchuk <stalkernoid@gmail.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27842: Add tests
Jonathan Druart [Wed, 3 Mar 2021 11:21:20 +0000 (12:21 +0100)]
Bug 27842: Add tests

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28230: Store C4::Message->{metadata} as Perl string always
Joonas Kylmälä [Tue, 27 Apr 2021 07:29:21 +0000 (10:29 +0300)]
Bug 28230: Store C4::Message->{metadata} as Perl string always

When loading C4::Message->{metadata} we load it as perl string in all
other cases, see e.g. the subroutine find_last_message(). In this one
case we incorrectly populate the C4::Message->{metadata} as an UTF-8
octet instead of a Perl string. This causes a problem later on because
encode_utf8 later on in the line:

YAML::XS::Load(Encode::encode_utf8($self->{metadata}));

excepts a perl string and not a UTF-8 octet (please refer to the
functions perldoc). This breaks the encoding and causes an internal
server error:

To test the error is gone:
1. Create biblio with "AE" (bugzilla doesn't let me write the real
letter here, see it in the bugzilla comments) in title
2. Enable RenewalSendNotice
3. Enable "Item checkout and renewal" message preference for patron
4. Checkout an item from biblio "AE" to patron
5. Try to renew the patron's loan and notice the renewal fails
6. Apply patch and restart plack
7. Notice renewal works now and message h's the AE letter displayed correctly

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28230: Regression tests
Jonathan Druart [Tue, 27 Apr 2021 08:06:39 +0000 (10:06 +0200)]
Bug 28230: Regression tests

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Bug 28230: Add execute bit to test

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28234: TestBuilder->build_sample_biblio should set UTF-8 encoding for record
Tomas Cohen Arazi [Tue, 27 Apr 2021 11:24:57 +0000 (08:24 -0300)]
Bug 28234: TestBuilder->build_sample_biblio should set UTF-8 encoding for record

This patch makes the build_sample_biblio method, correctly set the UTF-8
flag for the MARC::Record object.

Tests are added.

To test:
1. Apply the regression tests patch
2. Run:
   $ kshell
  k$ prove t/db_dependent/TestBuilder.t
FAIL: Tests fail! An unexpected encoding warning shows
3. Apply this patch
4. Repeat 2
=> SUCCESS: No warning! Tests pass!
5. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28234: Regression tests
Tomas Cohen Arazi [Tue, 27 Apr 2021 12:47:43 +0000 (09:47 -0300)]
Bug 28234: Regression tests

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27790: Add the new column to columns_settings.yml
Jonathan Druart [Tue, 27 Apr 2021 13:37:20 +0000 (15:37 +0200)]
Bug 27790: Add the new column to columns_settings.yml

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27790: (QA follow-up) Fix offsets due to new columns
Kyle M Hall [Fri, 23 Apr 2021 16:53:34 +0000 (12:53 -0400)]
Bug 27790: (QA follow-up) Fix offsets due to new columns

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27790: separate earliest hold date into two different columns
Petro Vashchuk [Thu, 25 Feb 2021 10:28:17 +0000 (12:28 +0200)]
Bug 27790: separate earliest hold date into two different columns

Currently "Earliest hold date" and "Pickup place" are displayed
in one single column, but to make filtering possible it is necessary
to split those fields into separate ones.
This patch does exactly that and adds sorting list drop down feature to
the "Pickup place" column.

To reproduce:
    1) Make a few holds and head over to "Circulations->Holds to pull".
    2) Ensure that pickup place and earliest hold date are
in the same column "Earliest hold date"
    3) Apply the patch.
    4) Check "Circulations->Holds to pull list" again, this time
booking date and pickup place should have their own columns.
Ensure that filtering by "pickup location" works fine.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27636: Update failing test
Martin Renvoize [Fri, 19 Mar 2021 12:06:31 +0000 (12:06 +0000)]
Bug 27636: Update failing test

It would appear that ->pay didn't fully respect AccountAutoReconcile!

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27636: Update ->pay to use ->payin_amount internally
Martin Renvoize [Fri, 19 Mar 2021 12:00:36 +0000 (12:00 +0000)]
Bug 27636: Update ->pay to use ->payin_amount internally

This patch is an interim patch to update Koha::Account->pay to use the
new Koha::Account->payin_amount method internally. It simply utilises
that method for the logic and acts as an input/output shim for
compatability and to allow us to use the existing tests.

Test plan
1/ Run t/db_dependent/Koha/Account.t

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27636: Add payin_amount to Koha::Account
Martin Renvoize [Fri, 5 Feb 2021 12:56:43 +0000 (12:56 +0000)]
Bug 27636: Add payin_amount to Koha::Account

This patch adds a `payin_amount` method to the Koha::Account as a modern
replacement to the `pay` method.

The new method uses the `add_credit` and `Koha::Account::Line->apply`
methods internally for consistency and returns the created credit
Koha::Account::Line result.

Test plan
1/ Run t/db_dependent/Koha/Account.t

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27995: (QA follow-up) Update POD
Kyle M Hall [Fri, 23 Apr 2021 12:08:19 +0000 (08:08 -0400)]
Bug 27995: (QA follow-up) Update POD

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27995: Update return for Koha::Account::Line->apply
Martin Renvoize [Fri, 19 Mar 2021 10:52:54 +0000 (10:52 +0000)]
Bug 27995: Update return for Koha::Account::Line->apply

This patch updates the return value of Koha::Account::Line->apply to return the
updated Koha::Account::Line object with Koha::Object::Messages embedded
for the results of any triggered renewals.

Available credit, the former return value, is still availabe via the
object directly as `amountoutstanding`.

Koha::REST::V1::Patrons::Account->add_credit has been updated to reflect
the change. No other area's of Koha relied upon the return value.

This patch also fixes a bug whereby if you passed a list of debits with
an outstanding debit larger than the outstanding credit then you could
end up with superflous offest lines with zero amounts that was
highlighted by the improved unit tests in
t/db_dependent/Koha/Account/Line.t

Test plan
1/ Run t/db_dependent/Koha/Account/Line.t
2/ Run t/db_dependent/api/v1/patrons_accounts.t
3/ If both tests pass then signoff

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27995: Unit tests
Martin Renvoize [Fri, 19 Mar 2021 09:45:45 +0000 (09:45 +0000)]
Bug 27995: Unit tests

This patch updates the unit tests for Koha::Account::Line->apply to
reflect the change we wish to make to the return value.

Instead of returning the scalar amount of available credit left on the
credit line after calling apply, we want to return the full, updated,
Koha::Account::Line object including Koha::Object::Messages for the
result of renewals that may have taken place.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 26734: DBRev 20.12.00.041
Jonathan Druart [Tue, 27 Apr 2021 14:15:05 +0000 (14:15 +0000)]
Bug 26734: DBRev 20.12.00.041

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 26734: Add notices for translations
Martin Renvoize [Fri, 23 Apr 2021 11:50:27 +0000 (12:50 +0100)]
Bug 26734: Add notices for translations

This patch updates the translated sample_notices.sql files for each of
the remaining translations.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 26734: (QA follow-up) Add warning to database update
Martin Renvoize [Thu, 15 Apr 2021 15:31:26 +0000 (16:31 +0100)]
Bug 26734: (QA follow-up) Add warning to database update

This patch adds a warning to the database update to highlight to the
user which notices have been updated and that a backup exists.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 26734: (follow-up) Add back 'UPGRADE' type to logviewer
Martin Renvoize [Fri, 9 Apr 2021 08:23:02 +0000 (09:23 +0100)]
Bug 26734: (follow-up) Add back 'UPGRADE' type to logviewer

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 26734: (QA follow-up) Add 'tendered' and 'change' to notice
Martin Renvoize [Fri, 12 Mar 2021 14:21:41 +0000 (14:21 +0000)]
Bug 26734: (QA follow-up) Add 'tendered' and 'change' to notice

We include 'tendered' and 'change' parameters in the call to
GetPreparedLetter for the fee receipt slip.. we may as well include them
in the sample notice ;)

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 26734: (QA follow-up) Unit tests for C4::Letters
Martin Renvoize [Fri, 12 Mar 2021 13:50:14 +0000 (13:50 +0000)]
Bug 26734: (QA follow-up) Unit tests for C4::Letters

This patch adds unit tests for the addition of 'include handling' to the
C4::Letters template toolkit functionality.

Test plan
1/ Run t/db_dependant/Letters/TemplateToolkit.t

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 26734: (QA follow-up) Add missing copyright statement
Martin Renvoize [Fri, 12 Mar 2021 11:03:55 +0000 (11:03 +0000)]
Bug 26734: (QA follow-up) Add missing copyright statement

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 26734: (follow-up) Replace db update with backup and default
Martin Renvoize [Wed, 3 Feb 2021 14:49:04 +0000 (14:49 +0000)]
Bug 26734: (follow-up) Replace db update with backup and default

The inline update of variable for the notice template was proving
troublesome.. this patch replaces it was a backup of the existing notice
followed by replacing the notice with the default.

Test plan
1/ Run the database update
2/ Check that the templates have been replaced by the defaults (for all
languages enabled)
3/ Check that a backup of the original notices was made by naviagating
to view the action log (/tools/viewlog.pl) and selecting 'all modules' +
'all actions'

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 26734: Update existing notices to new syntax
Martin Renvoize [Mon, 19 Oct 2020 13:11:11 +0000 (14:11 +0100)]
Bug 26734: Update existing notices to new syntax

This patch adds a database update to replace existing notice variable
used in ACCOUNT_CREDIT and ACCOUNT_DEBIT notices with the modern
equivilents.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 26734: Update sample notices to use standardised syntax
Martin Renvoize [Mon, 19 Oct 2020 12:54:58 +0000 (13:54 +0100)]
Bug 26734: Update sample notices to use standardised syntax

This patch updates the default notices shiped with Koha to use the new
syntax.

Test plan
1/ Install Koha afresh
2/ Check the notices print as expected
3/ Signoff

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 26734: Convert printfeercpt/printinvoice to use GetPreparedLetter
Martin Renvoize [Wed, 14 Oct 2020 10:58:26 +0000 (11:58 +0100)]
Bug 26734: Convert printfeercpt/printinvoice to use GetPreparedLetter

This patch updates C4::Letters to allow use of existing koha template
includes from notices, then updates the printfeercpt and printinvoice
slip print option to use GetPreparedLetter rather than calling getletter
directly.

As part of this work, we also add credits and debits handling to the
_parseletter_sth and _get_tt_params routines in C4::Letters to allow for
recognisable variable names in the notice template.

Test plan
1/ Update the ACCOUNT_CREDIT and ACCOUNT_DEBIT notices to use
'accounts.inc' include for account descriptions
1a/ Add `[% PROCESS 'accounts.inc' %]` to the top of the notice
1b/ Replace manual account descriptions with `[% PROCESS
account_type_description account=credit %]`
2/ Print one of each slip and check that descriptions are properly
substituted
3/ Clone the notice to another language
4/ Print the in the other language and note the translated descriptions
are properly substituted.
5/ Signoff

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 26734: Ratify account slip printing
Martin Renvoize [Thu, 16 Jul 2020 08:42:20 +0000 (09:42 +0100)]
Bug 26734: Ratify account slip printing

This patch simplifies the members/print*.pl controller scripts to only
pass around the minimum required data for the templates.

Test plan
Slips should continue to print as they did prior to the patch
1/ Add a manual invoice and manual debit to a patrons account
2/ Print a slip for the manual invoice, compare to a printed slip prior
to the patch.
3/ Print a slip for the manual debit, compare to a printed slip prior to
the patch.
4/ Signoff.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27455: (follow-up) Add automatic focus to library name when editing
Owen Leonard [Mon, 15 Mar 2021 14:49:09 +0000 (14:49 +0000)]
Bug 27455: (follow-up) Add automatic focus to library name when editing

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27455: (follow-up) Switch form JavaScript to focus class
Katrin Fischer [Thu, 4 Mar 2021 09:35:37 +0000 (09:35 +0000)]
Bug 27455: (follow-up) Switch form JavaScript to focus class

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27455: Add focus to branch code when a new library is added
ava li [Tue, 19 Jan 2021 01:36:27 +0000 (01:36 +0000)]
Bug 27455: Add focus to branch code when a new library is added

TEST PLAN:
From the koha home, go to administration, go to Libraries which is under
Basic parameters. Click +New library the focus should go to the first
field of the form (library/branch code) the patch has worked.

https://bugs.koha-community.org/show_bug.cgi?id=27455

Signed-off-by: Sally <sally.healey@cheshiresharedservices.gov.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 15563: (follow-up) Combine methods, add count, obey confirm
Nick Clemens [Fri, 23 Apr 2021 12:36:54 +0000 (12:36 +0000)]
Bug 15563: (follow-up) Combine methods, add count, obey confirm

This patch moves the SQL to a subroutine and uses the Label delete method to
remove the batches

We now return a count and do not delete if --confirm flag is not passed

Repeate previous test plan, confirm works as expected

JD amended patch: perltidy

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 15563: add label and card creator batch deletion to cleanup_database
Andrew Fuerste-Henry [Mon, 20 Jul 2020 15:09:30 +0000 (15:09 +0000)]
Bug 15563: add label and card creator batch deletion to cleanup_database

To test:
For item label batches:
1- Create 3 item label batches of at least 2 items each
2- Perform the following updates via the database
3- In Batch 1, set all items' timestamps to 10+ days prior to today
4- In Batch 2, set 1 item's timestamp to 10+ days prior to today
5- In Batch 3, do not update any timestamps
6- Run cron with --labels 9
7- Confirm batch 1 is deleted, batches 2 and 3 are not

Repeat with card creator batches
8- Create 3 card creator batches of at least 2 items each
9- Perform the following updates via the database
10- In Batch 1, set all cards' timestamps to 10+ days prior to today
11- In Batch 2, set 1 card's timestamp to 10+ days prior to today
12- In Batch 3, do not update any timestamps
13- Run cron with --cards 9
14- Confirm batch 1 is deleted, batches 2 and 3 are noti

Signed-off-by: Kelly McElligott <kelly@bywatersolutions.com>
Signed-off-by: Deb Stephenson <dstephen@dubuque.lib.ia.us>
Signed-off-by: Abbey Holt <aholt@dubuque.lib.ia.us>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 26405: Prevent Circulation.t failing on 'AddRenewal left both fines'
Emmi Takkinen [Thu, 3 Dec 2020 08:41:47 +0000 (10:41 +0200)]
Bug 26405: Prevent Circulation.t failing on 'AddRenewal left both fines'

Bug 23051 added option to skip calculating fines even when
"CalculateFinesOnReturn" is enabled. Due this Circulation.t
fails on  test  "AddRenewal left both fines" if
"CalculateFinesOnReturn"  is disabled on ones system.
Mocking syspref while testing fixes failig tests.

To test:
1. Disable "CalculateFinesOnReturn".
2. Run prove t/db_dependent/Circulation.t
=> Tests fail
3. Apply patch.
4. Run prove t/db_dependent/Circulation.t again
=> Tests are succesful

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28223: Add data elements to negative budgets
Nick Clemens [Mon, 26 Apr 2021 12:40:48 +0000 (12:40 +0000)]
Bug 28223: Add data elements to negative budgets

To test:
1 - Have a parent fund and a child fund
2 - Order an amount from the child fund that is greater than the amount available
3 - Browse to acquisitions
4 - Confirm the totals look right
5 - Click on the over spent fund to go to 'Funds for main budget'
6 - Note the totals are incorrect
7 - Apply patch
8 - Reload
9 - Totals are now correct

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28144: Add a regression test
Jonathan Druart [Tue, 27 Apr 2021 13:04:35 +0000 (15:04 +0200)]
Bug 28144: Add a regression test

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28144: Check if issue_id defined
Nick Clemens [Tue, 13 Apr 2021 15:14:11 +0000 (15:14 +0000)]
Bug 28144: Check if issue_id defined

Historical OVERDUE fines may not have an issue_id - this causes
flooding of the logs when calling update fine

Trivial change, reading the code should be enough, but test plan below

To test:
1 - Create some fines without an issue_id
  - Either checkout an old version of Koha and add manually or
  - Checkout some items (backdated) to a patron, run fines.pl then
    UPDATE accountlines SET issue_id = NULL;
2 - Checkout a backdated item with fines in the circ rule to the same patron
3 - Run fines.pl
4 - Note the errors
5 - Apply patch
6 - Repeat and note no errors

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28221: Script process_message_queue.pl uses Try::Tiny but doesn't 'use' it
Kyle M Hall [Mon, 26 Apr 2021 10:30:17 +0000 (06:30 -0400)]
Bug 28221: Script process_message_queue.pl uses Try::Tiny but doesn't 'use' it

The message queue processor has a try/catch block, but does not have a 'use Try::Tiny' line. Because of this the following error ocurrs if an instance has any plugins installed that use the before_send_messages hook:

Can't locate object method "catch" via package "1" (perhaps you forgot to load "1"?) at /usr/share/koha/bin/cronjobs/process_message_queue.pl line 86.

Test Plan:
1) Install a plugin that uses the before_send_messages hook
2) Run the message queue processor
3) Note the error message
4) Apply this patch
5) Run the message queue processor again
6) No error!

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28178: Display the correct image in the image viewer
Jonathan Druart [Mon, 19 Apr 2021 10:11:36 +0000 (12:11 +0200)]
Bug 28178: Display the correct image in the image viewer

When there are several images attached to a bibliographic record, one can click
an image and see it in the image viewer. But the first image is always displayed.

Test plan:
0. Turn on LocalCoverImages and AllowMultipleCovers
1. Attach at least two images to a bibliographic record
2. Go to the detail page, click the "Images" tab and click the second
image.
=> With this patch applied you should see the image you selected

Sponsored-by: Gerhard Sondermann Dialog e.K. (presseplus.de, presseshop.at, presseshop.ch)
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 21818: Replace AutoCommit flag with DBIx transaction in stage-marc-import.pl
Fridolin Somers [Thu, 11 Mar 2021 10:46:46 +0000 (11:46 +0100)]
Bug 21818: Replace AutoCommit flag with DBIx transaction in stage-marc-import.pl

Like it was done in Bug 18806.

Test plan :
Use stage-marc-import.pl with and without patch, with a matcher to find
duplicates

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28193: (follow-up) Correct OpacLoginInstructions in login modal
Owen Leonard [Fri, 23 Apr 2021 00:21:30 +0000 (00:21 +0000)]
Bug 28193: (follow-up) Correct OpacLoginInstructions in login modal

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28193: OpacLoginInstructions news block broken by Bug 20168
Owen Leonard [Thu, 22 Apr 2021 14:33:25 +0000 (14:33 +0000)]
Bug 28193: OpacLoginInstructions news block broken by Bug 20168

This patch fixes a regression which was introduced by Bug 20168, causing
the OpacLoginInstructions template code to revert back to the old system
preference behavior. This patch returns the correct markup.

To test, apply the patch and view the OPAC login page
(/cgi-bin/koha/opac-user.pl)

 - With no news entry for OpacLoginInstructions you should see the
   default: A block of text with two headings, "Don't have a password
   yet?" and "Don't have a library card?"
 - Go to Tools -> News and create an entry for OpacLoginInstructions.
 - Return to the OPAC and confirm that your custom text appears.
 - Try updating/installing another translation and adding a different
   news entry for that language. Confirm that the correct entry appears.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28198: Correct sample HOLD_REMINDER notice for it,nb,pl,ru
Victor Grousset/tuxayo [Tue, 27 Apr 2021 01:08:59 +0000 (03:08 +0200)]
Bug 28198: Correct sample HOLD_REMINDER notice for it,nb,pl,ru

It turns out that ea6467724cf8e6fac2224e1dcb6c6ddee73736af also caused the same issue in these locales
Also e0b0e908f767e510c5538d8e5cfb25f994579441 (a follow up) caused the issue in it-IT

== Test plan ==
Paste all this :D
```
 # doesn't work without this patch applied
echo "DELETE FROM letter;" | sudo koha-mysql kohadev
cat installer/data/mysql/nb-NO/1-Obligatorisk/sample_notices.sql | sudo koha-mysql kohadev
echo "DELETE FROM letter;" | sudo koha-mysql kohadev
cat installer/data/mysql/pl-PL/mandatory/sample_notices.sql | sudo koha-mysql kohadev
echo "DELETE FROM letter;" | sudo koha-mysql kohadev
cat installer/data/mysql/ru-RU/mandatory/sample_notices.sql | sudo koha-mysql kohadev
echo "DELETE FROM letter;" | sudo koha-mysql kohadev
cat installer/data/mysql/it-IT/necessari/notices.sql | sudo koha-mysql kohadev

 # test all the rest
 ## fixed by previous patch, double checking
echo "DELETE FROM letter;" | sudo koha-mysql kohadev
cat installer/data/mysql/fr-FR/1-Obligatoire/sample_notices.sql | sudo koha-mysql kohadev
 ## was already working, just double checking
echo "DELETE FROM letter;" | sudo koha-mysql kohadev
cat installer/data/mysql/fr-CA/obligatoire/sample_notices.sql | sudo koha-mysql kohadev
echo "DELETE FROM letter;" | sudo koha-mysql kohadev
cat installer/data/mysql/uk-UA/mandatory/sample_notices.sql | sudo koha-mysql kohadev
```

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28198: Correct sample HOLD_REMINDER notice for French
Nick Clemens [Mon, 26 Apr 2021 18:20:27 +0000 (18:20 +0000)]
Bug 28198: Correct sample HOLD_REMINDER notice for French

To test:
1 - sudo koha-mysql kohadev
2 - DELETE FROM letter
3 - cat installer/data/mysql/fr-FR/1-Obligatoire/sample_notices.sql | sudo koha-mysql kohadev
4 - Error!
5 - Apply patch
6 - Repeat 1-3
7 - Success!

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 15986: Remove \r from HOLD_REMINDER in the yml
Jonathan Druart [Tue, 27 Apr 2021 13:28:34 +0000 (15:28 +0200)]
Bug 15986: Remove \r from HOLD_REMINDER in the yml

To prevent the following errors on `gulp po:update`

misc/translator/Koha-installer.pot:952: warning: internationalized messages should not contain the '\r' escape sequence

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28210: Pass skip_record_index through LostItem
Martin Renvoize [Fri, 23 Apr 2021 15:48:52 +0000 (16:48 +0100)]
Bug 28210: Pass skip_record_index through LostItem

This patch restores the skip_record_index optional parameter for
LostItem and passes it through to MarkIssueReturned as required.

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28210: Add issue, replacementprice, and set onloan so check-in tests work
Nick Clemens [Mon, 26 Apr 2021 15:57:09 +0000 (15:57 +0000)]
Bug 28210: Add issue, replacementprice, and set onloan so check-in tests work

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 28210: Unit test
Martin Renvoize [Fri, 23 Apr 2021 15:52:59 +0000 (16:52 +0100)]
Bug 28210: Unit test

Add a unit test to check that skip_record_index is adhered to when
passed to LostItem with the force_mark_returned option enabled.

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27281: (QA follow-up) Fix Indexer Test
Martin Renvoize [Fri, 23 Apr 2021 13:37:28 +0000 (14:37 +0100)]
Bug 27281: (QA follow-up) Fix Indexer Test

With bug 27281 we removed a call to reset an items holdingbranch back to
the 'frombranch' of the transfer.  This is correct, as with bug 23129
(and friends) we ensure that the holdingbranch was not changed at
transfer request time and instead would only be updated at the reciept
of transfer. As such, it's safe to remove the update here as it would be
just setting the same branch as is already present.

However, when removing this ModItem call, I neglected to realise that
also remoes the requirement for passing around the defered indexing bit
as we no longer need to trigger a re-index as there's not any change to
the item.

This patch therefore cleans up the POD for LostItem, removes the no
longer references 'params' parameter and drops the corresponding index
test.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 24446: (follow-up) Fix tests
Nick Clemens [Fri, 23 Apr 2021 15:22:44 +0000 (15:22 +0000)]
Bug 24446: (follow-up) Fix tests

The tests were failing because we weren't actually changing the item, so store was doing nothing.

We need to transfer 'from' a new branch so that the holdingbranch is changed

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 23271: (follow-up) Fix typo 'limlits'
Nick Clemens [Fri, 23 Apr 2021 11:19:21 +0000 (11:19 +0000)]
Bug 23271: (follow-up) Fix typo 'limlits'

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 23971: Fix UsageStats.t
Jonathan Druart [Fri, 23 Apr 2021 10:45:27 +0000 (12:45 +0200)]
Bug 23971: Fix UsageStats.t

Hum, what's the point of these tests?

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27971: DBRev 20.12.00.040
Jonathan Druart [Fri, 23 Apr 2021 09:40:10 +0000 (09:40 +0000)]
Bug 27971: DBRev 20.12.00.040

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27971: Enhance unit tests
Martin Renvoize [Wed, 17 Mar 2021 16:23:56 +0000 (16:23 +0000)]
Bug 27971: Enhance unit tests

This patch adds some additional unit tests for extra functionality
included with this patchset.

Test plan
1/ t/db_dependent/Koha/Account/Line.t should pass

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
3 years agoBug 27971: Update void method to use double entry accounting
Martin Renvoize [Wed, 17 Mar 2021 09:10:17 +0000 (09:10 +0000)]
Bug 27971: Update void method to use double entry accounting

This patch adds double-entry accounting to the Koha::Account::Line->void method.

This results in the addition of a VOID debit type line that is offset
against the original credit type line that is being voided. This allows
us to accurately record when the void took place, at what branch and by
whome the void was triggered.

Test plan
1/ Apply the database update
2/ Add some debts to a borrower account
3/ Pay those debts
4/ Void the payment
5/ A new 'VOID' line should appear on the account for the full amount of
the original payment.
6/ Payments should have all been reversed
7/ t/db_dependent/Koha/Account/Line.t should still pass
8/ Signoff

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>