]> git.koha-community.org Git - koha.git/log
koha.git
18 months agoBug 12029: Ability for patrons to dismiss OPAC messages
Aleisha Amohia [Wed, 15 Feb 2023 08:57:08 +0000 (21:57 +1300)]
Bug 12029: Ability for patrons to dismiss OPAC messages

This enhancement adds the ability for patrons to dismiss an OPAC
message, marking it as read to remove it from their summary page.

To test:
1) Update database and restart services
2) Log into the staff interface and go to your patron account
3) Click the Add message button
4) Add a message for the OPAC and Save
5) Log into the OPAC. Note there is a message on the homepage saying you
have a message. Go to your user summary and confirm the message
displays.
6) Click the button to dismiss the message. A confirmation box should
pop up - hitting Cancel should stop the action.
7) Dismiss the message again and this time Confirm. Make sure the
message is gone from the OPAC user summary and from the homepage.
8) Confirm tests pass t/db_dependent/Koha/Patron/Messages.t
9) Create a few more messages for the OPAC
10) Log into the OPAC and dismiss one of the messages
11) Confirm the count of unread messages on the OPAC home page is
correct

Sponsored-by: Koha-US
Signed-off-by: Christopher Brannon <cbrannon@cdalibrary.org>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 12029: Tests
Aleisha Amohia [Wed, 15 Feb 2023 08:56:35 +0000 (21:56 +1300)]
Bug 12029: Tests

Signed-off-by: Christopher Brannon <cbrannon@cdalibrary.org>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 12029: Adding messages.patron_read_date column
Aleisha Amohia [Wed, 15 Feb 2023 05:10:29 +0000 (18:10 +1300)]
Bug 12029: Adding messages.patron_read_date column

Signed-off-by: Christopher Brannon <cbrannon@cdalibrary.org>
JD Amended patch: Fix QA failure "File must have the exec flag"

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33103: DBRev 22.12.00.021
Tomas Cohen Arazi [Thu, 20 Apr 2023 18:27:59 +0000 (15:27 -0300)]
Bug 33103: DBRev 22.12.00.021

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33574: DBIC schema
Tomas Cohen Arazi [Thu, 20 Apr 2023 18:20:52 +0000 (15:20 -0300)]
Bug 33574: DBIC schema

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33103: Prevent vendors to be displayed several times in the search result
Jonathan Druart [Tue, 11 Apr 2023 09:44:16 +0000 (11:44 +0200)]
Bug 33103: Prevent vendors to be displayed several times in the search result

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33103: Fix accessibility issues
Jonathan Druart [Tue, 11 Apr 2023 07:53:15 +0000 (09:53 +0200)]
Bug 33103: Fix accessibility issues

* Add spaces
* Add 'Add' and 'Remove' in addition of the icons
* Do not submit the form when enter is hit
* Fix translatability

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33103: Deal with html tags
Jonathan Druart [Tue, 7 Mar 2023 11:54:31 +0000 (12:54 +0100)]
Bug 33103: Deal with html tags

HTML tags won't be interpreted. However <script> will still break the
display, but it's by nature, JS will execute it even if it's in a
string.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33103: Display the aliases in the dropdown list in ERM
Jonathan Druart [Wed, 1 Mar 2023 13:03:38 +0000 (14:03 +0100)]
Bug 33103: Display the aliases in the dropdown list in ERM

Signed-off-by: Jonathan Field <jonathan.field@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33103: Add REST API tests
Jonathan Druart [Thu, 2 Mar 2023 13:08:29 +0000 (14:08 +0100)]
Bug 33103: Add REST API tests

Signed-off-by: Jonathan Field <jonathan.field@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33103: Embed aliases in GET /vendors
Jonathan Druart [Wed, 1 Mar 2023 11:43:44 +0000 (12:43 +0100)]
Bug 33103: Embed aliases in GET /vendors

Signed-off-by: Jonathan Field <jonathan.field@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33103: Make vendors searchable by aliases
Jonathan Druart [Wed, 1 Mar 2023 11:31:17 +0000 (12:31 +0100)]
Bug 33103: Make vendors searchable by aliases

Signed-off-by: Jonathan Field <jonathan.field@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33103: Add the ability to create vendor aliases
Jonathan Druart [Wed, 1 Mar 2023 10:57:23 +0000 (11:57 +0100)]
Bug 33103: Add the ability to create vendor aliases

This patchset is adding the ability to create aliases for vendors. It
will then be easier to search for vendors.

* new DB table aqbookseller_aliases(id, vendor_id, alias)
* new pair of Koha classes Koha::Acquisition::Bookseller::Alias[es]
* new method to retrieve the aliases from the vendor
Koha::Acquisition::Bookseller->aliases
* The api spec changes to allow aliases to be embeded on
GET /acquisitions/vendors
* Add/Delete alias when editing a vendor
* Display the aliases on the vendor show view
* Search vendors by aliases
* Display the aliases in the dropdown list of the vendors in the ERM
module

Test plan:
- Create a vendor, add it some aliases
- Edit the vendor, remove some aliases
=> Behaviour must be consistent
- Search the vendor in the acquisition module by its aliases
=> The vendor must be returned in the result
- Go to the ERM module, add a new agreement or license
=> Notice that the dropdown list of the vendors is displaying the
aliases, that make vendors searchable by their aliases

Signed-off-by: Jonathan Field <jonathan.field@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33103: Add tests for Aliases Koha classes
Jonathan Druart [Thu, 2 Mar 2023 12:54:37 +0000 (13:54 +0100)]
Bug 33103: Add tests for Aliases Koha classes

Signed-off-by: Jonathan Field <jonathan.field@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33103: Koha classes
Jonathan Druart [Wed, 1 Mar 2023 14:17:56 +0000 (15:17 +0100)]
Bug 33103: Koha classes

Signed-off-by: Jonathan Field <jonathan.field@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33103: DB changes
Jonathan Druart [Wed, 1 Mar 2023 10:06:46 +0000 (11:06 +0100)]
Bug 33103: DB changes

Signed-off-by: Jonathan Field <jonathan.field@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33574: Correct pointer for restrict_type.code
Martin Renvoize [Thu, 20 Apr 2023 16:09:50 +0000 (17:09 +0100)]
Bug 33574: Correct pointer for restrict_type.code

Somehow this was missed during QA of bug 31095.. likely during a rebase.

Test plan:
1) Check that manual restriction types are now saved.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33447: Make *->pickup_locations methods throw an exception on missing parameter
Tomas Cohen Arazi [Thu, 20 Apr 2023 18:04:29 +0000 (15:04 -0300)]
Bug 33447: Make *->pickup_locations methods throw an exception on missing parameter

This patch fixes the FIXME for making the methods throw an exception.

Tests are added, and POD is adapted as well.

To test:
1. Apply this patch
2. Run:
   $ ktd --shell
  k$ prove t/db_dependent/api/v1/patrons* \
           t/db_dependent/api/v1/holds.t \
           t/db_dependent/Reserves* \
           t/db_dependent/Hold* \
           t/db_dependent/Koha/Hold* \
           t/db_dependent/Items*

=> SUCCESS: Tests pass!
3. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33447: (follow-up) Fix tests and make assumption explicit
Nick Clemens [Thu, 20 Apr 2023 15:44:53 +0000 (15:44 +0000)]
Bug 33447: (follow-up) Fix tests and make assumption explicit

The patches made an assumption that patron would always be passed. It is
within Koha, but not in the Biblios tests.

There is no scenario where we can determine pickup locations that are not in
reference to a patron (who is picking it up?) so we should always have
this parameter

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33416: Fix Searchbar_spec.ts
Tomas Cohen Arazi [Wed, 19 Apr 2023 12:19:29 +0000 (09:19 -0300)]
Bug 33416: Fix Searchbar_spec.ts

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33416: Fix Agreements.ts
Jonathan Druart [Wed, 5 Apr 2023 08:29:01 +0000 (10:29 +0200)]
Bug 33416: Fix Agreements.ts

<failure message="Timed out retrying after 10000ms: Expected to find element: `#agreements_list table tbody tr:first`, but never found it." type="AssertionError"><![CDATA[AssertionError: Timed out retrying a
fter 10000ms: Expected to find element: `#agreements_list table tbody tr:first`, but never found it.

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33533: Translatability: Do not separate "Patron" or "Organization" and "identity...
Caroline Cyr La Rose [Thu, 13 Apr 2023 18:55:25 +0000 (14:55 -0400)]
Bug 33533: Translatability: Do not separate "Patron" or "Organization" and "identity" in memberentrygen.tt

This patch corrects the HTML markup in order to reunite "Patron
identity" or "Organization identity" for translatability.

To test:
1. Apply patch
2. Update translation files
./misc/translator/translate update xx-XX
3. Check the xx-XX-staff-prog.po file, the line for memberentrygen.tt:275
   should look like

\#: koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt:275
\#, c-format
msgid "Organization %sPatron %sidentity"
msgstr "Identité de l'organisme %sIdentité de l'utilisateur %s"

4. Optionally, translate the string, install translation and check the
   page (Patrons > New patron), trying a institutional patron and a
   regular patron
./misc/translator/translate install xx-XX

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>
18 months agoBug 33447: (QA follow-up) Add comment for flushing cache
Marcel de Rooy [Tue, 18 Apr 2023 11:28:45 +0000 (11:28 +0000)]
Bug 33447: (QA follow-up) Add comment for flushing cache

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33447: Adjust tests
Nick Clemens [Fri, 7 Apr 2023 21:46:24 +0000 (21:46 +0000)]
Bug 33447: Adjust tests

Signed-off-by: emlam <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33447: Add Cache to Biblio->pickup_locations
Nick Clemens [Fri, 7 Apr 2023 21:08:30 +0000 (21:08 +0000)]
Bug 33447: Add Cache to Biblio->pickup_locations

This is going to have the most effect on records with large numbers of items
held by the same library, serial records and the like

To test:
1 - Add 500 items to a biblio by select myltiple copies on the add item page
2 - Place a hold via the API and note response time, I found ~3-5 seconds
3 - Apply patch
4 - Restart all
5 - Place hold using api again
6 - Note improved response time, less than 1/2 a second in my tests

Signed-off-by: emlam <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33491: Fix UI issues in EHoldingsEBSCOPackageAgreements
Jonathan Druart [Tue, 11 Apr 2023 19:39:02 +0000 (21:39 +0200)]
Bug 33491: Fix UI issues in EHoldingsEBSCOPackageAgreements

Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33354: Show all form error messages in the warning dialog
Pedro Amorim [Wed, 29 Mar 2023 15:11:43 +0000 (15:11 +0000)]
Bug 33354: Show all form error messages in the warning dialog

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33354: Add error if related user open but user is missing
Pedro Amorim [Wed, 29 Mar 2023 15:09:37 +0000 (15:09 +0000)]
Bug 33354: Add error if related user open but user is missing

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33354: Add 'required' UI elements
Pedro Amorim [Wed, 29 Mar 2023 15:07:25 +0000 (15:07 +0000)]
Bug 33354: Add 'required' UI elements

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33216: Catch and handle RegisterRequired exceptions for SIP fee paid messages
Kyle Hall [Tue, 14 Mar 2023 11:06:21 +0000 (07:06 -0400)]
Bug 33216: Catch and handle RegisterRequired exceptions for SIP fee paid messages

If registers are being used in Koha, they are required. If a SIP account has no register and a fee paid message is sent, the SIP server crashes and the client never gets a response. It would be much better if Koha would response with 38 response where "payment accepted" is N, and an AF field stating that the SIP account needs to be associated with a register.

Test Plan:
1) Enable UseCashRegisters, set RequireCashRegister to "always require a
   cash register". Do *not* set a cash register for the SIP account you
   will be testing with.
2) Using the SIP cli tester, send a fee paid message for a patron owing
   fees.
3) Note the lack of a SIP response
4) Apply this patch
5) Restart the SIP server
6) Repeat step 2, you should now get a SIP response with the error
   message in it!

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33483: Prevent 400 when more than 1 agreement is linked
Jonathan Druart [Wed, 12 Apr 2023 14:59:29 +0000 (16:59 +0200)]
Bug 33483: Prevent 400 when more than 1 agreement is linked

We were passing package_agreements.agreement and the server returned
Object { message: "Properties not allowed: agreement.", path: "/body/package_agreements/0" }

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33483: (follow-up) Update the way we distinguish if AgreementsList is called...
Jonathan Druart [Tue, 11 Apr 2023 19:19:46 +0000 (21:19 +0200)]
Bug 33483: (follow-up) Update the way we distinguish if AgreementsList is called from EHoldingsEBSCOPackageAgreements or not

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33483: Restore 'select'
Jonathan Druart [Tue, 11 Apr 2023 19:14:25 +0000 (21:14 +0200)]
Bug 33483: Restore 'select'

We are not supposed to see edit and delete buttons, but select instead,
to pick an agreement.

Regression introduced by
  commit 809f90d394fdef8142fdf8f4a6e825dc14a132d4
  Bug 33066: Remove build_datatable

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33483: Make KohaTable accept customizable actions button
Jonathan Druart [Tue, 11 Apr 2023 19:11:48 +0000 (21:11 +0200)]
Bug 33483: Make KohaTable accept customizable actions button

We have hardcoded some buttons: edit, delete
But we could need specific buttons.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33483: Update the way we distinguish if AgreementsList is called from EHoldingsEB...
Pedro Amorim [Tue, 11 Apr 2023 16:33:39 +0000 (16:33 +0000)]
Bug 33483: Update the way we distinguish if AgreementsList is called from EHoldingsEBSCOPackageAgreements or not

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33483: Fix link EBSCO package with local agreements
Jonathan Druart [Tue, 11 Apr 2023 12:13:35 +0000 (14:13 +0200)]
Bug 33483: Fix link EBSCO package with local agreements

Bug 33066 broke that, we need to set 'initialized'.

Test plan:
Turn on EBSCO provider, search for a package and click "Add new
agreement". The modal must open with the list of agreements.

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33229: (follow-up) Adjust tests to set anonymous patron before setting patron...
Nick Clemens [Mon, 17 Apr 2023 12:52:34 +0000 (12:52 +0000)]
Bug 33229: (follow-up) Adjust tests to set anonymous patron before setting patron privacy to 2

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 23824: Add a "Save and run" button to reports
Magnus Enger [Sat, 1 Apr 2023 09:27:26 +0000 (11:27 +0200)]
Bug 23824: Add a "Save and run" button to reports

This will save one click every time you want to save and then run
a report.

To test:
- Apply this patch
- Create a new report
- Click the new "Update and run SQL" button
- Verify the report was saved and the results are displayed

Signed-off-by: Laura Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33038: Add classes to patroncategorycode for easier customization
Lucas Gass [Wed, 22 Feb 2023 15:00:19 +0000 (15:00 +0000)]
Bug 33038: Add classes to patroncategorycode for easier customization

To test:
1. Pull up a patron and look at the patroncategory inside the patronbriefinfo. Description and code are together in one HTML element, they are hard to seperate.
2. Apply patch.
3. Look again and notice the new classes.

Signed-off-by: Barbara Johnson <barbara.johnson@bedfordtx.gov>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33238: Fix bad suggestions query (Bug 29886 follow-up)
Janusz Kaczmarek [Wed, 15 Mar 2023 19:25:53 +0000 (20:25 +0100)]
Bug 33238: Fix bad suggestions query (Bug 29886 follow-up)

With IndependentBranches Koha explodes with Error 500 when a non
superlibrarian tries to add to basket from suggestions.  In errorlog you
would find "DBIx::Class::Storage::DBI::_dbh_execute(): DBI Exception:
DBD::mysql::st execute failed: Column 'branchcode' in where clause is
ambiguous".

Test plan:
==========
1. Have a Koha instance with IndependentBranches, some accepted
   suggestions, and a vendor defined.
2. Be a non superlibrarian librarian with permissions to
   manage acquisitions.
3. Create a new basket and try to add an item to the basket
   "From a suggestion".
4. Koha would generate error 500.
5. Apply the patch.
6. Try to add an item to the basket "From a suggestion".
7. You should succeed.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 18829: (QA follow-up) Replace forbidden indirect syntax
Tomas Cohen Arazi [Mon, 17 Apr 2023 11:24:12 +0000 (08:24 -0300)]
Bug 18829: (QA follow-up) Replace forbidden indirect syntax

This pattern is forbidden and was overlooked by QA.

To test:
1. Run:
   $ ktd --shell
  k$ prove t/00-testcritic.t
=> FAIL: Tests fail with 'Subroutine "new" called using indirect
syntax...'
2. Apply this patch
3. Repeat 1
=> SUCCESS: Tests pass
4. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 18829: (QA follow-up) I18N, test character and breadcrumbs
Katrin Fischer [Mon, 10 Apr 2023 17:00:21 +0000 (17:00 +0000)]
Bug 18829: (QA follow-up) I18N, test character and breadcrumbs

* Removes a 'heart' character from the file, probably added for testing
* Corrects breadbrumbs to make QA test tool happy
* Makes JS message translatable (test by manipulating the link to an invalid record number in DOM)

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 18829: (follow-up) Don't messup record encoding
Nick Clemens [Mon, 27 Mar 2023 12:04:56 +0000 (12:04 +0000)]
Bug 18829: (follow-up) Don't messup record encoding

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 18829: (follow-up) Return 404 when record cannot be loaded
Nick Clemens [Mon, 27 Mar 2023 11:53:45 +0000 (11:53 +0000)]
Bug 18829: (follow-up) Return 404 when record cannot be loaded

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 18829: (QA follow-up) Fix punctuation, capitalization and page title
Katrin Fischer [Sat, 22 Aug 2020 10:05:19 +0000 (10:05 +0000)]
Bug 18829: (QA follow-up) Fix punctuation, capitalization and page title

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 18829: Elasticsearch - Put a better display for the view of ES indexed record
Axel Amghar [Mon, 29 Apr 2019 09:27:49 +0000 (11:27 +0200)]
Bug 18829: Elasticsearch - Put a better display for the view of ES indexed record

To test:
- apply the patch
- go to global sysPref
- make sure that SearchEngine have "ElasticSearch" as value
- Search whatever you want in Search the catalog and select a record
- Search the link (Ctrl f) : "Elasticsearch Record :" , click on the link
- make sure that the pop-up open and you should see the elasticsearch result in JSON (the pop-up look the same as MARC preview)
- note fields are alphabetized
- from the command line delete the es record:
    curl -XDELETE es:9200/koha_kohadev_biblios/data/5
- click the preview link, it syas record not found
- check the logs - you see the error on missing record

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33229: Remove unecessary txn
Jonathan Druart [Wed, 22 Mar 2023 13:34:28 +0000 (14:34 +0100)]
Bug 33229: Remove unecessary txn

We don't need a transaction here.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33229: Clear patron reading history when privacy is set to never
Nick Clemens [Tue, 14 Mar 2023 20:02:10 +0000 (20:02 +0000)]
Bug 33229: Clear patron reading history when privacy is set to never

This patch adds a check to patron store routine. When privacy is changed
to 'Never' we should immediately clear their history

To test:
1 - Set system preferences:
   AnonymousPatron - to a valid borrowernumber
   OPACPrivacy - Allow
2 - Checkout some items to a patron with priacy set to default, return them
3 - Log in to opac as patron
4 - Confirm you can see your history
5 - Change history to Never
6 - Confirm history still viewable
7 - Apply patch, restart all
8 - Set privacy to Default
9 - Confirm you can still see history, not deleted when not set as Never
10 - Set privacy to 'Never'
11 - Confirm history is anonymized

Signed-off-by: Sally <sally.healey@cheshiresharedservices.gov.uk>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33181: Use template wrapper for tabs on record merge pages
Owen Leonard [Thu, 9 Mar 2023 15:43:24 +0000 (15:43 +0000)]
Bug 33181: Use template wrapper for tabs on record merge pages

This patch updates the include file which is used by both the
bibliographic and authority recrd merge pages. The markup is updated to
use the new tab WRAPPER directives.

To test, apply the patch and perform a catalog search which will return
more than one record.

 - Select two or more records and choose "Merge records" from the edit
   menu at the top of the search results.
 - On the following page you should see one tab for each record you
   selected from the search results.
 - Clicking each tab should show you the correct bibliographic details.

Perform the same tests from the authority search results page.

Signed-off-by: Andrew Auld <andrew.auld@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33187: Use template wrapper for tabs article requests and holds awaiting pickup...
Owen Leonard [Thu, 9 Mar 2023 19:28:47 +0000 (19:28 +0000)]
Bug 33187: Use template wrapper for tabs article requests and holds awaiting pickup pages

This patch updates the article requests management and holds awaiting
pickup templates in the staff interface so that they use the new WRAPPER
directive for building tabs.

To test, apply the patch and make sure the ArticleRequests system
preference is enabled.

- Go to Circulation -> Article requests
- You should see three tabs, "New," "Pending," and "Processing."
- The tabs should look correct and work correctly.
- Go to Circulation -> Holds awaiting pickup
- You should see three tabs, "Holds waiting", "Holds waiting over X
  days," and "Holds with cancellation requests." ("X" is the value in
  the ReservesMaxPickUpDelay system preference)

Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33129: Use template wrapper for breadcrumbs: Administration part 6
Owen Leonard [Fri, 3 Mar 2023 16:01:41 +0000 (16:01 +0000)]
Bug 33129: Use template wrapper for breadcrumbs: Administration part 6

This patch updates several administration templates so that they
use the new WRAPPER for displaying breadcrumbs.

To test, apply the patch and test each page and its variations.
Breadcrumbs should look correct, and each link should be correct.

Administration ->
 - Search engine configuration (Elasticsearch)
 - Share content with Mana KB
 - Circulation and fine rules
 - SMS cellular providers (SMSSendDriver preference must be set)
 - System preferences -> Local use (list, add, edit, confirm delete)
 - Library transfer limits (Advanced editor)
 - Transport cost matrix
 - Usage statistics
 - Z39.50/SRU servers administration (list, add, edit, both Z39.50 and
   SRU servers)

Signed-off-by: Andrew Auld <andrew.auld@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33191: AutoEmailPrimaryAddress options don't match labels in memberentry
Caroline Cyr La Rose [Mon, 13 Mar 2023 19:32:38 +0000 (15:32 -0400)]
Bug 33191: AutoEmailPrimaryAddress options don't match labels in memberentry

This patch changes the wording for the EmailFieldPrimary system
preference to make it clearer.

To test:
1. Go to Administration > Global system preferences
2. Search for EmailFieldPrimary
3. Read the sentence and choices, make sure it makes sense, grammar and
   spelling are correct
4. Optionally, try the different options, they should work as before

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33192: DBRev 22.12.00.020
Tomas Cohen Arazi [Fri, 14 Apr 2023 14:31:04 +0000 (11:31 -0300)]
Bug 33192: DBRev 22.12.00.020

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33192: (QA follow-up) Add execution bit
Tomas Cohen Arazi [Fri, 14 Apr 2023 14:29:22 +0000 (11:29 -0300)]
Bug 33192: (QA follow-up) Add execution bit

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33192: (QA follow-up) Fix it-IT sample data and unit tests
Katrin Fischer [Mon, 10 Apr 2023 14:40:56 +0000 (14:40 +0000)]
Bug 33192: (QA follow-up) Fix it-IT sample data and unit tests

To test:
* prove t/db_dependent/Message.t
* Run the it-IT web installer and make sure 'email' is set.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33192: Update all occurrences of AutoEmailPrimaryAddress
Martin Renvoize [Mon, 13 Mar 2023 14:05:51 +0000 (14:05 +0000)]
Bug 33192: Update all occurrences of AutoEmailPrimaryAddress

This patch updates all references to AutoEmailPrimaryAddress to refer to
EmailFieldPrimary instead.

Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33192: Update AutoEmailPrimaryAddress to EmailFieldPrimary
Martin Renvoize [Mon, 13 Mar 2023 14:04:45 +0000 (14:04 +0000)]
Bug 33192: Update AutoEmailPrimaryAddress to EmailFieldPrimary

This patch updates the database to reflect the new name for the
AutoEmailPrimaryAddress system preferences

Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33509: Don't show Other holdings when there are no alternate holdings
Katrin Fischer [Wed, 12 Apr 2023 19:58:03 +0000 (19:58 +0000)]
Bug 33509: Don't show Other holdings when there are no alternate holdings

With bug 33509 alternate holdings defined in AlternateHoldingsField
are shown in the staff interface result list. This works greatly
when there are items or when there is are alternate holdings (the
configured field/subfields exist in the record), but not when there
are no items and no alternate holdings.

To test:
* Add 100a to AlternateHoldingsField
* Make a search with some records without items
  Sample data: perl
* Make sure the alternate holdings show when there are no items
  and 100a exists
* Change to 100z
* Verify the result list now shows "Other holdings:" with nothing below
* Apply patch
* Repeat
  * Alternate holdings should still show nicely
  * Without alternate holdings 'no items' is displayed

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33231: (QA follow-up) Simplify conditional for date display
Nick Clemens [Thu, 13 Apr 2023 16:27:57 +0000 (16:27 +0000)]
Bug 33231: (QA follow-up) Simplify conditional for date display

This patch simply checks if we have a value for copyrighydate and
displays publicationyear if not. Even if copyrightdate is requested (MARC21)
but isn't populated, the publicatoinyear won't replace it because we
haven't transformed that field.

I think this read a bit easier, but RM can weigh in

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33231: (Bug 30813 follow-up) No publication date nor edition statements in Z39...
Janusz Kaczmarek [Tue, 14 Mar 2023 21:30:31 +0000 (22:30 +0100)]
Bug 33231: (Bug 30813 follow-up) No publication date nor edition statements in Z39.50 biblio search results

After executing Z39.50 search, the result table is not populated
with publication dates.  This is the result of code refactoring
made by Bug 30813.  The removed function _add_rowdata treated
in special way the publication date putting it in $row in under
special, non MARC variant dependent key 'date'--since
the z3950_search.tt looks under breeding_loo.date.

Same effect (no data in the result table) with edition statement.
Reason: editionstatement coming from TransformMarcToKoha vs edition
expected by z3950_search.tt.

Test plan:
==========
1. Have a Koha instance with some Z39.50 servers defined.
2. In Cataloging, perform a Z39.50 search for any term.
3. In the result table you would not get the publication dates nor
   edition statement (if present in the record).
4. Apply the patch.
5. Repeat the search.
6. You should see the publication dates (according to the current
   mapping, i.e. for MARC 21 coming from 260 $c or 264 $c subfield)
   and edition statements from the records found.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 31695: Type standard number is missing field ci_raw in field_config.yaml
Fridolin Somers [Wed, 5 Oct 2022 20:21:14 +0000 (10:21 -1000)]
Bug 31695: Type standard number is missing field ci_raw in field_config.yaml

In Elasticsearch fields config field_config.yaml, default type as a field 'ci_raw'. This is used for exact search.
This field is missing for type  standard number 'stdno'.

Test plan :
1) In the staff interface, go to Administration, and search for SearchEngine
2) Make sure that the SearchEngine preference is set to Elasticsearch and save
3) Return to Administration and select "Search engine configuration"
4) Change the type of "Heading-Main" to "Std. Number" and save
5) Rebuild the index (e.g. "koha-elasticsearch --rebuild -d kohadev")
6) Go to the main staff page and select Authorities
7) Search for a heading (e.g. "A Dual-language book")
=> Result is found with or without patch
8) Click on the sliders and select "is exactly" for the operator and search
=> Result is found only with patch
9) Apply the patch
10) Rebuild the index (e.g. "koha-elasticsearch --rebuild -d kohadev")
11) Click on the sliders and select "is exactly" for the operator and search
=> Result is found only with patch

Signed-off-by: Kevin Carnes <kevin.carnes@ub.lu.se>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33360: (follow-up) Adjust wording in verbose mode
Marcel de Rooy [Wed, 12 Apr 2023 13:17:11 +0000 (13:17 +0000)]
Bug 33360: (follow-up) Adjust wording in verbose mode

Koha reports 'sending mail' while we actually are still
processing mail. It could still be delayed, fail, etc.

Test plan:
Run process_message_queue in verbose mode. If a message
get processed, you should see:
    Processing email message to patron: 51 at /usr/share/koha/C4/Letters.pm line 1008.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33360: Update koha-conf.xml
Marcel de Rooy [Wed, 12 Apr 2023 11:59:45 +0000 (11:59 +0000)]
Bug 33360: Update koha-conf.xml

Test plan:
We already tested it. Just look at changes in this patch.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33360: Adjust Letters.t for limit parameter and domain limits
Marcel de Rooy [Tue, 4 Apr 2023 14:10:21 +0000 (16:10 +0200)]
Bug 33360: Adjust Letters.t for limit parameter and domain limits

Includes:
[1] Add a counter in the send_or_die mock.
[2] Correct from processed count to sent count.
[3] More extensive testing for limit parameter and domain limits.

Test plan:
Run t/db_dependent/Letters.t

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33360: Improving limit behavior in SendQueuedMessages
Marcel de Rooy [Mon, 3 Apr 2023 14:29:22 +0000 (16:29 +0200)]
Bug 33360: Improving limit behavior in SendQueuedMessages

Includes:
[1] Do no longer use the limit in the sql selection, but apply the
limit as a maximum for the number of sent messages. This is more
practical in terms of not flooding your mail server (and the
receiving ones).

[2] Replace call of _get_unsent_messages by Koha objects search.

[3] Do no longer report the number of messages seen, but report the
number actually 'sent'.

[4] If we lookup the to_address but we need to delay a message, save
the email address for the next run. Also optimizing patron lookup
in _send_message_by_email.

[5} Add support for $where parameter in SendQueuedMessages. Used by
process_message_queue.pl.

[6] Handle scalar/array for letter_code and type parameter too.

Test plan:
[1] Adjust your domain limit settings in koha-conf.
    Use notices to three domains. Group A and B.
    <message_domain_limits>
    <domain><name>A</name><limit>1</limit><unit>1h</unit></domain>
    <domain><name>B/name><belongs_to>A</belongs_to></domain>
    <domain><name>C</name><limit>1</limit><unit>1h</unit></domain>
    </message_domain_limits>
    Replace A, B and C with your choice. Do not forget the belongs_to.
    Restart all.
[2] Disable cron job for message queue.
[3] Generate two notices for each domain A, B and C (in that order).
    Make sure that borrowers involved have correct address.
[4] Run process_message_queue.pl -limit 1
[5] Check that one is sent for A, 5 pending.
[6] Run process_message_queue.pl -limit 2
[7] Check that one is sent for C, 4 pending.
[8] Run process_message_queue.pl (without limit).
[9] Check that nothing is sent, 4 pending.
[10] Check that message_queue.to_address is filled for those 4.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33360: Incorporate Koha::Notice::Util in Letters:SendQueuedMessages
Marcel de Rooy [Thu, 30 Mar 2023 06:58:10 +0000 (08:58 +0200)]
Bug 33360: Incorporate Koha::Notice::Util in Letters:SendQueuedMessages

Minimal adjustment to get the feature working.
Will still be improved in follow-up.

Test plan:
[1] Add a domain limit to your koha-conf:
    <message_domain_limits>
    <domain><name>gmail.com</name><limit>1</limit> <unit>1h</unit></domain>
    </message_domain_limits>
    Replace gmail.com by the domain you want to send to.
    Restart all.
[2] Disable cron job for message queue.
[3] Generate two pending notices in the queue.
[4] Run process_message_queue.pl
[5] Check that one is sent, one is still pending.
[6] Run again.
[7] Check: nothing is sent, last one still pending.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33360: Extend Koha::Notice::Util with domain groups
Marcel de Rooy [Mon, 3 Apr 2023 14:29:22 +0000 (16:29 +0200)]
Bug 33360: Extend Koha::Notice::Util with domain groups

The functionality is extended a bit here by:
[1] Allowing to combine domains in a shared count.
[2] Only counting sent messages for the specified
    domains when it is really needed.

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33360: Add Koha::Notice::Util for mail domain limits
Marcel de Rooy [Thu, 30 Mar 2023 12:56:55 +0000 (14:56 +0200)]
Bug 33360: Add Koha::Notice::Util for mail domain limits

Ground work in new module.
Includes unit test.

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 32956: Use template wrapper for HTML customizations tabs
Owen Leonard [Wed, 8 Feb 2023 17:46:48 +0000 (17:46 +0000)]
Bug 32956: Use template wrapper for HTML customizations tabs

This patch updates the HTML customizations template to replace tab
markup with the use of WRAPPERs.

- Apply the patch and go to Tools -> HTML customizations.
- Create or edit an entry.
- You should see tabs for each available language, for example
  Default, English, French.
- Test adding content to each language to confirm that the correct
  information is saved under the correct tab.

Signed-off-by: Philip Orr <philip.orr@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 32955: Standardize structure around action fieldsets in various templates
Owen Leonard [Wed, 1 Feb 2023 11:59:09 +0000 (11:59 +0000)]
Bug 32955: Standardize structure around action fieldsets in various templates

This patch updates various templates so that fieldsets with the
"action" class are placed outside the form's main fieldset.

To test, apply the patch and check the following pages to confirm that
changes to form structure look correct:

- Cataloging -> Quick spine label creator
- Patrons -> Patron details -> Files
- Patrons -> Patron details -> Housebound
- Circulation -> Upload offline circulation file
- Tools -> Patron card creator -> Manage -> Images
- Point of sale -> Transaction history -> "Older transactions" form

Signed-off-by: Philip Orr <philip.orr@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 31722: Fixed EDIFACT message to only display if EDIFACT is turned on
Philip Orr [Thu, 30 Mar 2023 10:09:32 +0000 (10:09 +0000)]
Bug 31722: Fixed EDIFACT message to only display if EDIFACT is turned on

This patch makes a small change to the display of the note
"No EDIFACT configuration for..." on the basket group page to
only display if the system preference EDIFACT is set to "Enable".

To Test:
1. apply patch
2. navigate to a vendor over Acquisitions -> Vendor e.g. My Vendor
3. create a basket group (doesn't have to have any baskets, an empty one will do)
4. close the basket group
5. set system preference "EDIFACT" to "Enable"
6. navigate to Administration -> EDI Accounts and make sure the vendor doesn't have
   an EDI account configured
7. navigate to your vendor's closed basket groups
   over Acquisitions -> Vendor -> Basket groups (left panel) -> Tab "Closed"
8. you should see a message "No EDIFACT configuration for (name of vendor)" in the
   Action column
9. set system preference "EDIFACT" to "Disable"
10. go back to your vendor's closed basket groups
11. you shouldn't see the message "No EDIFACT configuration for (name of vendor)"

Signed-off-by: Laura Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33375: Quote reserved keyword 'rank' in advanced editor
David Cook [Fri, 31 Mar 2023 00:55:56 +0000 (00:55 +0000)]
Bug 33375: Quote reserved keyword 'rank' in advanced editor

This change quotes the 'rank' keyword in the advanced editor,
so that it doesn't cause fatal crashes when using MySQL 8

Test plan:
0. Apply patch and koha-plack --restart kohadev
1. Enable advanced editor
http://localhost:8081/cgi-bin/koha/admin/preferences.pl?op=search&searchfield=EnableAdvancedCatalogingEditor
2. Go to http://localhost:8081/cgi-bin/koha/cataloguing/editor.pl#new/
3. Click on "Advanced" on the left nav
4. Note that "LIBRARY OF CONGRESS" is ordered before "NATIONAL LIBRARY OF FRANCE"
5. Rejoice!

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33088: Remove background-job-progressbar.js in batch_record_modification.tt
Fridolin Somers [Sat, 18 Mar 2023 03:08:56 +0000 (17:08 -1000)]
Bug 33088: Remove background-job-progressbar.js in batch_record_modification.tt

It must be removed, we don't need it since bug 22417

Test plan :
Play with batch record modification and check there is no JS error

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>
18 months agoBug 32127: Add unit test
Fridolin Somers [Wed, 29 Mar 2023 08:52:08 +0000 (22:52 -1000)]
Bug 32127: Add unit test

Run prove t/db_dependent/Template/Plugin/Categories.t

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>
18 months agoBug 32127: Sort by description in Koha::Template::Plugin::Categories
Fridolin Somers [Mon, 7 Nov 2022 21:42:49 +0000 (11:42 -1000)]
Bug 32127: Sort by description in Koha::Template::Plugin::Categories

Like in Koha::Template::Plugin::Branches, methods in
Koha::Template::Plugin::Categories must return categories sorted by
description.

Test plan :
1) Create a new patron category with code ZZZ and description AAAAAA
2) Go to patron search /cgi-bin/koha/members/members-home.pl
3) Look at filter by category :
=> Without patch the value AAAAAA is last
=> With patch the value AAAAAA is first
4) Click on 'New patron'
=> Without patch the value AAAAAA is last
=> With patch the value AAAAAA is first

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
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>
18 months agoBug 33345: On-site checkout checkbox does not work since issue date using flatpickr
Fridolin Somers [Mon, 27 Mar 2023 21:29:01 +0000 (11:29 -1000)]
Bug 33345: On-site checkout checkbox does not work since issue date using flatpickr

Since Bug 30718, date due uses flatpickr.
The JavaScript code setting due date via on-site checkout checkbox needs to be adapted.
Sort of like Bug 30717.

This patch renames the variable sent to template
'today_due_date_and_time' to avoid confusion with variable 'todaysdate'
used in other templates.

Test plan :
1) Enable system preference 'OnSiteCheckouts'
2) Go to a patron circulation page /cgi-bin/koha/circ/circulation.pl
3) Click on settings icon inside barcode input
=> Check due date input is empty
4) Click on 'On-site checkout'
=> Check due date input is filled with today date at 23:59
5) Fill barcode input and do check-out
6) Check due date is correct

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 32418: Remove useless statement
Jonathan Druart [Fri, 14 Apr 2023 06:24:07 +0000 (08:24 +0200)]
Bug 32418: Remove useless statement

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 32418: (follow-up) Remove jQuery, Fix typos in url, add biblio as template param
Paul Derscheid [Thu, 13 Apr 2023 09:27:31 +0000 (09:27 +0000)]
Bug 32418: (follow-up) Remove jQuery, Fix typos in url, add biblio as template param

To test:
1. Go to any record
2. Hit the edit button on an item in the holdings table
3. Modify the URL so that the query param for the itemnumber is either
    3.1 empty: /cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=384&itemnumber=
    3.2 an itemnumber that doesn't exist:
      /cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=384&itemnumber=9999999999
    3.3 whatever else you come up with..
4. Check the same thing for the dupe option (op=dupeitem)
5. Sign off

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>
18 months agoBug 32418: Can't call method 'unblessed' on an undefined value at cataloguing/additem.pl
Paul Derscheid [Mon, 20 Feb 2023 10:06:32 +0000 (11:06 +0100)]
Bug 32418: Can't call method 'unblessed' on an undefined value at cataloguing/additem.pl

Check whether the current op is edititem or dupeitem and if so check
whether the itemnumber supplied as a query param actually exists.

If it doesn't, redirect to the additem op and hide all UI elements except
for a dialog that gives options to add a new item to the record or to
view the records holdings.

This behaviour was adapted from the addbiblio view, as suggested by
Fridolin.

To test:
1. Go to any record
2. Hit the edit button on an item in the holdings table
3. Modify the URL so that the query param for the itemnumber is either
    3.1 empty: /cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=384&itemnumber=
    3.2 an itemnumber that doesn't exist:
      /cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=384&itemnumber=9999999999
    3.3 whatever else you come up with..
4. Check the same thing for the dupe option (op=dupeitem)
5. Sign off

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>
18 months agoBug 33485: (bug 32939 follow-up) Fix title endpoint
Jonathan Druart [Tue, 11 Apr 2023 12:57:47 +0000 (14:57 +0200)]
Bug 33485: (bug 32939 follow-up) Fix title endpoint

The change is obvious, we shoulf call the title endpoint, not package.

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>
18 months agoBug 32716: larger proxy_buffer_size in NGINX example config
Galen Charlton [Tue, 24 Jan 2023 19:10:32 +0000 (14:10 -0500)]
Bug 32716: larger proxy_buffer_size in NGINX example config

This patch updates the example NGINX config to increase the
proxy_buffer_size to 16k. The default value of 4k (on some platforms)
has empirically been shown to be a bit too small for the Link
headers emitted by the REST API when pagination is requested.

To test
-------
[1] Set up a Koha system with NGINX as a reverse proxy in
    front of it (either in front of Apache or in front of
    of Starman).
[2] Perform a patron search that returns at least two pages
    of results and navigate to the second page.
[3] Note that the navigation can fail with a 502 HTTP error
    and an "upstream sent too big header while reading response
    header from upstream" error in the NGINX log.

    The problem is most likely when the pagesize of the server
    running NGINX is 4096 bytes.
[4] Update the NGINX configuration per this patch and restart
    NGINX.
[5] This time, repeating step 2 should work.

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33481: Pass content-type when requesting EBSCO's webservice
Jonathan Druart [Tue, 11 Apr 2023 11:37:14 +0000 (13:37 +0200)]
Bug 33481: Pass content-type when requesting EBSCO's webservice

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>
18 months agoBug 33307: Use template wrapper for tabs: Lists
Owen Leonard [Thu, 9 Mar 2023 18:14:04 +0000 (18:14 +0000)]
Bug 33307: Use template wrapper for tabs: Lists

This patch updates the lists template so that it uses the new WRAPPER
directive to build tabbed navigation.

To test, apply the patch and go to the lists page in the staff
interface.

- Confirm that the two tabs, "Your lists" and "Public lists" look
  correct and work correctly.
- Test that the correct tab is selected when you add the "public" or
  "private" parameter to the url:

  /cgi-bin/koha/virtualshelves/shelves.pl?op=list&public=1
  /cgi-bin/koha/virtualshelves/shelves.pl?op=list&public=0

Signed-off-by: Sally <sally.healey@cheshiresharedservices.gov.uk>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33294: Use template wrapper for tabs: Checkout history
Owen Leonard [Tue, 21 Mar 2023 16:43:06 +0000 (16:43 +0000)]
Bug 33294: Use template wrapper for tabs: Checkout history

This patch updates the checkout history template so that it uses the new
WRAPPER directive to build tabbed navigation.

In order to make the template logic a little easier to parse I moved the
table of checkouts into its own BLOCK to be used when on-site checkouts
are enabled or disabled.

To test, apply the patch and locate a patron who has a checkout history.

- If you have on-site checkouts enabled you will see three tabs: All,
  Checkouts, and On-site checkouts.
- Each tab should work correctly: The checkouts tab showing only regular
  checkouts, the on-site checkouts tab showing only on-site checkouts.
- If you have on-site checkouts disabled there should be no tabs, the
  table of checkouts should be displayed inside a "page-section" div
  instead.

Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33293: Use template wrapper for tabs: Holds
Owen Leonard [Tue, 21 Mar 2023 16:25:48 +0000 (16:25 +0000)]
Bug 33293: Use template wrapper for tabs: Holds

This patch updates the holds template so that it uses the new WRAPPER
directive to build tabbed navigation.

Note: this patch includes indentation changes, so check the diff
accordingly.

To test, apply the patch and locate a bibliographic record which
can be placed on hold.

- Start the process of placing a hold.
- If you have any patron clubs defined, there should be two tabs:
  Patrons and Clubs. Both should look correct and work correctly.
- If you have no patron clubs you should see only the Patrons tab.

Works as advertised.

Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33186: Use template wrapper for tabs on search history and advanced search
Owen Leonard [Thu, 9 Mar 2023 18:47:04 +0000 (18:47 +0000)]
Bug 33186: Use template wrapper for tabs on search history and advanced search

This patch updates the search history and advanced search templates in
the staff interface so that they use the new WRAPPER directive for
building tabs.

The patch also makes a minor change to CSS in order to accommodate the
different markup.

To test, apply the patch and rebuild the staff interface CSS.

- Go to the catalog's advanced search page. You should see tabs for each
  of the selections defined in the AdvancedSearchTypes system
  preference.
- The tabs should look correct and work correctly.
- If necessary, enable the EnableSearchHistory system preference.
- Click the logged-in user name in the header menu and choose "Search
  history."
- On this page you should see two tabs, catalog and authority. Both tabs
  should look correct and work correctly.

Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33185: Use template wrapper for tabs on authority and biblio MARC details
Owen Leonard [Thu, 9 Mar 2023 17:47:54 +0000 (17:47 +0000)]
Bug 33185: Use template wrapper for tabs on authority and biblio MARC details

This patch updates the MARC detail views of bibliographic and authority
records so that they use the new WRAPPER directives to build tabs.

To test, apply the patch and locate a bibliographic record in the
catalog.

- Click the "MARC" menu item in the left-hand sidebar.
- Confirm that all tabs work correctly.

Perform the same test by going to Authorities and doing a search for
authorities. Clicking one of the results should take you to a
tabbed MARC view.

Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33408: Fix template literal
Pedro Amorim [Wed, 12 Apr 2023 16:30:39 +0000 (16:30 +0000)]
Bug 33408: Fix template literal

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33408: Move providers into syspref array
Pedro Amorim [Wed, 12 Apr 2023 09:42:29 +0000 (09:42 +0000)]
Bug 33408: Move providers into syspref array

ERMProviders is a sys pref, place it in sysprefs

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33408: Add storeToRefs to ERMStore
Pedro Amorim [Wed, 12 Apr 2023 08:36:18 +0000 (08:36 +0000)]
Bug 33408: Add storeToRefs to ERMStore

It makes it so that any changes to the local property
is also reflected in the store and other components are
made aware of the new value. No need to explicitly
change both local property and store property values.

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33408: Store sysprefs in a new ERM store
Jonathan Druart [Fri, 7 Apr 2023 08:40:08 +0000 (10:40 +0200)]
Bug 33408: Store sysprefs in a new ERM store

We need the sysprefs' values to be shared between the components

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33408: We need only one this.loaded call
Jonathan Druart [Wed, 5 Apr 2023 12:27:03 +0000 (14:27 +0200)]
Bug 33408: We need only one this.loaded call

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33408: Remove obsolete tests and template sys pref code
Pedro Amorim [Wed, 5 Apr 2023 11:43:52 +0000 (11:43 +0000)]
Bug 33408: Remove obsolete tests and template sys pref code

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33408: Prevent access to erm module by URL if sys pref is disabled
Pedro Amorim [Wed, 5 Apr 2023 11:45:45 +0000 (11:45 +0000)]
Bug 33408: Prevent access to erm module by URL if sys pref is disabled

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33408: Extend defaultCommandTimeout for cypress
Jonathan Druart [Wed, 5 Apr 2023 08:03:21 +0000 (10:03 +0200)]
Bug 33408: Extend defaultCommandTimeout for cypress

Sometimes the initial page load takes more than 4 seconds.

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33408: Mock ERM sysprefs from cypress tests
Jonathan Druart [Tue, 4 Apr 2023 15:02:12 +0000 (17:02 +0200)]
Bug 33408: Mock ERM sysprefs from cypress tests

Sponsored-by: BULAC - http://www.bulac.fr/
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33408: Fetch sysprefs from svc/config/systempreferences
Jonathan Druart [Tue, 4 Apr 2023 13:51:51 +0000 (15:51 +0200)]
Bug 33408: Fetch sysprefs from svc/config/systempreferences

It will be easier to mock/set them from cypress tests.

Sponsored-by: BULAC - http://www.bulac.fr/
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33336: Use a dedicated column for plugin status in plugins table
Fridolin Somers [Sat, 25 Mar 2023 01:19:06 +0000 (15:19 -1000)]
Bug 33336: Use a dedicated column for plugin status in plugins table

In plugins table plugins/plugins-home.pl the status enable/disable is with the name, styled as a label.
With new interface ENABLED is yellow, this looks weird.
Also I bet this is bad for accessibility.

I propose to move this info to a dedicated column.
I use bootstrap classes bg-success and bg-warning like in about.pl

Test plan:
1) Install some plugins
2) Go to Administration > Manage plugins
3) Check you see table with column status
4) Disable a plugin
5) Check you see 'Disabled' in status

Signed-off-by: Laura Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 32998: Consolidate opac-tmpl/lib and opac-tmpl/bootstrap/lib
Owen Leonard [Fri, 17 Feb 2023 17:22:00 +0000 (17:22 +0000)]
Bug 32998: Consolidate opac-tmpl/lib and opac-tmpl/bootstrap/lib

This patch moves OPAC third-party assets from opac-tmpl/bootstrap/lib
to opac-tmpl/lib, eliminating some redundancy and making it simpler
to understand where such assets should be found.

To test, apply the patch and confirm that there is no longer a lib
directory under opac-tmpl/bootstrap.

Test various parts of the OPAC to confirm that assets are still loading
correctly. Everything should look right and work correctly. The
browser's developer console should be free of errors.

Signed-off-by: Philip Orr <philip.orr@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
18 months agoBug 33289: Add API client class to interact with svc/config/systempreferences
Jonathan Druart [Tue, 21 Mar 2023 08:00:10 +0000 (09:00 +0100)]
Bug 33289: Add API client class to interact with svc/config/systempreferences

On bug 30708 we will need to modify sysprefs from the UI (Vue app), it
could be useful for other developments as well and so it is moved on its
own bug report.

Test plan:
It can be tested independently of bug 30708 using the following code:

const client = APIClient.sysprefs
client.sysprefs
    .update(
        "CardnumberLength",
        "42"
    )

Sponsored-by: BULAC - http://www.bulac.fr/
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>