koha.git
2 years agoBug 30282: overdues report does not display subtitle, part_name, part_number
Blou [Fri, 11 Mar 2022 20:54:51 +0000 (15:54 -0500)]
Bug 30282: overdues report does not display subtitle, part_name, part_number

In circ/overdue.pl, the Title column is the result of includes/biblio-title.inc display.  The code of biblio-title.inc means to display subtitle, part_number and part_name from biblio table, but nothing but commas show up because those fields are never retrieved by overdue.pl

To reproduce:
1) have an item whose biblio.subtitle, part_name and part_number and non-empty.
2) issue it, then set it late (overdue).
3) go to the report page (circ/overdue.pl) and make it appear.
4) subtitle, part_number and part_name do not appear, although they are meant to by biblio-title.inc code
5) apply the patch and try again.

It's a simple fix of adding the fields in the database query.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 24415: Authority enhancement - Improve access to tabs
Owen Leonard [Mon, 10 Jan 2022 16:21:11 +0000 (16:21 +0000)]
Bug 24415: Authority enhancement - Improve access to tabs

This patch makes style changes to the authority record editor in order
to make it easier to navigate among tabs and tags. This change matches
the one made to the basic MARC editor in Bug 22045.

Tabs are now part of the page's toolbar, which floats as the page
scrolls. In addition to the numbered tabs, there is also a section
showing in-page links to the MARC tags which are available on that page.

To test, apply the patch and clear your browser cache if necessary.

Open a blank or existing record in the authority record editor. Test
the redesigned tabs, the floating toolbar, and the in-page tag links.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29791: (follow-up) Add missing comma in previous line
Katrin Fischer [Sat, 8 Jan 2022 23:25:11 +0000 (23:25 +0000)]
Bug 29791: (follow-up) Add missing comma in previous line

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29791: KohaOpacLanguage cookie should set the secure flag if using https
Kyle M Hall [Tue, 4 Jan 2022 15:24:18 +0000 (10:24 -0500)]
Bug 29791: KohaOpacLanguage cookie should set the secure flag if using https

To test, the headers should have value set-cookie: secure;
for the language cookie, when the site is using https.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 6815: Compiled CSS
Fridolin Somers [Thu, 24 Mar 2022 23:43:41 +0000 (13:43 -1000)]
Bug 6815: Compiled CSS

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 6815: Don't make an AJAX request to generate the modal
Jonathan Druart [Mon, 21 Mar 2022 16:26:12 +0000 (17:26 +0100)]
Bug 6815: Don't make an AJAX request to generate the modal

moremember-patronimage.pl|tt were not needed.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 6815: Display an error in if HTTPS not used and webcam unavailable
Jonathan Druart [Mon, 21 Mar 2022 16:04:22 +0000 (17:04 +0100)]
Bug 6815: Display an error in if HTTPS not used and webcam unavailable

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 6815: Capture member photo via webcam
Mark Tompsett [Wed, 15 Jul 2020 04:55:06 +0000 (04:55 +0000)]
Bug 6815: Capture member photo via webcam

This patch builds on a patch by Mark Tompsett, adding the option to take
a patron's picture using the computer's webcam. The photo can then be
saved to the patron's account.

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

- Go to Administration -> System preferences and enable the
  'patronimages' preference.
- View a patron record. In the sidebar, hover your mouse over the blank
  patron image. Click the "Edit" button which appears.
- A modal window should appear with two sections, "Upload patron photo"
  and "Take patron photo."
  - If your computer has a webcam, your browser should ask permission to
    access it. Grant access.
  - You should see the view of your webcam shown under the "Take photo"
    button.
  - Click the "Take photo" button. The captured photo should be shown in
    place of the live video from the webcam.
  - You should now see three buttons: "Retake photo," "Download photo,"
    and "Upload photo."
    - Clicking "Retake photo" should hide those buttons and return you
      to a live video view.
    - Clicking "Download" should make your browser download the image.
    - Clicking "Upload" should cause the page to redirect back to the
      patron detail page where you should see the new patron image
      displayed in the sidebar.
    - Trigger the modal again and click the "cancel" button. The
      modal should disappear and camera access should stop.
- If your computer has no webcam the modal should appear correctly but
  there should be a banner at the bottom indicating that a camera is not
  available.
- Try the test again but this time deny your browser access to the
  webcam. You may need to reset the camera permissions in your browser's
  settings. When the modal appears you should see a message saying
  access to the camera is denied.
- The patron image edit modal should be available on all pages which
  show the patron image in the sidebar: Check out, Batch check out,
  Details, Accounting, Routing lists, Circulation history, Holds
  history, Modification log, Notices, Statistics, Files, Purchase
  suggestions, Discharges, Housebound, and ILL requests history.
- Test adding an image to a patron record using the "Upload photo"
  option. It should still work correctly.
- If the patron has an image attached, the "Upload photo" section should
  have a "Delete" button. Test that it works correctly.

Signed-off-by: Nicolas Legrand <nicolas.legrand@bulac.fr>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29713: Make item table when placing an item level hold sortable
Owen Leonard [Thu, 24 Feb 2022 16:43:14 +0000 (16:43 +0000)]
Bug 29713: Make item table when placing an item level hold sortable

This patch modifies the holds page in the OPAC so that users selecting a
specific item to place a hold on can sort the table of items.

This patch also removes some obsolete JavaScript left over from before
Flatpickr.

To test, apply the patch and go to Administration -> Circulation and
fine rules to make sure at least one item type in your system has
"OPAC item level holds" set to "allow."

- Log in to the OPAC as a user who can place holds.
- Search the catalog for items which will accept item-level holds.
- Place a hold on one of the results, and click the "Show more options"
  link on the holds page.
  - Check the "specific item" radio button.
  - A table of items should be displayed. Confirm that the table is
    sortable.
  - The first entry in the table should be selected.
  - Perform the same test when placing a hold on multiple titles.
    Confirm that each table of items is sortable.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 22605: (QA follow-up) Make Braille search option stick
Katrin Fischer [Sun, 24 Oct 2021 16:40:38 +0000 (16:40 +0000)]
Bug 22605: (QA follow-up) Make Braille search option stick

To test:
- Add to records, one with 007 fb and another with 007 tc
- Search for Format: Braille from the advanced search
- Verify both records are found
- Return to advanced search
- Verify that Braille is still selected
- Rerun search - same results show

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 22605: (follow-up) Add selected to audience attributes
Nick Clemens [Mon, 25 Oct 2021 17:13:34 +0000 (17:13 +0000)]
Bug 22605: (follow-up) Add selected to audience attributes

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 22605: Preselect subtype limits and don't allow multiple
Nick Clemens [Fri, 22 Oct 2021 11:35:13 +0000 (11:35 +0000)]
Bug 22605: Preselect subtype limits and don't allow multiple

Dropdowns moved to an include, checked and preseleced

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 22605: (follow-up) Fix operators
Nick Clemens [Thu, 21 Oct 2021 18:44:50 +0000 (18:44 +0000)]
Bug 22605: (follow-up) Fix operators

- Don't add an operator on first loop
- Only add plus option on last loop
- Fix indentation of first search box
- Remove spaces from operators in query_cgi and add to query and query_desc

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 22605: Add ability to edit a search on staff interface
Nick Clemens [Thu, 12 Aug 2021 15:28:40 +0000 (15:28 +0000)]
Bug 22605: Add ability to edit a search on staff interface

This patch adds the ability to parse the current search and populate the advanced search page on the staff side accordingly.
When searching you will now have an 'Edit this search' link underneath your current search terms

A few notes:
1 - Previous selected items appear with a checkbox, unchecking 'disables' them and removes from the search
2 - Facets and unrecognized limits will appear at the end of the form under 'Other limits' - there could be future enhancement to parse there better, but I believe this is sufficient for now
3 - Previously selected branch or group selections will populate the dropdowns, only one is allowed

To test:
1 - Perform a variety of search on the staff interface
2 - Confirm the 'edit search' button appear below your search
3 - Confirm that options are retained and correctly parsed
4 - Test with library groups - you should be able to combine groups after initial search, or remove individual libraries when editing
5 - Test that selecting a goup disables the individual libraries options

QA note: Missing filters on deletion of keys form hash are false positives

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

Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30000: Replace the use of jQueryUI tabs on the search engine configuration page
Owen Leonard [Fri, 18 Mar 2022 14:37:54 +0000 (14:37 +0000)]
Bug 30000: Replace the use of jQueryUI tabs on the search engine configuration page

This patch replaces jQueryUI tabs on the search engine configuration
page, replacing them with Bootstrap tabs.

To test, apply the patch and go to Administration -> Search engine
configuration.

- The "Search fields" tab should be selected by default, and the table
  should be initialized as a DataTable with sorting and filtering.
- When you switch to the "Bibliographic records" and "Authorities" tabs
  the tables on those tabs should also be initialized, each with
  filtering and drag-and-drop row re-ordering.
- All tables should continue to work correctly after switching back and
  forth between tabs.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29893: Redraw the tables from other tabs without paging
Jonathan Druart [Thu, 17 Feb 2022 16:39:52 +0000 (17:39 +0100)]
Bug 29893: Redraw the tables from other tabs without paging

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29893: Make sure the form will be submitted after the draw calls
Jonathan Druart [Wed, 9 Feb 2022 10:07:40 +0000 (11:07 +0100)]
Bug 29893: Make sure the form will be submitted after the draw calls

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29893: Prevent ES mappings UI to remove hidden rows
Jonathan Druart [Mon, 17 Jan 2022 14:45:06 +0000 (15:45 +0100)]
Bug 29893: Prevent ES mappings UI to remove hidden rows

If you are editing ES mappings and you use the DataTable filtering option,
the table won't contain all the mappings you have in the DB.
If the form is submitted they will be removed and data will be lost!

Test plan:
Edit ES mappings, filter and submit the form.
Confirm that the table are redrawn before the form submission which
prevent data loss

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29915: Prevent bad cookie from corrupted session
Marcel de Rooy [Thu, 24 Mar 2022 07:31:12 +0000 (07:31 +0000)]
Bug 29915: Prevent bad cookie from corrupted session

If there is deleted session info but no session->id, a wrong cookie
with empty name could be generated containing expired session id.

Test plan:
Run t/db_dependent/Auth.t
Login. Check cookies in browser.
Logout. Check cookies in browser.
Without this patch, you should see an invalid cookie.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 26328: Add test
Jonathan Druart [Mon, 21 Mar 2022 14:56:21 +0000 (15:56 +0100)]
Bug 26328: Add test

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 26328: Cast barcode from varchar to integer for incremental barcode
David Cook [Fri, 4 Dec 2020 05:36:04 +0000 (05:36 +0000)]
Bug 26328: Cast barcode from varchar to integer for incremental barcode

Without this patch, the incremental barcode generation will
treat 978e0143019375 as having an exponent and interpret it as a very
large number.

With this patch, the incremental barcode generation will first cast
barcode varchar strings to integers before finding a max() value.
In this case 978e0143019375 becomes 978 instead of
1.7976931348623157e308

Test plan:

0. Using koha-testing-docker

Before applying patch:

1. Go to http://localhost:8081/cgi-bin/koha/admin/preferences.pl?op=search&searchfield=autobarcode
2. Set to "generated in the form 1, 2, 3"
3. Go to http://localhost:8081/cgi-bin/koha/cataloguing/additem.pl?biblionumber=1#additema&searchid=scs_1607059974968
4. Add item with barcode 978e0143019375
5. Click "p - Barcode"
6. Note the barcode is "Inf"

After applying patch:
1. Go to http://localhost:8081/cgi-bin/koha/cataloguing/additem.pl?biblionumber=1#additema&searchid=scs_1607059974968
2. Click "p - Barcode"
3. Note the barcode is "39999000019194"

Signed-off-by: Marjorie <marjorie.barry-vila@collecto.ca>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29802: add 'me' to filter_by_visible_in_opac query
Nick Clemens [Fri, 18 Mar 2022 14:25:14 +0000 (14:25 +0000)]
Bug 29802: add 'me' to filter_by_visible_in_opac query

This patch prefixes all of the fields in OpacHiddenItems with
"me." before searching.

Unit tests added to cover this case1

To test:
1 - Create a public list
2 - Set OpacHiddenItems to:
    biblionumber: [1]
3 - Attempt to view list in OPAC
4 - Booom
5 - Aply patch
6 - Reload list
7 - Success

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29802: Unit tests
Nick Clemens [Thu, 6 Jan 2022 16:03:56 +0000 (16:03 +0000)]
Bug 29802: Unit tests

prove -v t/db_dependent/Koha/Items.t
prove -v t/db_dependent/XSLT.t

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30294: Rename Koha::Recall->* used relationship names
Tomas Cohen Arazi [Mon, 14 Mar 2022 17:47:36 +0000 (14:47 -0300)]
Bug 30294: Rename Koha::Recall->* used relationship names

This patch renames the underlaying relationship names used in the
'patron' and 'library' subs so they are more clearly prefetchable and
also enabling them to be embeddable and searchable through an eventual
API route for recalls.

To test:
1. Apply the patch
2. Run:
   $ kshell
  k$ prove t/db_dependent/Koha/Recall*
=> SUCCESS: Tests pass, nothing really changes
3. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29788: (follow-up) Make Koha::Item->safe_to_delete use Koha::Result::Boolean
Jonathan Druart [Wed, 23 Mar 2022 11:30:42 +0000 (12:30 +0100)]
Bug 29788: (follow-up) Make Koha::Item->safe_to_delete use Koha::Result::Boolean

There were several wrong things in the previous patch!

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 19532: (RM follow-up) Fix DBIx schema on old
Fridolin Somers [Wed, 23 Mar 2022 19:58:58 +0000 (09:58 -1000)]
Bug 19532: (RM follow-up) Fix DBIx schema on old

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 26685: Move Starman out of debian/control.in and into cpanfile (2)
Mason James [Wed, 2 Mar 2022 05:30:49 +0000 (18:30 +1300)]
Bug 26685: Move Starman out of debian/control.in and into cpanfile (2)

defining package as 'recommended', as suggested

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 26685: Move starman out of debian/control.in and into cpanfile
David Cook [Thu, 15 Oct 2020 02:06:44 +0000 (02:06 +0000)]
Bug 26685: Move starman out of debian/control.in and into cpanfile

to test...
 - apply patch
 - build and install new package
 - confirm starman package displays correctly in about.pl page

Signed-off-by: Mason James <mtj@kohaaloha.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30161: Remove duplicate z3950_search include
Marcel de Rooy [Wed, 23 Feb 2022 13:14:03 +0000 (13:14 +0000)]
Bug 30161: Remove duplicate z3950_search include

Speaks for itself.

Test plan:
Check if the acqui z3950 search works as expected.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30253: Remove a double mana_success parameter
Marcel de Rooy [Wed, 9 Mar 2022 12:46:10 +0000 (12:46 +0000)]
Bug 30253: Remove a double mana_success parameter

Remove the line without the scalar.

Test plan:
Just look at the code.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30008: (bug 29690 follow-up) Fix Invalid data, cannot decode metadata object
Jonathan Druart [Thu, 17 Mar 2022 15:19:16 +0000 (16:19 +0100)]
Bug 30008: (bug 29690 follow-up) Fix Invalid data, cannot decode metadata object

Test plan:
1 - Find a record in the staff catalog
2 - Edit the record
3 - In the 520 notes field, add an ASCII escape character (27 decimal, 1b hex)
    On ubuntu Ctrl+Shift+u, then 1b, enter
4 - Save the record
5 - Set syspref ShowComponentRecords to 'both...'
6 - On record details: New->New child record
7 - Save the record
8 - Attempt to view the parent record in the staff client and opac

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29486: Add check in search_for_data_inconsistencies.pl
Jonathan Druart [Wed, 19 Jan 2022 13:40:14 +0000 (14:40 +0100)]
Bug 29486: Add check in search_for_data_inconsistencies.pl

If the MARC record does not contain the correct biblionumber of
biblioitemnumber, the script will display the following warning:

== Bibliographic records have MARCXML without biblionumber or biblioitemnumber ==
        * Biblionumber 4242 has '1' in 999$c
        * Biblionumber 4242 has biblioitemnumber '4242' but should be '1' in 999$d
=> The bibliographic records must have the biblionumber and biblioitemnumber in MARCXML

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29486: Fix tests
Jonathan Druart [Wed, 19 Jan 2022 13:39:51 +0000 (14:39 +0100)]
Bug 29486: Fix tests

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29486: _koha_marc_update_bib_ids no longer needed for GetMarcBiblio
Jonathan Druart [Tue, 16 Nov 2021 08:13:30 +0000 (09:13 +0100)]
Bug 29486: _koha_marc_update_bib_ids no longer needed for GetMarcBiblio

This subroutine is ensuring that the biblionumber and biblioitemnumber
will be part of the MARC record.
We should not need that, unless there is something broken somewhere
else.

This line has been added by the following commit:
  commit 4e95e94727b09b33d2f6c597bdd218a59dcc3681
  Bug 6789: biblios with many items can result in broken search results link

"""
To this end, it also moves the fix_biblio_ids portion of get_corrected_marc_record out of rebuild_zebra.pl,
and makes it a part of GetMarcBiblio (right before EmbedItemsInMarcBiblio, so the 952s still come last).  fix_biblio_ids
is kept as a subroutine for the deletion portion of rebuild_zebra.pl, which still uses it.
"""

But it does not explain why it's better to have it in GetMarcBiblio.
If we need it for the reindexation process, we shouldn't impact
GetMarcBiblio which is used from several different places.

We might then consider adding the fix_biblio_ids call to
rebuild_zebra.pl, but I am failing to understand in which cases it could
be useful.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29940: Don't surround value by quote
Jonathan Druart [Thu, 27 Jan 2022 14:30:17 +0000 (15:30 +0100)]
Bug 29940: Don't surround value by quote

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29940: Phase out jquery.cookie.js in the OPAC
Owen Leonard [Tue, 25 Jan 2022 12:32:28 +0000 (12:32 +0000)]
Bug 29940: Phase out jquery.cookie.js in the OPAC

This patch replaces the use of jquery.cookie.js in the OPAC with the
newer js-cookie plugin. The patch adds the latest version of the
js-cookie library and removes the old jquery.cookie plugin.

To test, apply the patch and go to the advanced search page in the OPAC.

- Perform a search using a number of different limits and settings, e.g.
  keyword, item type, and sort-by.
- On the search results page you should see at the top of the results
  list a link to "Return to the last advanced search."
- The link should take you back to the advanced search page with all the
  same settings filled into the form.
- A search with the "More options" view enabled in the advanced search
  form should result in a link which returns to the "More options" view.
- Searching via the "quick search" form at the top of the page should
  clear the cookies which were set in order to remember the advanced
  search. See
  https://developer.mozilla.org/en-US/docs/Tools/Storage_Inspector for
  information on viewing your browser's stored cookies.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30266: Hide pickup location input on waiting hold
Nick Clemens [Thu, 10 Mar 2022 12:23:42 +0000 (12:23 +0000)]
Bug 30266: Hide pickup location input on waiting hold

This patch updates the holds table to always insert a hidden input when a hold is 'found'
and covers the case where the hold is 'found' but doesn't match known statuses

To test:
 1 - Place two holds on a record for two different patrons, with different pickup locations
 2 - Check in one item at expected branch to set waiting
 3 - Then either:
    - Use batch modification or item editor to change the holding branch for the item
    - Sign in to a different branch and manually transfer the item back to it's home location
 4 - View the holds for the record
 5 - Note the 'Pickup library' column is blank for that hold
 6 - Change pickup location for other hold and press 'Update holds'
 7 - Note the waiting hold is still blank, and now second hold has no pickup location
 8 - Check the DB and note the first hold has had the pickup location changed
 8 - Apply patch
 9 - Delete holds and repeat 1-4
10 - Note the waiting hold now displays:
    Hold expected at {Branch}, please checkin to verify status
11 - Change location for second hold and update holds
12 - COnfirm location chanegd correctly and first hold unaffected

Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30004: Prevent TooMany from executing too many SQL queries
Julian Maurice [Wed, 2 Feb 2022 12:53:48 +0000 (13:53 +0100)]
Bug 30004: Prevent TooMany from executing too many SQL queries

If a maximum number of checkouts allowed is defined in circulation
rules, C4::Circulation::TooMany will loop over all patron's checkouts.
When a patron has several hundreds of checkouts, it can really slow down
the checkout process by several seconds (or even tens of seconds)

This patch does two things:
- Always prefetch item data so that `$c->item` does not execute an
  additional SQL query at every iteration of the loop. Item data is
  always needed at the first line of the loop, so there is really no
  downside for doing this.
- Build the `@types` array only once, out of the checkouts loop. Since
  it does not depend at all on patron's checkouts data, it does not make
  sense to build it inside the loop.

Test plan:
1. Before applying the patch, create a patron with a lot of checkouts.
   I tested with 1000 checkouts, but the slowness should be noticeable
   with less.
2. Make sure you have a circulation rule (one that apply to your patron
   and the item(s) you will check out for testing) with a maximum number
   of checkouts allowed
3. Check out an item for the patron with a lot of checkouts. Measure the
   time it takes.
4. Apply the patch
5. Check out another item (or check in and then check out the same item
   used in step 3). Measure the time it takes and compare it to step 3.
   It should be faster now.
6. Run `prove t/db_dependent/Circulation/TooMany.t`

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30183: Fetch flatPickr instance prior to custom search definition
Martin Renvoize [Mon, 14 Mar 2022 14:32:31 +0000 (14:32 +0000)]
Bug 30183: Fetch flatPickr instance prior to custom search definition

This patch updates teh search customisations in ill-list-table to
properly fetch the existing flatpickr instances for date searches.

To test:
1. Have at least one ILL request on the ILL requests page
2. Open the broser inspector
3. Choose a date on the left hand form
=> FAIL: Errors in the console, search doesn't work
4. Apply this patch
5. Reload
6. Repeat 2-3
=> SUCCESS: No more errors, filtering works!
7. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29915: (QA follow-up) Spelling
Martin Renvoize [Wed, 16 Mar 2022 14:07:23 +0000 (14:07 +0000)]
Bug 29915: (QA follow-up) Spelling

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29915: Add selenium tests
Jonathan Druart [Fri, 28 Jan 2022 16:12:04 +0000 (17:12 +0100)]
Bug 29915: Add selenium tests

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29915: Add a note for tests
Jonathan Druart [Thu, 27 Jan 2022 14:12:40 +0000 (15:12 +0100)]
Bug 29915: Add a note for tests

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29915: (QA follow-up) Add a comment in checkauth on $flags
Marcel de Rooy [Wed, 26 Jan 2022 15:54:28 +0000 (15:54 +0000)]
Bug 29915: (QA follow-up) Add a comment in checkauth on $flags

This is quite a misleading call.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29915: Changes to Auth.t
Marcel de Rooy [Wed, 26 Jan 2022 12:27:56 +0000 (12:27 +0000)]
Bug 29915: Changes to Auth.t

Test plan:
Run Auth.t

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29915: Add tests
Jonathan Druart [Wed, 26 Jan 2022 10:58:33 +0000 (11:58 +0100)]
Bug 29915: Add tests

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29915: (QA follow-up) Fix POD typo
Marcel de Rooy [Tue, 25 Jan 2022 14:52:31 +0000 (14:52 +0000)]
Bug 29915: (QA follow-up) Fix POD typo

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29915: Tiny session adjustments
Marcel de Rooy [Tue, 25 Jan 2022 13:55:00 +0000 (13:55 +0000)]
Bug 29915: Tiny session adjustments

It may be that we need a few additional flushes.
And checking the returned session before clearing busc.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29915: Changes for get_session and check_cookie_auth
Marcel de Rooy [Mon, 24 Jan 2022 13:08:01 +0000 (13:08 +0000)]
Bug 29915: Changes for get_session and check_cookie_auth

If we look for an existing session, do not create a new one.
Found a bug in the unset_userenv calls. For this moment
changing the calls in Auth here. Later fix goes to bug
29954.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29915: Don't generate a new session ID for anonymous navigation
Jonathan Druart [Thu, 20 Jan 2022 11:05:11 +0000 (12:05 +0100)]
Bug 29915: Don't generate a new session ID for anonymous navigation

When a user is not logged in, a new session ID is generated every time a
new page is hit.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30325: (Bug 30098 follow-up) Fix broken patron search redirect when one result
Fridolin Somers [Mon, 21 Mar 2022 22:18:57 +0000 (12:18 -1000)]
Bug 30325: (Bug 30098 follow-up) Fix broken patron search redirect when one result

Bug 30098 fixed patron search behavior when a later page has only 1 result, but broke the redirect when there is only a single result from search.

To test:
1 - Perform a patron search that returns 41 results, on koha-testing-docker, 'a' works
2 - Go to second page of results, works
3 - On third page you remain in results and are not redirected
4 - Perform a patron search that return only 1 result, name or cardnumber
5 - You get redirected to this patron page

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30181: (QA follow-up) Update BatchTest
Tomas Cohen Arazi [Thu, 3 Mar 2022 13:24:11 +0000 (10:24 -0300)]
Bug 30181: (QA follow-up) Update BatchTest

This patch updates t::lib::Koha::BackgroundJob::BatchTest to the new
style, and also removes a couple stray cases in which job_id was still
passed as a parameter.

Tests are rewritten a bit, so they actually test more of the behaviors.

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

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30181: (follow-up) Remove redundant queries and parameters
Tomas Cohen Arazi [Fri, 25 Feb 2022 10:00:23 +0000 (07:00 -0300)]
Bug 30181: (follow-up) Remove redundant queries and parameters

Now $self is actually an instance of the job class, there's no need to
have the job_id parameter passed, or the have the ->process method
re-fetch the object from the database.

This patch cleans things up.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30181: Make Koha::BackgroundJob->_derived_class return the right thing
Tomas Cohen Arazi [Fri, 25 Feb 2022 09:42:25 +0000 (06:42 -0300)]
Bug 30181: Make Koha::BackgroundJob->_derived_class return the right thing

This patch makes _derived_class rely on _new_from_dbic to generate a new
object with the right class, but based on the same DB row. Not an empty
one as it was before. This way we can remove some biolerplate that is
required now when writing background job classes.

To test:
1. Apply the regression tests
2. Run:
   $ kshell
  k$ prove t/db_dependent/Koha/BackgroundJob.t
=> FAIL: Boo, tests fail
3. Apply this patch
4. Repeat 2
=> SUCCESS: Tests pass!
5. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30181: Regression tests
Tomas Cohen Arazi [Fri, 25 Feb 2022 09:40:17 +0000 (06:40 -0300)]
Bug 30181: Regression tests

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30061: Make Koha::Patron->get_age use DateTime math
Tomas Cohen Arazi [Wed, 9 Feb 2022 13:45:15 +0000 (10:45 -0300)]
Bug 30061: Make Koha::Patron->get_age use DateTime math

This patch does what the title says. Instead of converting dates to
strings and performing math manually, we can just use the DateTime
objects we have and calculate the DateTime::Duration there's between
them, to get the years count.

To test:
1. Run:
   $ kshell
  k$ prove t/db_dependent/Koha/Patrons.t
=> SUCCESS: Tests pass
2. Apply this patch
3. Repeat 1
=> SUCCESS: Tests pass
4. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30165: (follow-up) Fix GET /acquisitions/orders
Tomas Cohen Arazi [Tue, 15 Mar 2022 18:18:22 +0000 (15:18 -0300)]
Bug 30165: (follow-up) Fix GET /acquisitions/orders

This patch fixes the particular use case of the orders route, which has
a slightly modified version of the objects.search helped, embeded in the
controller itself. This controller gets adjusted to the fact q will now
be an array.

Because of the latter, we end up requiring more code duplication
regarding the query fix, so I moved it to an internal sub that gets
reused.

To test:
1. Apply the previous patches
2. Run:
   $ kshell
  k$ prove t/db_dependent/api/v1/*
=> FAIL: It t/db_dependent/api/v1/acquisitions_orders.t fails!
3. Apply this patch
4. Repeat 2
=> SUCCESS: 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>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30165: Make q parameter 'multi'
Tomas Cohen Arazi [Tue, 15 Mar 2022 12:42:19 +0000 (09:42 -0300)]
Bug 30165: Make q parameter 'multi'

This patch changes the q_param definition so the defined query parameter
is repeatable. This way JSON::Validator will always generate an arrayref
for it and won't skip occurences.

The objects.search helper is updated to always consider the 'q'
parameter as an array, as expected.

To test:
1. Apply the regression tests patch
2. Run:
   $ kshell
  k$ prove t/db_dependent/api/v1/query.t
=> FAIL: Tests fail!
3. Apply this patch
4. Repeat 2
=> SUCCESS: 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>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30165: Regression tests
Tomas Cohen Arazi [Fri, 25 Feb 2022 11:45:26 +0000 (08:45 -0300)]
Bug 30165: Regression tests

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 19532: (RM follow-up) Fix dates compare in recalls tests
Fridolin Somers [Fri, 18 Mar 2022 08:56:04 +0000 (22:56 -1000)]
Bug 19532: (RM follow-up) Fix dates compare in recalls tests

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30058: Add Koha::Patrons->filter_by_have_subpermission
Jonathan Druart [Wed, 9 Feb 2022 12:41:47 +0000 (13:41 +0100)]
Bug 30058: Add Koha::Patrons->filter_by_have_subpermission

This method will allow to filter a patron set by a given subpermission.
It will be useful on bug 30055 where we want to display only patron
with suggestion or acquisition subpermission.
Note that it could be extended to allow several subpermissions, but we
don't need it so far.

Test plan:
  prove t/db_dependent/Koha/Patrons.t
must return green

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 25285: Fix wrong message about required Koha version in plugins
Tomas Cohen Arazi [Wed, 9 Mar 2022 11:23:38 +0000 (08:23 -0300)]
Bug 25285: Fix wrong message about required Koha version in plugins

When you install a plugin that requires a newer Koha version, it reports
this:

<<
Warning: This report was written for a newer version of Koha. Run at your own risk.
>>

It is wrong in a couple ways:
- It is not a report.
- It feels like it dates back to when plugins were only run i.e.
  pre-hooks, etc.

This patch proposes a change to reflect this.

To test:
1. Verify the string changes make sense to you
2. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30214: (QA follow-up) Clarify code comment
Katrin Fischer [Sun, 6 Mar 2022 12:19:34 +0000 (12:19 +0000)]
Bug 30214: (QA follow-up) Clarify code comment

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30214: Add ACCTDETAILS notice to verified self registration
Martin Renvoize [Wed, 2 Mar 2022 16:14:18 +0000 (16:14 +0000)]
Bug 30214: Add ACCTDETAILS notice to verified self registration

This patch adds the ACCTDETAILS notice trigger to the opac self
registration process. Allowing new users, with varification enabled,
to receive the ACCTDETAILS notice immediately after their account is
varified.

Test plan
1) Enable AutoEmailOpacUser system preference
2) Ensure the ACCTDETAILS notice is configured
3) Ensure `PatronSelfRegistrationVerifyByEmail` is enabled
4) Register a new user via the opac self registration process using an
   email address you have access to
5) Verify the user by following the link in the verification email you
   should have received.
6) The new user should have been created and you should be able to see
   the account details notice in their associated notices
7) Confirm that the email address used above has received the notice.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30214: Add ACCTDETAILS notice to self registeration
Martin Renvoize [Wed, 2 Mar 2022 16:03:55 +0000 (16:03 +0000)]
Bug 30214: Add ACCTDETAILS notice to self registeration

This patch adds the ACCTDETAILS notice trigger to the opac self
registration process. Allowing new users, without varification enabled,
to receive the ACCTDETAILS notice immediately after their account is
created.

Test plan
1) Enable AutoEmailOpacUser system preference
2) Ensure the ACCTDETAILS notice is configured
3) Ensure `PatronSelfRegistrationVerifyByEmail` is disabled
4) Register a new user via the opac self registration process using an
   email address you have access to
5) The new user should have been created and you should be able to see
   the account details notice in their associated notices
6) Confirm that the email address used above has received the notice.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 17648: (QA follow-up) Restore imediate sending of the notice
Martin Renvoize [Tue, 1 Mar 2022 16:47:52 +0000 (16:47 +0000)]
Bug 17648: (QA follow-up) Restore imediate sending of the notice

The original notice was sent using SendAlerts, which triggers
immediately on submission and doesn't wait for the cron task.

This patch restores that immediacy and also fixes a bug in the imports
on the original patch.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 17648: (QA follow-up) Further code cleaning
Martin Renvoize [Tue, 1 Mar 2022 16:24:55 +0000 (16:24 +0000)]
Bug 17648: (QA follow-up) Further code cleaning

We actually have a Koha::Patron method to do all the work of finding the
right patron primary email address for notices.. we can use that here
instead of doing it long hand.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 17648: ACCTDETAILS notice does not show in notices.pl
Kyle Hall [Mon, 28 Feb 2022 14:03:29 +0000 (09:03 -0500)]
Bug 17648: ACCTDETAILS notice does not show in notices.pl

The ACCTDETAILS notice apparently bypasses message_queue; notices are sent directly to the linux mail queue.

Test Plan:
1) Apply this patch
2) Create a new patron with an email address
3) Note the patron's ACCTDETAILS notice shows in the patron's messages

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 27812: DBRev 21.12.00.019
Fridolin Somers [Thu, 17 Mar 2022 21:06:51 +0000 (11:06 -1000)]
Bug 27812: DBRev 21.12.00.019

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 27812: (QA follow-up) Fix atomicupdate
Martin Renvoize [Tue, 1 Mar 2022 16:00:10 +0000 (16:00 +0000)]
Bug 27812: (QA follow-up) Fix atomicupdate

We removed a bit too much from the skeliton here ;)

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 27812: Add DBRev to warn of the change to the account details notice
Kyle Hall [Mon, 28 Feb 2022 13:30:07 +0000 (08:30 -0500)]
Bug 27812: Add DBRev to warn of the change to the account details notice

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 27812: Email should send for all new patron as per the syspref description
Kyle M Hall [Mon, 5 Apr 2021 12:33:38 +0000 (08:33 -0400)]
Bug 27812: Email should send for all new patron as per the syspref description

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 27812: Remove the ability to transmit a patron's plain text password over email
Kyle M Hall [Fri, 26 Feb 2021 18:16:58 +0000 (13:16 -0500)]
Bug 27812: Remove the ability to transmit a patron's plain text password over email

We should not give libraries the ability to compromise patron accounts,
it is considered a huge security issue and nobody in network security
would never recommend allowing passwords to be transmitted in clear text
over email.

It should simply not be possible to send a patron's password in plain text
via email. As such, we should remove this ability from Koha.

Test Plan:
1) Apply this patch
2) Create a patron to generate the ACCTDETAILS email
3) Note you can no longer transmit the patron's password in the email

Signed-off-by: Amit Gupta <amitddng135@gmail.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30177: When editing an existing patron set message_prefs_dirty to true
Lucas Gass [Thu, 24 Feb 2022 16:17:11 +0000 (16:17 +0000)]
Bug 30177: When editing an existing patron set message_prefs_dirty to true

1 - Define default messaging preferences for a patron category
2 - Go into an existing account and change the patron category to the
    one set in step 1.
3 - Confirm that the messaging prefs have been reset to that of the
    default patron category
4 - Apply patch
5 - Repeat Step 2, this time you should see a warning asking if you want
    to set messaging prefs to the category default
6 - Press OK and save. Confirm that the messaging prefs are now set to
    the default for that category
7 - Try it again with an existing account and press Cancel this time.
    Notice that there should be no change to the patron messaging prefs.
8 - Try making a new patron and switching the category, you should see
    no warning and the message prefs should be proberly set to the
    defaults of any category you choose.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30212: Make Select2 available for ILL backends
Tomas Cohen Arazi [Wed, 2 Mar 2022 11:19:55 +0000 (08:19 -0300)]
Bug 30212: Make Select2 available for ILL backends

This patch makes select2 available for ILL backend developers to use on
their templates.

To test:
1. Have a configured backed and an ILL request
2. Open the inspector and load any action on the backend (intranet)
=> FAIL: no select2 asset is transfered from Koha to the browser
3. Apply this patch
4. Reload
=> SUCCESS: There's select2
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: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30155: Don't get items that can fillholds if there are no holds
Nick Clemens [Tue, 22 Feb 2022 16:54:03 +0000 (16:54 +0000)]
Bug 30155: Don't get items that can fillholds if there are no holds

This makes two changes:
1 - We no longer call get_items_that_can_fill if there are no holds
2 - The subroutine will return an empty Koha::Items object if there are no holds passed

Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30252: lower version of 'Locale::XGettext::TT2' to 0.6
Mason James [Wed, 9 Mar 2022 04:22:50 +0000 (17:22 +1300)]
Bug 30252: lower version of 'Locale::XGettext::TT2' to 0.6

this patch reduces the required version of 'Locale::XGettext::TT2' to 0.6

version 0.7 of of Locale::XGettext::TT2 is incompatible with the current version of libintl-perl (1.26), so we use 0.6 instead

 https://packages.debian.org/stretch/libintl-perl
 https://metacpan.org/release/GUIDO/Template-Plugin-Gettext-0.6/view/lib/Locale/XGettext/TT2.pm

we will move to 'Locale::XGettext::TT2' 0.7 when libintl-perl-1.32 arrives
 https://tracker.debian.org/pkg/libintl-perl

small change, no test plan

Signed-off-by: Mason James <mtj@kohaaloha.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29684: (QA follow-up) add lost borrower_data. prefix in memberentrygen.tt for...
Andrew Nugged [Thu, 10 Feb 2022 23:16:22 +0000 (01:16 +0200)]
Bug 29684: (QA follow-up) add lost borrower_data. prefix in memberentrygen.tt for: - primary_contact_method - autorenew_checkouts - sort1 - sort2

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29684: (QA follow-up) paycollect.pl don't needs borrower_data at all
Andrew Nugged [Wed, 9 Feb 2022 23:16:23 +0000 (01:16 +0200)]
Bug 29684: (QA follow-up) paycollect.pl don't needs borrower_data at all

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29684: (QA follow-up) Remove 2 extra 'borrower_data.' prefixes
Andrew Nugged [Wed, 9 Feb 2022 22:46:47 +0000 (00:46 +0200)]
Bug 29684: (QA follow-up) Remove 2 extra 'borrower_data.' prefixes

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29684: add honeypot to catch other warnings in the future
Petro Vashchuk [Mon, 17 Jan 2022 14:38:53 +0000 (16:38 +0200)]
Bug 29684: add honeypot to catch other warnings in the future

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29684: Fix warn about js/locale_data.js (paycollect.pl)
Petro Vashchuk [Mon, 17 Jan 2022 14:31:08 +0000 (16:31 +0200)]
Bug 29684: Fix warn about js/locale_data.js (paycollect.pl)

To reproduce (paycollect.pl):
1) Prepare or use some existing patron with outstanding fines, go to
the accounting section and open page where you make payment towards all
fines.
2) The error message should have appeared in your log file about
"File not found : default/js/locale_data.js".
3) Apply the patch.
4) Open the edit page again, ensure that the new error massage like
that didn't appear.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29684: Fix warn about js/locale_data.js (memberentry.pl)
Petro Vashchuk [Mon, 17 Jan 2022 14:17:51 +0000 (16:17 +0200)]
Bug 29684: Fix warn about js/locale_data.js (memberentry.pl)

To reproduce (memberentry.pl):
1) Head over to the patron details page, press edit button to open the
memberentry.pl page.
2) The error message should have appeared in your log file about
"File not found : default/js/locale_data.js".
3) Apply the patch.
4) Open the edit page again, ensure that the new error massage like
that didn't appear.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30220: Purchase suggestion defaults to first library
Owen Leonard [Thu, 3 Mar 2022 16:45:43 +0000 (16:45 +0000)]
Bug 30220: Purchase suggestion defaults to first library

This patch updates the OPAC suggestions form to update the variable
used to pre-select the logged-in user's library.

To test, apply the patch and make sure the "suggestion" preference is
set to "Allow."

- Log in to the OPAC and click "your purchase suggestions" in the
  sidebar menu on your summary page.
- Click "New purchase suggestion."
- The selected library should match the logged-in user's home library.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 20362: (follow-up) Direct link to authority records missing in staff detail view...
George Veranis [Thu, 24 Feb 2022 14:10:14 +0000 (15:10 +0100)]
Bug 20362: (follow-up) Direct link to authority records missing in staff detail view (1xx , 7xx)

I change the magnigying glass icon to FA icon in the staff detail view
for 1xx and 7xx of the record that links to the authority records.

The following test plan is for 100 tag only but the patch can be apply
for all 1xx and 7xx tags that can be connect with an authority record.

Test Plan:
1) On the Koha staff page, create a new authority. The type of authority
   will be: e.g Personal Name
2) When creating authority, in tab 1 under -HEADING--PERSONAL NAME enter
   the personal name term entry element and then save the
   new authority e.g. Twain, Mark.
3) In circulation, search the catalog for a random book. Click the title
   of the book and you will be taken to the book details.
4) Edit the record and in tab 1 , scroll down the - MAIN ENTRY--
   PERSONAL NAME and repeat this tag (the icon next to the title).
5) Edit the Personal name term entry element by clicking
   the button on the right of the bar.
6) In the Search main heading ($a only) enter your personal name term
   e.g. Twain, Mark.
7) Press search, and then in the table that pops up, click 'choose'.
8) Save your edits and the new personal name term will be in the 'By:'
   of the book details.
9) Notice that there is no magnifying glass icon.
10) Apply this patch
11) Notice that there is now a magnifying glass icon next to the
    personal name term.
12) Click on the magnifying glass and it will take you directly to the
    authorities records

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 20362: Direct link to authority records missing in staff detail view (1xx , 7xx)
George Veranis [Tue, 11 Jan 2022 08:31:27 +0000 (09:31 +0100)]
Bug 20362: Direct link to authority records missing in staff detail view (1xx , 7xx)

I added a magnigying glass icon in the staff detail view for 1xx and 7xx
of the record that links to the authority records.

The following test plan is for 100 tag only but the patch can be apply
for all 1xx and 7xx tags that can be connect with an authority record.

Test Plan:
1) On the Koha staff page, create a new authority. The type of authority
   will be: e.g Personal Name
2) When creating authority, in tab 1 under -HEADING--PERSONAL NAME enter
   the personal name term entry element and then save the
   new authority e.g. Twain, Mark.
3) In circulation, search the catalog for a random book. Click the title
   of the book and you will be taken to the book details.
4) Edit the record and in tab 1 , scroll down the - MAIN ENTRY--
   PERSONAL NAME and repeat this tag (the icon next to the title).
5) Edit the Personal name term entry element by clicking
   the button on the right of the bar.
6) In the Search main heading ($a only) enter your personal name term
   e.g. Twain, Mark.
7) Press search, and then in the table that pops up, click 'choose'.
8) Save your edits and the new personal name term will be in the 'By:'
   of the book details.
9) Notice that there is no magnifying glass icon.
10) Apply this patch
11) Notice that there is now a magnifying glass icon next to the
    personal name term.
12) Click on the magnifying glass and it will take you directly to the
    authorities records

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30159: (QA follow-up) Fix translatability of alert message
Katrin Fischer [Sun, 6 Mar 2022 13:54:54 +0000 (14:54 +0100)]
Bug 30159: (QA follow-up) Fix translatability of alert message

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30159: (follow-up) Make warning messages consistent
Adam Styles [Wed, 23 Feb 2022 23:20:51 +0000 (10:20 +1100)]
Bug 30159: (follow-up) Make warning messages consistent

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 30159: Fix Check() to validate both mandatory and important fields
Adam Styles [Tue, 22 Feb 2022 00:32:52 +0000 (11:32 +1100)]
Bug 30159: Fix Check() to validate both mandatory and important fields

This patch adds a check for both mandatory and important fields when
validating bibliographic records during cataloguing.

To test:

1. Go to Admin -> Biblio frameworks. View the MARC structure of your
   default framework.
2. Search for tag 082. Edit the subfields for this tag.
3. Check the 'important' checkbox for subfield a and Save.
4. Go to add or edit a new biblio record under Cataloguing.
5. Ensure the 082$a field is empty and hit Save.
6. Notice the confirmation pop-up is an unreadable display of HTML.
7. Click Cancel on the pop-up box.
8. Apply the patch and refresh the editor page.
9. Ensure the 082$a field is empty and hit Save.
10. Notice the confirmation pop-up is more helpful this time. Click
    Cancel on the pop-up box.
11. Notice the 082$a field is displayed at the top of the page as an
    important field that is missing information. Use the 'go to field'
    link and confirm this works as expected.
12. Leave 082$a empty and hit Save.
13. This time click OK on the confirmation pop-up. Confirm you are able
    to save your record as normal.

Sponsored-by: Education Services Australia SCIS
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 19169: Add a test to detect unneeded 'atomicupdate' files
Mason James [Sat, 5 Mar 2022 02:30:21 +0000 (15:30 +1300)]
Bug 19169: Add a test to detect unneeded 'atomicupdate' files

to test...

1/ set git repo
    $ git reset --hard v21.11.03

2/ run test
    $ prove ./t
    OK

3/ apply patch

4/ run test again, observe FAIL

    $ prove ./t/00-check-atomic-updates.pl
    ./t/00-check-atomic-updates.pl .. 1/?
    #   Failed test 'check for unhandled atomic updates: bug_29596.pl'
    #   at ./t/00-check-atomic-updates.pl line 34.
    #                   'bug_29596.pl'
    #           matches '(?^u:.*pl$)'
    # Looks like you failed 1 test of 3.
    ./t/00-check-atomic-updates.pl .. Dubious, test returned 1 (wstat 256, 0x100)
    Failed 1/3 subtests

JD Amended patch: fix copyright year
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29956: Prevent login form to be serialized into cookie
Jonathan Druart [Thu, 27 Jan 2022 13:14:27 +0000 (14:14 +0100)]
Bug 29956: Prevent login form to be serialized into cookie

To recrate:
Logout
Go to /cgi-bin/koha/opac-search.pl
Click "Log in to your account"
Fill in the login form
Submit
Check the 'form_serialized' cookie's value

=> Without this patch it contain login/password
=> With this patch applied the cookie is not created

Confirm that the "Return to the last advanced search" feature still
works as expected.

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29931: (follow-up) Fix svc/checkouts and return_claims too
Marcel de Rooy [Tue, 25 Jan 2022 12:21:42 +0000 (12:21 +0000)]
Bug 29931: (follow-up) Fix svc/checkouts and return_claims too

Adding the same auth_status check here too.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29931: (follow-up) Similar thing in opac-patron-image.pl
Marcel de Rooy [Mon, 24 Jan 2022 13:06:33 +0000 (13:06 +0000)]
Bug 29931: (follow-up) Similar thing in opac-patron-image.pl

Although less harmful indeed. No borrowernumber, no image.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Tested: logged in, logged out, prefs toggled. All fine.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 29931: Check cookie status before continuing
Marcel de Rooy [Mon, 24 Jan 2022 10:24:08 +0000 (10:24 +0000)]
Bug 29931: Check cookie status before continuing

Test plan:
Logout from staff.
Try to run plugins-enable (you should have some active plugin).
Like: https://yourserver:staffport/cgi-bin/koha/plugins/plugins-enable.pl?class=Koha::Plugin::Test&method=enable
Replace class and method as appropriate.
Verify that with this patch, you will be redirected to 401 page.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 19532: (RM follow-up) Fix recalls.old is default 0
Fridolin Somers [Tue, 15 Mar 2022 09:54:15 +0000 (23:54 -1000)]
Bug 19532: (RM follow-up) Fix recalls.old is default 0

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 19532: (RM follow-up) More use of system preference
Fridolin Somers [Tue, 15 Mar 2022 08:04:47 +0000 (22:04 -1000)]
Bug 19532: (RM follow-up) More use of system preference

When system preference is off, call no code related to Koha::Recalls.

Also add some missing module import.

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 19532: (RM follow-up) Adapt also UNIMARC XSLT
Fridolin Somers [Tue, 15 Mar 2022 08:04:12 +0000 (22:04 -1000)]
Bug 19532: (RM follow-up) Adapt also UNIMARC XSLT

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 19532: (RM follow-up) Fix status finished renamed fulfilled
Fridolin Somers [Tue, 15 Mar 2022 08:01:10 +0000 (22:01 -1000)]
Bug 19532: (RM follow-up) Fix status finished renamed fulfilled

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 19532: DBRev 21.12.00.018
Fridolin Somers [Tue, 15 Mar 2022 07:50:34 +0000 (21:50 -1000)]
Bug 19532: DBRev 21.12.00.018

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 19532: (RM follow-up) Update DBIC Schema
Fridolin Somers [Tue, 15 Mar 2022 06:54:20 +0000 (20:54 -1000)]
Bug 19532: (RM follow-up) Update DBIC Schema

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2 years agoBug 19532: (QA follow-up) Fixing typo
Aleisha Amohia [Mon, 14 Mar 2022 10:52:46 +0000 (23:52 +1300)]
Bug 19532: (QA follow-up) Fixing typo

Introduced by: Bug 19532: (QA follow-up) Simplify resultset accessors

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>