Commit graph

46018 commits

Author SHA1 Message Date
6132f9708d Bug 27265: (follow-up) Use existing parameter
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit a39ecfd7f7)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-21 20:58:04 +00:00
b51e6cd465 Bug 27265: Enable message queue cron to accept multiple codes and types
It would be nice to be able to combine several types in a single run,
but exclude others, without having to have multiple cron lines

Test Plan:
1) Apply this patch
2) Run process_message_queue.pl with a single -c parameter
3) Note behavior is unchanged
4) Run process_message_queue.pl with multiple -c parameters
5) Note all the codes specified are processed
6) Repeat 2-5 with -t for type limits

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit da7bcc2252)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-21 20:57:44 +00:00
5e6d1a10bb Bug 32114: Add missing html_helpers.inc
This patch makes a minor modification to the OPAC
search results RSS template so that an error isn't
triggered. The html_helpers include was missing.

To test, apply the patch and perform a catalog
search in the OPAC which will return results.

At the end of the "Your search results" heading
you should see an orange RSS icon. Clicking on it
should take you to an RSS feed instead of an
error page.

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>
(cherry picked from commit 2621f28376)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-21 16:53:55 +00:00
733f461ed0 Bug 32242: [22.05] fix selenium tests for 22.05
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-21 16:41:00 +00:00
527e984871 Bug 32242: Add selenium tests
This is not testing the thing at the correct level, but at least we test
the whole workflow.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit a922c8cc96)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-21 15:40:33 +00:00
b0de2651df Bug 32242: Resolve encoding issue when sending to Net::Stomp
This is meant as a quick fix. It should be enhanced later on by
letting Net::Stomp do the UTF8 conversion.

Test plan:
Run batch mod items. Add a Unicode char in the notes.
Check if job runs and results are correct.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 022034a1c7)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-21 15:40:07 +00:00
109eaa00fe Bug 32012: runreport.pl should use binmode UTF-8
Like Bug 26832 added binmode UTF-8 to script misc/search_tools/export_elasticsearch_mappings.pl, this should be added to misc/cronjobs/runreport.pl.

Test plan :
1) Do not apply patch
2) Create a SQL report with :
   SELECT 'accentué',barcode FROM items limit 3
3) Note the id of this report, for example 1
4) Run : misc/cronjobs/runreport.pl 1 --format csv | tee /tmp/without.csv
=> You see output with unknown character instead of é :
5) Run : file --mime-type /tmp/without.csv
=> You see : /tmp/without.csv: iso-8859-1
6) Apply patch
7) Run : misc/cronjobs/runreport.pl 1 --format csv | tee /tmp/with.csv
=> You see correct output with é
8) Run : file --mime-type /tmp/without.csv
=> You see : /tmp/without.csv: utf-8

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 9aa21276b2)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 23:49:22 +00:00
0b0dcefd5a Bug 31976: Incorrect default category selected by authorized values page
This patch removes some obsolete code for selecting a default authorized
value category to be shown when the user first arrives on the authorized
values page. This has not been necessary since we switched to an
interface which lists all categories.

NOTE: This bug will not be reproducible if your first authorized value,
alphabetically, has no values associated with it. For instance, if you
delete all authorized values in the AR_CANCELLATION category.

To test, apply the patch and go to Administration -> Authorized values.

In the breadcrumbs menu you should see "Home -> Administration ->
Authorized values."

Clicking any of the authorized value categories in the list should take
you to a view of that category's values.

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>
(cherry picked from commit 0ec29e5d4e)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 23:37:08 +00:00
867c03bf6a Bug 31196: Remove 'default_value_for_mod_marc-' clear_from_cache calls
We are seeing the following lines several times in the codebase
  $cache->clear_from_cache("default_value_for_mod_marc-");

But values are never set for this key.

Test plan:
Ask you, "Is the above correct?"
Use the correct 'git grep' and 'git log' and confirm the assertion.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 93d44d1875)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 23:19:21 +00:00
13ec1f0de4 Bug 31609: JavaScript error on Additional contents main page
This patch makes a minor modification to the JavaScript
on the Additional contents page to prevent an error when
there are no tabs present on the page.

The JS needs an additional check so that it doesn't run
when there are no tabs.

To test you should have more than one language installed.

- Before the patch, you would see a JavaScript error in
  the console: "Uncaught TypeError: can't access property
  "hash", firstTab[0] is undefined."
- Apply the patch and go to Tools -> Additional
  contents.
- With the patch applied there should be no error on the
  additional contents main page.
- Try creating or editing additional contents entries to
  confirm that the interface still works correctly.

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 13ad213273)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 23:16:10 +00:00
90e4cdb752 Bug 19693: (QA follow-up) Replace changed tag test
The test
  $MARCfrom->field('1..', '2..'))[0]->tag ne ($MARCto->field('1..', '2..'))[0]->tag
is not completely consistent with following code in sub merge.
I decided to get the authtype code from the old record that comes
from Koha and should include the type.
Remaining changes refer to indentation/comments.

Test plan:
Run t/db_dependent/Authority/Merge.t
Note: The test actually could be extended a bit for mocking MARC
flavor, but needs some additional framework support to work.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit d7d33744ba)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 22:58:01 +00:00
Janusz Kaczmarek
3cf8c3881d Bug 19693: Update of an authority record creates inconsistency when the heading tag is changed
In those rare cases when authorities are updated by an external agency (or
even internally, by reviewing and correcting an exported authority file)
when the heading tag will be changed (seems odd but happens:

111 Congress ==> 110 Corporate body.Congress ;
100 Person ==> 110 Corporate body (a company named with person's name ;
151 City--object ==> 150 Object (city) etc.)

and then the authority record in Koha database will be updated with
bulkmarcimport or by calling directly ModAuthority from a custom script,
the merge function "doesn't know" that the change to the authority type
has been made and, consequently, doesn't adequately change the tag in
related fields in biblio records (as it would if two different records
with different authtypecode were merged with Koha interface).

This is because at the moment when merge function is being called
by ModAuthority:
Koha::Authority::Types->find($autfrom->authtypecode)
Koha::Authority::Types->find($authto->authtypecode)
both have the same value (because $mergefrom == $mergeto).

Therefore in case when $mergefrom == $mergeto and the heading tag changes,
$authtypefrom and $authfrom calculated in merge in the ordinar way are
misleading and should not be taken unto consideration.

Test plan:
==========

1. run t/db_dependent/Authority/Merge.t
2. you should see problems in "Test update A with modified heading tag
   (changing authtype)"
3. apply the patch
4. run t/db_dependent/Authority/Merge.t again
5. the test should pass

Alternatively:

1. have an authority record used in biblio;
   export it to file;
   change 1XX heading tag to a different (but reasonable) value
   and possibly change also the content of the heading
   (one can delete also 942 but it doesn't matter);
   make bulkmarcimport.pl -a -update -file <modified_auth_file> and
   see that the tag in biblio record has not been changed (whereas
   the type of authority record did change);

2. make orders in database (so that the authority type and the tag of
   the field in biblio record correspond); apply the patch;

3. repeat the test from 1.

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>
(cherry picked from commit 03da66ce20)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 22:57:49 +00:00
Janusz Kaczmarek
1ac516addb Bug 19693: Add test sub to Merge.t
In those rare cases when authorities are updated by an external agency (or
even internally, by reviewing and correcting an exported authority file)
when the heading tag will be changed (seems odd but happens:

111 Congress ==> 110 Corporate body.Congress ;
100 Person ==> 110 Corporate body (a company named with person's name ;
151 City--object ==> 150 Object (city) etc.)

and then the authority record in Koha database will be updated with
bulkmarcimport or by calling directly ModAuthority from a custom script,
the merge function "doesn't know" that the change to the authority type
has been made and, consequently, doesn't adequately change the tag in
related fields in biblio records (as it would if two different records
with different authtypecode were merged with Koha interface).

This is because at the moment when merge function is being called
by ModAuthority:
Koha::Authority::Types->find($autfrom->authtypecode)
Koha::Authority::Types->find($authto->authtypecode)
both have the same value (because $mergefrom == $mergeto).

Therefore in case when $mergefrom == $mergeto and the heading tag changes,
$authtypefrom and $authfrom calculated in merge in the ordinar way are
misleading and should not be taken unto consideration.

Test plan:
==========

1. run t/db_dependent/Authority/Merge.t
2. you should see problems in "Test update A with modified heading tag
   (changing authtype)"
3. apply the patch
4. run t/db_dependent/Authority/Merge.t again
5. the test should pass

Alternatively:

1. have an authority record used in biblio;
   export it to file;
   change 1XX heading tag to a different (but reasonable) value
   and possibly change also the content of the heading
   (one can delete also 942 but it doesn't matter);
   make bulkmarcimport.pl -a -update -file <modified_auth_file> and
   see that the tag in biblio record has not been changed (whereas
   the type of authority record did change);

2. make orders in database (so that the authority type and the tag of
   the field in biblio record correspond); apply the patch;

3. repeat the test from 1.

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>
(cherry picked from commit 4d75a9b3b7)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 22:57:35 +00:00
Katrin Fischer
246ee24210 Bug 31459: (QA follow-up) Add missing TT filters
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

https://bugs.koha-community.org/show_bug.cgi?id=31559
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 6cc3a85eb1)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 22:47:41 +00:00
c005ef2108 Bug 31459: (follow-up) Return 'Keep current' option
This patch restores the option to keep current budget, in the case that receiver can receive, but cannot order on current budget

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

https://bugs.koha-community.org/show_bug.cgi?id=31559
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit b86e5b5423)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 22:47:26 +00:00
63a5684020 Bug 31459: (follow-up) Preserve budget period display
This patch adds a level to the budget_loops and displays the budgets
as optgroups for the funds

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

https://bugs.koha-community.org/show_bug.cgi?id=31559
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 2a22c13cf3)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 22:47:05 +00:00
382e80b737 Bug 31459: Use the same dropdown as when adding orders to a basket
Current order receive code loops over each budget period and gets the hierarchy, this
is slow when systems have many budgets. Additionally, the list includes inactive items
by default

We can switch to a single call, and add consistency by adopting the same dropdown as used
when placing an order

To test:
1 - Add some budgets with funds - ensure you have at least one inactive budget and fund
2 - Place an order, observe the fund selection menu
3 - Close basket, receive order, observe the fund menu
4 - Apply patch
5 - Cancel receipt
6 - Receive again
7 - Observe fund menu, confirm it matches the order placing menu
8 - Confirm inactive are not displayed by default, but are when button is checked

Signed-off-by: Joonas Kylmälä <joonas.kylmala@iki.fi>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

https://bugs.koha-community.org/show_bug.cgi?id=31559
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 24e7703aef)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 22:46:42 +00:00
ee55ebf4dd Bug 15048: Index all possible searched subfields for index-term-genre
Currently we only index a - but we can setup the system such that avxyz are searched

To test:
 1 - define both a 655$a *and* 655$x value in a bib, save, reindex
 2 - Set system preferences:
      TraceSubjectSubdivisions: Include
      TraceCompleteSubfields: Force
 3 - View the record edited above in the opac
 4 - Click on the subject heading
 5 - No results found
 6 - Copy zebra files:
  sudo cp ./etc/zebradb/marc_defs/marc21/biblios/biblio-koha-indexdefs.xml \
  /etc/koha/zebradb/marc_defs/marc21/biblios/biblio-koha-indexdefs.xml
  sudo cp etc/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl \
  /etc/koha/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl
 7 - restart all and reindex
 8 - Click on the subject heading in OPAC
 9 - Sucess!
10 - Repeat with other fields (vyz)
11 - Repeat under ES, reindexing and resetting mappings

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 57ea65e725)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 22:42:23 +00:00
Björn Nylén
7a33e61858 Bug 31739: Password recovery from staff fails if previous expired reset-entry exists.
SendPasswordRecoveryEmail relies on the calling script to tell if there is an
existing valid recovery already. If there's an expired recovery-entry the
members/notices.pl script will try to create a new entry resulting in a duplicate
key error.

This patch fixes the bug by removing the need for the calling script to do the check as
since SendPasswordRecoveryEmail does the same thing anyway.
SendPasswordRecoveryEmail will now use DBIx ->update_or_create instead of looking at
the $update param to determine if it should update an existing entry or create a new.

The update param is removed from all calling scripts and test are updated.

To test:
1. Generate a password recovery mail for a patron
2. Let it expire.
3. Generate a new password recovery from staff to the same patron - Fail!
4: Apply patch
5. Generate a new password recovery from staff to the same patron - Success!
6. Opac password recovery flow should also work.
7. Tests pass.

Sponsored-by: Lund University Library

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 043017af13)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 22:38:12 +00:00
1c17ce3335 Bug 31532: Add preprocessor to Zebra indexing pipeline to index 880 as linked field
This patch adds a preprocessor XSLT to the Zebra indexing pipeline,
so that 880 fields get indexed as the fields they're linked to. For example,
a "880 $6 245" field would be indexed as a "245" field.

However, because the preprocessor only occurs in the indexing part of the pipeline,
it does not affect the retrieval of MARCXML from Zebra. That MARCXML will be
the same MARCXML that was sent to Zebra from Koha.

Test plan:

0. Revert bug 15187, and apply patch for 31532
1. cp ./etc/zebradb/biblios/etc/dom-config.xml /etc/koha/zebradb/biblios/etc/dom-config.xml
2a. cp etc/zebradb/marc_defs/marc21/biblios/preprocess_marcxml.xsl /etc/koha/zebradb/marc_defs/marc21/biblios/.
2b. cp etc/zebradb/marc_defs/normarc/biblios/preprocess_marcxml.xsl /etc/koha/zebradb/marc_defs/normarc/biblios/.
2c. cp etc/zebradb/marc_defs/unimarc/biblios/preprocess_marcxml.xsl /etc/koha/zebradb/marc_defs/unimarc/biblios/.
3. koha-rebuild-zebra -b -f -v kohadev
4. Note that in search results the 880$6245$a data appears before the 245$a data
5. Note that you can do a title index search on the 880$6245$a data

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 2c673944ba)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 22:33:55 +00:00
e83b2c5b33 Bug 31903: Fix missing Edit URL link
We need to pass format too for New tab (see Pending/Processing).

Test plan:
* Include SCAN format in ArticleRequestSupportedFormats system preferences.
* Check circ rules to allow article requests.
* Add a new request for digital copy and another for photocopy.
* Check Circulation - Article requests - New tab.
* Verify that the Actions menu for a single row for the digital copy
  does contain the "Edit URL(s)" option now.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Amended test plan.
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 4e6b4b4ae7)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 22:26:58 +00:00
98fe1f204a Bug 31644: Add copy test and clarify some functions
This patch adds a tst for copy without subfields. I also clarify what eachstep does
so the next user/coder understands current behaviour

Update existing or add new: In the case where the field/subfield exists
we update, if we have two fields - one with the subfield, and one without, we
add the subfield to the one without

Copy field:
 - If given a subfield - we will add to existing fields in the record
 - If not given a subfield - we create an entirely new field

The logic of all of this is tricky, makes sense in a certain light, any complaints
are for a new bug :-)

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>
(cherry picked from commit 74742f5276)
2022-12-05 21:51:47 +00:00
448f7d1432 Bug 31644: Check if subfield defined, not for truth
To test:
1 - Define a new MARC Modification template with actions:
        Copy field 600$a to 942$0
2 - Define a new record like:
    LDR 00334nam a22001217a 4500
    003 ff
    005 20201102111604.0
    008 201102b        xxu||||| |||| 00| 0 eng d
    040 _ _ ‡cvsd
    100 1 _ ‡012345‡aKnuth, Donal Ervin‡d1938
    245 _ _ ‡012345‡aThe aty of computer programming‡cDonald E. Knuth
    600 _ 0 ‡042‡aComputer programming‡9462
3 - Modify this record using the template above
4 - Note that entire  field is copied to 942
5 - Apply patch
6 - Now only subfield 0 is copied

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>
(cherry picked from commit 2f61afa9c5)
2022-12-05 21:51:37 +00:00
17c6bdde3f Bug 31644: Unit test
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>
(cherry picked from commit 4ab009cc9a)
2022-12-05 21:51:20 +00:00
97b53f6410 Bug 31869: Unable to save thesaurus value to frameworks subfields
This patch correct a typo authtypecodes for authtypecode

To test:
1. Edit e.g. default frameworks subfield 100$a
2. Add or change fields thesaurus value
3. Save your changes
   => note that on subfield listing there is no mention that 100$a is linked to any thesaurus
   => if you edit 100$a thesaurus input is empty
4. Apply patch
5. Edit subfield 100$a and set a thesaurus value
6. Confirm it saves and displays correctly

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 56ca0324ad)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 21:47:17 +00:00
70ae8bcd04 Bug 18556: Clarify lost and gonenoaddress messages
This patch alters the message for the patron flasg slightly, and adds
a title to provide explicit info when hoevered

To test:
1 - Edit a patron and set gonenoaddress and lost flags
2 - Note new info in the flags section
3 - Go to 'Checkout' or 'Details' tab for patron
4 - Confirm the messages make sense
5 - Confirm you see a tool tip when hovering on messages

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>
(cherry picked from commit ae5d1f98ac)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 21:43:36 +00:00
992d2b01f7 Bug 31920: Add transaction to subtest in t/db_dependent/Holds.t
A subest in t/db_dependent/Holds.t leaves behind database cruft.

Test Plan:
Using koha-testing-docker:
1) SELECT branchcode FROM branches
2) prove t/db_dependent/Holds.t
3) SELECT branchcode FROM branches
   Note cruft
4) reset_all
2) prove t/db_dependent/Holds.t
3) SELECT branchcode FROM branches
   No cruft!

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>
(cherry picked from commit 2b8b02a587)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 21:34:21 +00:00
1a322a33e1 Bug 31588 - Update cpanfile for new OpenAPI versions (22.05)
Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 21:23:00 +00:00
21d18b030d Bug 29987: (QA follow-up) Remove unused cnt attribute missing a filter
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 489676e118)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 21:16:22 +00:00
74406fdefd Bug 29987: Improve validation
This patch adds hinting to display the required state of the cash
register fields.

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit bce51debc6)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 21:16:07 +00:00
702b10bb6b Bug 29987: Display credit without offsets in transactions
This patch adds a row to the transactions table for credits without
corresponding offsets

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit d6262c0f30)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 21:15:51 +00:00
6d0af80314 Bug 29987: (follow-up) Fix missing payment type
The payment type include has changed since the patch was first written,
we now require a 'type' is passed to properly set the field name.

This should fix the 'bankable' issue raised.

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit a059392490)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 21:15:41 +00:00
81d9692920 Bug 29987: Add register support to manual credits
This patch adds the register and transaction type selection options to
the manual credit page.

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 529341c78b)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 21:15:29 +00:00
8b81824e32 Bug 31684: Set Koha::Plugin::Test version to 'v1.01'
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>
(cherry picked from commit a26cc8a29b)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 21:13:09 +00:00
a88895d0b8 Bug 31684: Plugin versions starting with a "v" cause unnecessary warnings
Our code assumes that plugin version will be purely numeric ( e.g. 1.2.3 ) but many plugin authors ( including myself ) use the format "v1.2.3".
This causes warnings as we use a numeric comparison on the version numbers.
It could make sense to check for and strip any v's from the beginning of the version.

Test Plan:
1) Apply the first patch to set the test plugin's version to v1.01
2) prove t/db_dependent/Koha/Plugins/Plugins.t
3) Note the warnings and test failures
4) Apply this patch
5) prove t/db_dependent/Koha/Plugins/Plugins.t
6) All tests pass!

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>
(cherry picked from commit fd51a238c8)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 21:06:13 +00:00
Katrin Fischer
251379247b Bug 31738: Fix untranslatable string for recalls
To test translation:
1. Apply patch and update your po files using:
   https://wiki.koha-community.org/wiki/Translating_Koha#Updating_the_po_files_in_your_installation
2. Verify the string appears in po files now and translate it
3. Install the language

To test functionality:
1. Turn on recalls
   1.1. In Administration > Global system preferences, enable UseRecalls
   1.2. Add recalls permissions in your circulation rules
2. In the OPAC, log in as a patron
3. Find a record with checked out items and place a recall
4. In the intranet, go to the patron file of the patron who currently has that item checked out
--> In the Checkouts table at the bottom of the page, there is a red message next to the recalled title

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>
(cherry picked from commit 0e34f555f9)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 20:57:52 +00:00
43ba61af5b Bug 31883: Filter trim causes false warnings
Test plan:
Run xt/find-missing-filters.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: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 246efd2e9b)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 20:46:09 +00:00
Andreas Roussos
708b8d996a Bug 27315: use the namespace-aware docbook stylesheet
When viewing the man page for the `koha-list` command, the output does
not appear correctly: there appears to be a "staircase"-like effect on
the text. The same is true for all other man pages.

The source XML files for our man pages have the following namespace
declaration at the top: xmlns='http://docbook.org/ns/docbook', which
means they are DocBook V5.0 documents and should be processed by
namespace-aware DocBook XSL stylesheets.

This patch fixes that by using the DocBook-to-man-page transformation
stylesheet from the docbook-xsl-ns package (note the "-ns" suffix).

Test plan:
1) Apply the patch
2) Build and install new package
3) Confirm the man pages display correctly

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>
(cherry picked from commit 43ecb3c86c)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 20:36:42 +00:00
Petro Vashchuk
dee700810e Bug 31776: Fix a typo in cleanup_database.pl cronjob's help/usage
cleanup_database.pl cronjob has a typo in it's usage/help:
"preserve-logs" option should be "preserve-log" as it is everywhere
in the code.

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>
(cherry picked from commit b04e8185a3)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 20:26:10 +00:00
The Minh Luong
ae0fe1af35 Bug 28967: Patrons with no checkouts report shows patrons from other libraries with IndependentBranches
When IndependentBranches is activated and a non-superlibrarian user looks at the "Patrons with no checkouts" report, it shows patrons from other libraries.

To recreate:
1) Activate IndependentBranches, IndependentBranchesPatronModifications and IndependentBranchesTransfers
2) Create a staff user with limited permissions (NOT a superlibrarian), including reports permissions. Here are mine as an example
  - circulate (all)
  - catalogue
  - borrowers
    - delete_borrowers
    - edit_borrowers
  - reserveforothers (all)
  - reports (all)
3) Create (or make sure you already have) a patron in another branch (if using an existing patron, make sure they have no checkouts or checkout history)
4) Log in as your limited staff patron
5) Go to Reports > Inactive > Patrons who haven't checked out
6) Don't put in any limitations and click Submit
-- The patron from the other library appears in the list
7) Try to search for that other patron in the patron module
-- The patron from the other library is inaccessible
8) Apply the patch
9) Notice that the limited patron can only see patrons from his own
library

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>
(cherry picked from commit ae9536b61f)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 20:23:34 +00:00
4e4fac9314 Bug 31595: Don't process extended attributes if none are inlcuded in the file
This patch simply adds a check to the import process to only process attrbutes if
they have been found in the data

To test:
1 - Import some patrons without extended attributes
2 - Import patrons including extended attributes
3 - Confirm both work unchanged

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 40cff1a774)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 20:15:55 +00:00
679f9942c7 Bug 31785: (follow-up) Fix modify operation too
Test plan:
Enable SQL strict mode (koha-conf).
Modify branch, set Public to No.
Check.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 0d974073db)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 20:13:37 +00:00
83f20319c3 Bug 31785: Fix for adding non-public library
The code in admin/branches.pl changed a 0 to undef which is not
desirable for booleans.
A similar fix was already present for pickup_location.
This may need a bit more thought (somewhere else!).

Test plan:
Add a new branch with pickup location No, public No.
Check.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 9c4a557c97)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 20:13:18 +00:00
eb1083beb2 Bug 29554: Do not hide display of itemtypes on neworderempty
Hiding the list may lead to biblioitems.itemtype being NULL.
We do not want that, since 942$c is mandatory.

Test plan:
Create basket and set 'create items when' to receiving or
cataloging.
Create order from new empty record.
Check biblioitems.itemtype of created biblio.
Without this patch, it would have been NULL like this:
    select biblionumber,title from biblio;
    |            7 | Test 3                |
    select biblionumber,itemtype from biblioitems;
    |            7 | NULL     |

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 2e650fdd0c)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 20:09:09 +00:00
73d3abd65d Bug 31469: log4perl.conf: Add %n to conversionpattern for Plack
The PLACKOPAC, PLACKAPI and PLACKINTRANET appenders still need %n
(i.e. a newline). Note that this patch does not add %l since it
is a bit confusing because it adds a lot of Plack internal noise like:
    [2022/09/29 08:51:34] [WARN] Test mainpage CGI::Compile::ROOT::usr_share_koha_mainpage_2epl::__ANON__ /usr/share/koha/mainpage.pl (49)

The patch is a result of:
    git grep -l "log4perl.appender.PLACK" | xargs sed -i -e"/ConversionPattern/ s/%m$/%m%n/"

Test plan:
First run: sed -i -e"/ConversionPattern/ s/%m$/%m%n/" /etc/koha/sites/[YOUR_CLONE]/log4perl.conf
Edit that file, change PLACKOPAC to debug level like:
    log4perl.logger.plack-opac = DEBUG, PLACKOPAC
Restart.
Hit an OPAC page twice.
Check plack-opac logfile and verify that it contains a newline between last two messages like:
    [2022/09/29 08:04:30] [DEBUG] kohaversion : 22.0600054
    [2022/09/29 08:04:42] [DEBUG] kohaversion : 22.0600054

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit ef81785d76)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 18:55:16 +00:00
0c7b340508 Bug 31552: SIP2 option format_due_date not honored for AH field in item information response
Bug 28730 added the ability to format due dates based on Koha's date format, but missed formatting the due date field in the item information response.

Test Plan:
1) Apply this patch
2) prove t/db_dependent/SIP/Message.t

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 93e418c0b3)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 18:52:34 +00:00
cb0967ae7d Bug 26648: Prevent explosion in notices on missing item
The item accessor in Koha::Old::Checkouts could explode given a checkout
where the item had been deleted.

To test
1/ Edit the issueslip notice to output some item details from the
borrowers old checkouts

[% FOREACH old_checkout IN borrower.old_checkouts %]
  [% IF old_checkout.item %]
    [% old_checkout.item.price %]
  [% END %]
[% END %]

2/ Delete the item associated with an old checkout for a test patron
3/ Print the issueslip for the patron
4/ Note a server side error is triggered
5/ Apply the patch
6/ Print the slip again and note the price details for old checkouts are
now displayed
7/ Signoff

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: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 971ad5538c)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 18:38:50 +00:00
0dee72d97a Bug 26648: Add tests
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Cab Vinton <director@plaistowlibrary.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit c6fc76f478)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 18:38:30 +00:00
9ecdebb966 Bug 31677: Convert basic MARC editor tabs to Bootstrap
This patch modifies the basic MARC editor template to replace jQueryUI
tabs with Bootstrap tabs. The changes should have no visible effect,
with all previous functionality still intact.

To test, apply the patch and go to Cataloging -> New record.

- When the page first displays, the "0" tab should be active.
- Test that each of the numbered tabs works correctly to activate the
  correct tab content.
- Confirm that the numbered tag anchors still work correctly.
- Append a specific tab anchor to the URL, e.g. "#tab4XX" and refresh
  the page (you may need to shift-refresh). When the page reloads the
  correct tab should be active by default.
- Try appending a query string to the URL, e.g. "?tab=tab4XX" This
  should reload the page and make the correct tab active.
- Confirm that sortable subfields can still be re-ordered by dragging
  and dropping them via the "stacked lines" icons.

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>
(cherry picked from commit 6017a91c8d)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 18:32:43 +00:00
04b0539074 Bug 31678: Convert authority editor tabs to Bootstrap
This patch modifies the authorities editor template to replace jQueryUI
tabs with Bootstrap tabs. The changes should have no visible effect,
with all previous functionality still intact.

To test, apply the patch and go to Authorities -> New authority.

- When the page first displays, the "0" tab should be active.
- Test that each of the numbered tabs works correctly to activate the
  correct tab content.
- Confirm that the numbered tag anchors still work correctly.
- Append a specific tab anchor to the URL, e.g. "#tab4XX" and refresh
  the page (you may need to shift-refresh). When the page reloads the
  correct tab should be active by default.
- Confirm that sortable subfields can still be re-ordered by dragging
  and dropping them via the "stacked lines" icons.

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>
(cherry picked from commit acea770e18)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2022-12-05 18:28:32 +00:00