koha.git
8 months agoBug 25393: Update Circulation.t
Pedro Amorim [Thu, 17 Aug 2023 11:05:20 +0000 (11:05 +0000)]
Bug 25393: Update Circulation.t

prove t/db_dependent/Circulation.t

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 25393: Tests - Variable renaming
Pedro Amorim [Wed, 16 Aug 2023 11:27:06 +0000 (11:27 +0000)]
Bug 25393: Tests - Variable renaming

issue_4 is an auto_renew issue, rename to auto_renew_issue

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 25393: Update CanBookBeRenewed pod with bug 25758 changes
Pedro Amorim [Wed, 16 Aug 2023 10:55:16 +0000 (10:55 +0000)]
Bug 25393: Update CanBookBeRenewed pod with bug 25758 changes

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 25393: Auto renewals logic reimplementation:
Pedro Amorim [Fri, 11 Aug 2023 14:20:48 +0000 (14:20 +0000)]
Bug 25393: Auto renewals logic reimplementation:

Check if it's too soon for a manual renewal  even if 'Automatic renewals' is enabled
Allow for a manual renewal even if it's too soon for an automatic renewal

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 25393: atomicupdate file
Pedro Amorim [Fri, 11 Aug 2023 14:16:51 +0000 (14:16 +0000)]
Bug 25393: atomicupdate file

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 25393: Distinguish between auto or normal renewals in GetSoonestRenewDate
Pedro Amorim [Fri, 11 Aug 2023 13:37:08 +0000 (13:37 +0000)]
Bug 25393: Distinguish between auto or normal renewals in GetSoonestRenewDate

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 25393: UI adjustments
Pedro Amorim [Fri, 11 Aug 2023 13:35:55 +0000 (13:35 +0000)]
Bug 25393: UI adjustments

This updates the information messages that are displayed in Staff, OPAC and SCO
regarding renewals and if the item is up for automatic renewal or not.

Add issues.auto_renew to svc/checkouts endpoint response

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 25393: Use new noautorenewalbefore circulation rule in _CanBookBeAutoRenewed
Pedro Amorim [Fri, 11 Aug 2023 13:43:31 +0000 (13:43 +0000)]
Bug 25393: Use new noautorenewalbefore circulation rule in _CanBookBeAutoRenewed

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 25393: Add new noautorenewalbefore circulation rule
Pedro Amorim [Thu, 10 Aug 2023 15:44:05 +0000 (15:44 +0000)]
Bug 25393: Add new noautorenewalbefore circulation rule

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 31357: DBRev 23.06.00.043
Tomas Cohen Arazi [Fri, 20 Oct 2023 18:13:23 +0000 (15:13 -0300)]
Bug 31357: DBRev 23.06.00.043

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 31357: Separate holds history from intranetreadinghistory
Kyle M Hall [Thu, 29 Jun 2023 18:17:09 +0000 (14:17 -0400)]
Bug 31357: Separate holds history from intranetreadinghistory

Currently the system preference intranetreadinghistory determines visibility of both circulation history and holds history tabs in the patron record.  It would be helpful to allow the option of setting each of those independently.

Specifically, libraries have requested the option of being able to view the holds history in a patron record without having to enable viewing of the circulation history.

Test Plan:
1) Apply this patch
2) Restart all the things!
3) Run updatadatabase.pl
4) Verify the new syspref intranetReadingHistoryHolds has the same value
   as the existing syspref intranetreadinghistory
5) Disable intranetreadinghistory, enable intranetReadingHistoryHolds
6) Verify you can view a patron's holds history but not reading history

Signed-off-by: Sam Lau <samalau@gmail.com>
JD amended patch:
* renamed syspref intranetReadingHistoryHolds => IntranetReadingHistoryHolds
* tidy

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 14092: (QA follow-up) Avoid fiddling with the hash in the template
Katrin Fischer [Fri, 22 Sep 2023 14:11:23 +0000 (14:11 +0000)]
Bug 14092: (QA follow-up) Avoid fiddling with the hash in the template

prove t/db_dependent/Acquisition.t

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 14092: Add 'any status' option to acq order search form
Katrin Fischer [Fri, 15 Sep 2023 17:09:00 +0000 (17:09 +0000)]
Bug 14092: Add 'any status' option to acq order search form

Sometimes it's really helpful to see all orders for a basket, a
vendor or a standing order, including the cancelled ones.
Currently this is not possible, as we have search options for
every single status and one for "any except cancelled",
but no "Any status" option.

This patch adds the "Any status" option. The sometimes
appearing empty entry is updated to "Any status except cancelled"
as this is what it does.

Testing data:
* Requires multiple order lines with different order status
* Must include at least one order line with status 'cancelled'

To test:
* Go to acquisitions
* Open the advanced search page from the top search options:
  Order search > config icon > Advanced search link
* Verify the status pull down looks as described above
* Apply patch
* Verify there is now an "Any status" option in the pull down
* Try searches for different status, including "Any status"
* Verify the results are as expected
* Create a new basket
* Create an order line by 'From an existing order (copy)'
* Verify the search form there also works as expected

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 26994: List names in alphabetical order in Suggestion filter
Shi Yao Wang [Wed, 26 Jul 2023 16:58:39 +0000 (12:58 -0400)]
Bug 26994: List names in alphabetical order in Suggestion filter

Display list of names in alphabetical order when using the Suggestion information filter in Suggestions management

Test plan:
1. Add different purchase suggestions from various patron's names
2. Go to Acquisition > Suggestions
3. Click on the Suggestion information filters on the left-hand side
4. Use one of these drop-down menus: "Suggested by" or, "Managed by" or "Accepted by"
--> notice the list of names in menus, names aren't displayed from A to Z
5. Apply patch and refresh page
6. Redo step 4
--> notice now it's sorted alphabetically

Signed-off-by: Kelly <kelly@bywatersolutions.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 33845: DBRev 23.06.00.042
Tomas Cohen Arazi [Fri, 20 Oct 2023 18:08:23 +0000 (15:08 -0300)]
Bug 33845: DBRev 23.06.00.042

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 33845: Tidy and add update
Nick Clemens [Fri, 29 Sep 2023 13:22:17 +0000 (13:22 +0000)]
Bug 33845: Tidy and add update

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 33845: (follow-up) Rename config and add a second configuration section
Nick Clemens [Tue, 6 Jun 2023 12:40:50 +0000 (12:40 +0000)]
Bug 33845: (follow-up) Rename config and add a second configuration section

This patch renames the table in the columns configuration to match the id
used in the templates

It also adds a section for the moremember table to alllow config of each page as we do for issues

Lastly we add the table controls as they exist on the issues tables

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 33845: (follow-up) escape hold notes for display
Nick Clemens [Fri, 26 May 2023 12:41:05 +0000 (12:41 +0000)]
Bug 33845: (follow-up) escape hold notes for display

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 33845: Use table settings and hide note by default
Nick Clemens [Fri, 26 May 2023 12:23:56 +0000 (12:23 +0000)]
Bug 33845: Use table settings and hide note by default

This patch updates the holds table on circulation and moremembers to use
table settings and hides the note column by default to preserve existing views

To test:
 1 - Apply patch
 2 - Enable system preferece 'OpacHoldNotes'
 3 - Place a hold on the opac and enter a note
 4 - Confirm it shows on the patron's page
 5 - View the patron in staff client
 6 - Ensure the holds note does not display on Holds tab in Checkout or Details view
 7 - Go to Admin->Table settings->Circulation
 8 - Under holds_table confirm 'notes' is hidden by default
 9 - Uncheck the box
10 - Refresh patron pages and confirm hold note shows

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 33845: Display hold notes in OPAC
Nick Clemens [Fri, 26 May 2023 11:02:51 +0000 (11:02 +0000)]
Bug 33845: Display hold notes in OPAC

This patch adds the holds notes to the patron's account holds list

1 - Ensure system preference 'OpacHoldNotes' is enabled
2 - Place a hold on the OPAC and add a note
3 - Confirm the note displays on the Summary page Holds tab of 'Your account'
4 - In staff client, disable system preference 'OpacHoldNotes'
5 - View Holds on patron's account in opac
6 - Confirm the note no longer shows

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 33845: Display hold notes in staff client circulation paes
Nick Clemens [Fri, 26 May 2023 10:58:33 +0000 (10:58 +0000)]
Bug 33845: Display hold notes in staff client circulation paes

This patch adds the reservenotes column to svc holds, and ensures they display on
circulation and memeber details

To test:
1 - Enable system preference 'OpacHoldNotes'
2 - Place a hold for a ptron via the OPAC
3 - View the patron in the staff client
4 - Click on the 'Holds' tab
5 - Ensure you can see the hold note
6 - Click on the 'Circulation' tab on the left
7 - Click the 'Holds' tab and confirm you can view the note

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 15222: Add to cart option/other list options missing from OPAC lists display
Owen Leonard [Tue, 29 Aug 2023 16:23:52 +0000 (16:23 +0000)]
Bug 15222: Add to cart option/other list options missing from OPAC lists display

This patch adds the option to add titles to the cart or a list from the
view of a list's contents.

To test you should have at least one public list with titles added.
Apply the patch and go to the OPAC.

- View a public list.
- In the toolbar at the top of the table of titles you should see "Add
  to cart" and "Add to list." The controls should be disabled.
- Check checkboxes for one or more titles on the list.
- The controls should now be enabled.
- Clicking the "Add to cart" button should add the selected titles to
  the cart.
- If you are not logged into the OPAC, clicking the "Add to list" button
  should trigger an alert, "You must be logged in..."
- Log in to the OPAC and view the list again.
- Confirm that the "Add to list" control should trigger a popup allowing
  you to add your selected titles to an existing or a new list.

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>
8 months agoBug 23059: (QA follow-up) Put status strings in a span
Marcel de Rooy [Mon, 26 Jun 2023 12:00:57 +0000 (12:00 +0000)]
Bug 23059: (QA follow-up) Put status strings in a span

No test plan.
Read the patch.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 23059: reserve_stats.pl: Simplify reservestatus
Marcel de Rooy [Tue, 23 May 2023 12:41:56 +0000 (12:41 +0000)]
Bug 23059: reserve_stats.pl: Simplify reservestatus

This patch does the following:
[1] Go back to four statuses: Cancelled, Filled, Waiting or Placed.
    Placed is used as collective name for all other statuses: pending
    (placed), processing (found==P) or transit (found==T). Placed before
    anyway.
[2] Allow translation of these statuses in the template. Remove the sub
    reservestatushuman.
[3] The output of changeifreservestatus is considerably shorter and less
    ugly in the constructed sql statement.

Test plan:
[1] Use reservestatus as row, as column and only as filter (clicking few
    statuses).
[2] Verify that the shown statistics meet your expectations.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 31832: Add reference for EnableItemGroups to EnableItemGroupHolds system preference
Caroline Cyr La Rose [Fri, 15 Sep 2023 15:51:42 +0000 (11:51 -0400)]
Bug 31832: Add reference for EnableItemGroups to EnableItemGroupHolds system preference

This patch adds a note and a link to the EnableItemGroups system
preference from the description of EnableItemGroupHolds.

To test:
1. Apply patch
2. Go to Administration > System preference
3. Search for EnableItemGroup
4. Read the description of EnableItemGroupHolds, make sure the grammar
   and spelling are OK.
5. Click the link, it should bring you to EnableItemGroups

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 30708: Adjust spec for train_item
Jonathan Druart [Fri, 20 Oct 2023 13:18:44 +0000 (15:18 +0200)]
Bug 30708: Adjust spec for train_item

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 31383: DBRev 23.06.00.041
Tomas Cohen Arazi [Fri, 20 Oct 2023 15:17:32 +0000 (12:17 -0300)]
Bug 31383: DBRev 23.06.00.041

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 31383: (QA follow-up) Tidy
Martin Renvoize [Thu, 21 Sep 2023 16:40:47 +0000 (17:40 +0100)]
Bug 31383: (QA follow-up) Tidy

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 31383: Fix dbrevs
Jonathan Druart [Tue, 4 Jul 2023 11:58:34 +0000 (13:58 +0200)]
Bug 31383: Fix dbrevs

We need to remove duplicate entries.

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>
8 months agoBug 31383: Fix URLs on staff AC detail view
Marcel de Rooy [Thu, 22 Jun 2023 13:31:10 +0000 (13:31 +0000)]
Bug 31383: Fix URLs on staff AC detail view

No real need anymore for showing a Default and Current language link.
They could be made with the language parameter (not lang), but just
changing the language allows you to test easily.
Would you really like to see Default when you added content for all
enabled languages? You can still add language=default to the URL.

Test plan:
Test the page URLs. Experiment with changing language in the regular
way and via URL parameter.

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>
8 months agoBug 31383: Use one query in search_for_display instead of four
Marcel de Rooy [Wed, 21 Jun 2023 12:38:54 +0000 (12:38 +0000)]
Bug 31383: Use one query in search_for_display instead of four

Benchmarking does however not show real performance gain.
But it might be considered as a code improvement?

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>
8 months agoBug 31383: Check lang and use right column in search_for_display
Marcel de Rooy [Thu, 22 Jun 2023 08:41:41 +0000 (08:41 +0000)]
Bug 31383: Check lang and use right column in search_for_display

We should check if $lang equals default before looking for translated
contents.
And note that @translated_content_id contains additional_content_id
not id, so cannot be used in the last query.

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>
8 months agoBug 31383: (QA follow-up) Do not return 0 in ->get
Marcel de Rooy [Wed, 21 Jun 2023 11:48:27 +0000 (11:48 +0000)]
Bug 31383: (QA follow-up) Do not return 0 in ->get

The last statement evaluated is the if( $content->count ).
If that evaluates to false, the false expression value is returned.
In this case that is 0.
We should just return undef or empty list (scalar/list context).

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>
8 months agoBug 31383: Restore updated_on for individual content
Jonathan Druart [Wed, 8 Mar 2023 09:56:07 +0000 (10:56 +0100)]
Bug 31383: Restore updated_on for individual content

Sponsored-by: Rijksmuseum, Netherlands
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>
8 months agoBug 31383: DBIC specific
Jonathan Druart [Tue, 28 Feb 2023 19:41:16 +0000 (20:41 +0100)]
Bug 31383: DBIC specific

Sponsored-by: Rijksmuseum, Netherlands
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>
8 months agoBug 31383: DBIC changes
Jonathan Druart [Tue, 28 Feb 2023 16:39:40 +0000 (17:39 +0100)]
Bug 31383: DBIC changes

Sponsored-by: Rijksmuseum, Netherlands
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>
8 months agoBug 31383: DB changes
Jonathan Druart [Tue, 7 Mar 2023 20:38:52 +0000 (21:38 +0100)]
Bug 31383: DB changes

Sponsored-by: Rijksmuseum, Netherlands
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>
8 months agoBug 31383: Adjust and add tests
Jonathan Druart [Fri, 3 Mar 2023 11:13:05 +0000 (12:13 +0100)]
Bug 31383: Adjust and add tests

Sponsored-by: Rijksmuseum, Netherlands
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>
8 months agoBug 31383: Create a parent-child DB relation for additional content
Jonathan Druart [Mon, 27 Feb 2023 20:47:59 +0000 (21:47 +0100)]
Bug 31383: Create a parent-child DB relation for additional content

In the design of additional contents the idea of a parent-child relation is implicitly present. You have a default page and translations.
But we do this in one table coming from the old news items.

Several reports show that we would be better off creating a parent table listing the main news items, CMS pages or HTML content. And a child table containing the title, content and lang.

Note that this first step is a prelimenary step to clean this area and make it more robust and extensible. More enhancements to come.

What is this patchset doing?
* DB changes
- Rename additional_contents.idnew with id
- Create a new table additional_contents_localizations(id, additional_content_id, title, content, lang) that will contain the translated contents
- Move the content to this new table
- Remove title, content and lang columns from additional_contents
- Replace the notice templates that are using ''<news>" (should only be ISSUESLIP) and remove support for this syntax. Also add a warning in case other occurrences of uses of the old syntax exist.

* CRUD
- We add a new Koha::AdditionalContentsLocalization[s] couple, and move some logic from Koha::AdditionalContent[s] to there. Note that, to prevent too much drastic changes in notice templates, and to make them easy to use, the different attributes of the content object is accessible from the translated content object (ie. Koha::AdditionalContentsLocatlization->library is available and return $self->additional_content->library). I think it's an elegant way to keep things simple.
- No changes expected for "NewsLog" logging
- Little behaviour changes for pages, see tools/page.pl changes. We are now passing the id of the content, and the desired language, instead of the mix of "page_id" or code and lang. Note that here we certainly need to rename "language" query param to not change the full interface language.

Test plan:
0. Preparation steps, use master
  a. Create notice templates that are using "<< additional_contents.code >>". This won't be replaced, but we want the update process to alert us.
  b. Create several news, additional contents, pages. Some with translated contents, some without.
  c. Make sure ISSUESLIP has the "<news>" section. If you are using the sample data there is nothing to do here
  d. Turn on NewsLogs
1. Apply the patches, restart_all, updatedatabase
=> Confirm that the new table is created and filled with the contents you had prior to the update
=> Confirm that additional_contents_localizations.updated_on has been kept to the previous values
=> Confirm that ISSUESLIP has been replaced properly
=> Confirm that you get a warning about the additional_contents
2. Create, update, delete news, html customs, pages
=> Confirm that the additional_contents_localizations.updated_on is only adjusted when required
=> Confirm that the logs are correctly created when NewsLogs is on
3. Check some items out, generate a slip
=> Confirm that the news are displayed at the bottom of the slip, and that the publication date is correctly formatted
4. Have several HTML customizations (like OpacNav, opacheader), in translated in different languages
=> Confirm that the default values is displayed when you are using the interface in a language without translation
=> Confirm that the translated version is picked when it exists

Notes for QA:
* I am not sure we really need the alert during the update DB process about the additional_contents leftover. We should not have them outside of ISSUESLIP.
Shouldn't it hurt?
* There is something ugly in sample_news.yml, the id is hardcoded. But how do we prevent that and keep translatability?

Sponsored-by: Rijksmuseum, Netherlands
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>
8 months agoBug 25816: DBRev 23.06.00.040
Tomas Cohen Arazi [Fri, 20 Oct 2023 15:16:28 +0000 (12:16 -0300)]
Bug 25816: DBRev 23.06.00.040

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 34831: Add input types "tel", "email" and "url" to vendor edit form
Owen Leonard [Tue, 19 Sep 2023 12:10:48 +0000 (12:10 +0000)]
Bug 34831: Add input types "tel", "email" and "url" to vendor edit form

This patch updates the vendor edit form so that phone, email, and url
fields have an input type corresponding to the field's content.

To test, apply the patch and go to Acquisitions.

- Create or edit a vendor.
- In the form, check that each field looks correct:
  - Company details ->
    - Phone
    - Fax
    - Website
  - Contact details
    - Phone
    - Alternative phone
    - Fax
    - Email
  - Interfaces
    - URI
    - Account email

In a desktop browser the inputs won't display any differently, but if
you test the patch in a sandbox you can try it in a mobile device
browser to confirm that the onscreen keyboard changes based on the type
of input.

Signed-off-by: Émily-Rose Francoeur <emily-rose.francoeur@inLibro.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 34501: Added Non-public notes to the member purchase suggestion table
Laura Escamilla [Tue, 8 Aug 2023 21:17:09 +0000 (21:17 +0000)]
Bug 34501: Added Non-public notes to the member purchase suggestion table

Signed-off-by: Lisette Scheer <lisette.scheer@bywatersolutions.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 34171: Use barcodedecode when attaching items to another record
Katrin Fischer [Fri, 21 Jul 2023 15:25:00 +0000 (15:25 +0000)]
Bug 34171: Use barcodedecode when attaching items to another record

Bug 26351 added barcodecode that transforms scanned barcodes either
by using itemBarcodeInputFilter  or via a plugin to various pages in
Koha, including checkout and checkin. But the feature for attaching
items to a new record was missed.

To test:
* Add an item with barcode "ab" to any record
* Set itemBarcodeInputFilter to "Remove spaces from"
* Search for another record in the catalog
* Edit > attach item > "a b"
* The item is not found.
* Apply patch, restart_all
* Try again with "a b"
* Verify that the item is found and attached to the record

Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 34547: (follow-up) add recall cases
Lucas Gass [Tue, 26 Sep 2023 20:11:29 +0000 (20:11 +0000)]
Bug 34547: (follow-up) add recall cases

Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 34547: Add transfer reason to checkedintable on returns.tt
Lucas Gass [Wed, 16 Aug 2023 21:20:36 +0000 (21:20 +0000)]
Bug 34547: Add transfer reason to checkedintable on returns.tt

To test:
1. Apply patch, restart_all
2. Check some items out and prepare some reasons that would initiate a branchtransfer. According the schema it can be any of the following: 'Manual', 'StockrotationAdvance', 'StockrotationRepatriation', 'ReturnToHome', 'ReturnToHolding', 'RotatingCollection', 'Reserve', 'LostReserve', 'CancelReserve', 'TransferCancellation', 'Recall', 'RecallCancellation.
3. CHeck in some the items and notice the 'Transfer reason' column in the table. Make sure the reasons are acurate and make sense.
4. To go Table settings and find the 'checkedintable'. Make sure you can properly hide the column from the display.

Signed-off-by: AndrewA <andrew.auld@ptfs-europe.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 33947: Remove GetAllIssues
Jonathan Druart [Wed, 7 Jun 2023 14:56:05 +0000 (16:56 +0200)]
Bug 33947: Remove GetAllIssues

No more occurrences of GetAllIssues, remove it!

Test plan:
  git grep is your friend

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 12732: (follow-up) Use data-order instead of data-sort
Owen Leonard [Wed, 27 Sep 2023 10:47:03 +0000 (10:47 +0000)]
Bug 12732: (follow-up) Use data-order instead of data-sort

Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 12732: Add basket creation date to late orders table for sorting
Owen Leonard [Mon, 17 Jul 2023 11:39:21 +0000 (11:39 +0000)]
Bug 12732: Add basket creation date to late orders table for sorting

This patch modifies the late orders page so that the table of
information contains a column for basket creation date. This will allow
administrators to configure the table to sort by default on basket
creation date if they wish.

To test, apply the patch and restart services.

- Go to Acquisitions -> Late orders.
- The table of late orders should include a column labeled "Basket date"
  showing the basket creation date.
- The dates should be formatted correctly and the column should sort
  correctly.
- Go to Administration -> Table settings and navigate to the settings
  for the lateorders page.
- Try changing various settings for the table to confirm that everything
  works correctly, including setting the default sort to use the basket
  date column.

Signed-off-by: Emmi Takkinen <emmi.takkinen@koha-suomi.fi>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 25816: (QA follow-up) Add system preference
Kyle M Hall [Tue, 12 Sep 2023 18:34:55 +0000 (14:34 -0400)]
Bug 25816: (QA follow-up) Add system preference

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 25816: Add opac messages in SIP display.
Matthias Meusburger [Wed, 11 Sep 2019 09:39:31 +0000 (11:39 +0200)]
Bug 25816: Add opac messages in SIP display.

Test plan:

 - Add one or more opac messages to a patron
   (patron detail -> add message -> Add a message for: OPAC)

 - Check that the messages will be displayed, with correctly formatted dates.

You can use src/C4/SIP/interactive_patron_dump.pl for easier testing.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 34014: (follow-up) No need to parse old record before updating
Nick Clemens [Tue, 17 Oct 2023 19:15:24 +0000 (19:15 +0000)]
Bug 34014: (follow-up) No need to parse old record before updating

If the old record doesn't parse correctly it will cause a failure - the check is just to ensure we
are editing an existing biblio, just getting the metadata object should confirm it exists

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Kelly McElligott <kelly@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 34014: (follow-up) Tidy
Nick Clemens [Tue, 17 Oct 2023 18:13:32 +0000 (18:13 +0000)]
Bug 34014: (follow-up) Tidy

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Kelly McElligott <kelly@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 34014: Unit test
Nick Clemens [Tue, 17 Oct 2023 18:06:27 +0000 (18:06 +0000)]
Bug 34014: Unit test

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Kelly McElligott <kelly@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 34014: Add support for advanced cataloging editor
Nick Clemens [Tue, 17 Oct 2023 17:06:22 +0000 (17:06 +0000)]
Bug 34014: Add support for advanced cataloging editor

To test:
1 - Enable the advanced cataloging editor
2 - Edit record 369 in the advanced cataloging editor
3 - On load, get a notice that there were issues and to check logs
4 - Save record
5 - Close and reopen in editor
6 - Confirm warning is gone

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Kelly McElligott <kelly@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 34014: Allow staff to edit degraded records
Nick Clemens [Wed, 14 Jun 2023 19:05:14 +0000 (19:05 +0000)]
Bug 34014: Allow staff to edit degraded records

This patch adds an eval to the call for the record form metadata

If there is an error we catch it, display it, and attempt to strip bad characters from the record

To test:
1 - In koha testing docker attempt to view record 369 in the staff interface
2 - You see a warning about degraded view
3 - Attempt to edit the record
4 - Internal server error
5 - Apply patch, restart all
6 - Reload the editor
7 - Record successfully loads!
8 - You have a warning about encoding issues!
9 - Save the record
10 - No more warning!
11 - Edit again, no more warning!

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Kelly McElligott <kelly@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 35098: Fix display of clickable batch name in ILL table
Pedro Amorim [Wed, 18 Oct 2023 16:25:26 +0000 (16:25 +0000)]
Bug 35098: Fix display of clickable batch name in ILL table

Test plan, k-t-d:
1) Install FreeForm and enable ILLmodule, run:
bash <(curl -s https://raw.githubusercontent.com/ammopt/koha-ill-dev/master/start-ill-dev.sh)
2) Install an ILL availability plugin (e.g. pubmed):
https://github.com/PTFS-Europe/koha-plugin-api-pubmed/releases/tag/1.1.1
3) restart plack:
koha-plack --restart kohadev
4) Create a new ILL batch, visit:
/cgi-bin/koha/ill/ill-requests.pl
5) Click '+New ILL requests batch'
6) Input a name, '42' on the cardnumber and pick a library. Click 'Continue'.
7) On the identifiers textarea, insert '123' and click 'Process identifiers'
8) After the metadata has been retrieved, click the bottom 'Add items to batch' button, click 'Finish and view batch'
10) Go back to ILL requests table, visit:
/cgi-bin/koha/ill/ill-requests.pl
11) On the top right of the table, click 'Columns' and enable Batch
12) Notice the batch column now shows correctly and is clickable

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 34990: Add persistent header when sending msg to RabbitMQ
Marcel de Rooy [Thu, 5 Oct 2023 09:56:30 +0000 (09:56 +0000)]
Bug 34990: Add persistent header when sending msg to RabbitMQ

Test plan:
NOTE: It is very hard to add a Koha unit test for adding this
single header when communicating to RabbitMQ via Stomp plugin.
When we would mock the send, we are only testing if perl can
pass a hashref to a subroutine ;)

Do NOT yet apply this patch.
Make sure that RabbitMQ runs.
Stop the koha-worker for long_tasks:
  koha-worker --stop --queue long_tasks myclone
Stage a MARC file.
Check queues with rabbitmqctl list_queues.
Look for: koha_myclone-long_tasks 1  (at least 1)
Stop rabbitmq (something like /etc/init.d/rabbitmq-server stop)
Start rabbitmq (/etc/init.d/rabbitmq-server start)
Check queue again with with rabbitmqctl list_queues.
Look for: koha_myclone-long_tasks 0
Your messages have been gone.

Now apply this patch.
Reiterate the former steps. But note that you will still see
a non-empty queue in the last step:
koha_myclone-long_tasks 1 (at least 1)

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 32305: Counterpart for es_indexer_daemon.pl
Marcel de Rooy [Wed, 18 Oct 2023 13:58:17 +0000 (13:58 +0000)]
Bug 32305: Counterpart for es_indexer_daemon.pl

This is a kind of copy-and-paste variant of background worker.
We probably could do better than having two scripts here ;)

Test plan:
See former test plan. Apply it to ES indexing.

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: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
[EDIT] Removed queue from query at MQ side. Discussed on IRC.
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 32305: Worker should ignore wrong status or queue in MQ mode
Marcel de Rooy [Tue, 17 Oct 2023 14:43:32 +0000 (14:43 +0000)]
Bug 32305: Worker should ignore wrong status or queue in MQ mode

MQ mode: The worker has seen that MQ is running and consumes messages
instead of polling db only.

Test plan:
Stop worker for long tasks.
Make sure that Rabbit MQ runs.
Stage a file. (This adds a long task.)
Goto staff view of jobs and cancel this job.
Check if job is still in MQ with rabbitmqctl list_queues.
Now start worker for long tasks.
Check if job is gone in MQ with rabbitmqctl list_queues.
And check logfile for the adjusted warning like:
  [WARN] Job 5 not found, or has wrong status/queue main:: /usr/share/koha/misc/workers/background_jobs_worker.pl (134)

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: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
[EDIT] Removed queue from query at MQ side. Discussed on IRC.
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 35053: Make sure request is checked as an item-level request if item_id passed
Tomas Cohen Arazi [Tue, 17 Oct 2023 12:07:28 +0000 (09:07 -0300)]
Bug 35053: Make sure request is checked as an item-level request if item_id passed

This patch makes the validation code have the `$item` variable defined
when checking holdability, in the case both `item_id` and `biblio_id`
params are passed.

Otherwise, if the requested item is not holdable, but a biblio-level
hold *could* be placed, the item-level hold is placed.

This is highlighted by the regression tests.

To test:
1. Apply the regression tests patch
2. Run:
   $ ktd --shell
  k$ prove t/db_dependent/api/v1/holds.t
=> FAIL: Tests don't pass. A request that should be rejected is allowed
because biblio-level hold is allowed.
3. Apply this patch
4. Repeat 2
=> SUCCESS: Tests pass! Item-level rules are checked and thus the
request rejected (code 403)
5. Sign off :-D

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 35053: Regression tests
Tomas Cohen Arazi [Tue, 17 Oct 2023 12:03:33 +0000 (09:03 -0300)]
Bug 35053: Regression tests

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 35081: Make it possible to translate catalog concern status messages
Owen Leonard [Tue, 17 Oct 2023 17:43:45 +0000 (17:43 +0000)]
Bug 35081: Make it possible to translate catalog concern status messages

The JavaScript in both OPAC and staff interface for submitting catalog
concerns contains English strings which are not properly wrapped with
the __() function to allow for translation. This patch fixes both
affected files.

The patch also modifies the dialog classes used in the staff interface
so that the messages are styled consistently.

To test, apply the patch and update a translation, e.g. fr-FR:
   - perl misc/translator/translate update fr-FR
- Edit the updated po file for the language you chose, e.g.
  misc/translator/po/fr-FR-messages-js.po, to fill in translated
  strings for the two catalog concern entries. For example:

  koha-tmpl/intranet-tmpl/prog/js/modals/add_catalog_concern.js:38
  koha-tmpl/opac-tmpl/bootstrap/js/modals/catalog_concern.js:55
  msgid "Your concern was sucessfully submitted."
  msgstr ""

- Install the updated po file:
   - perl misc/translator/translate install fr-FR
- Enable the translation if necessary under Administration -> System
  preferences -> language.
- Enable the "opaclanguagesdisplay" preference if necessary.
- Enable the " CatalogConcerns" preference if necessary.
- Locate a bibliographic record in the staff interface and view the
  detail page
  - From the toolbar, choose New -> New catalog concern.
  - Test submitting the form. When the form is submitted a message
    should display on the page: "Your concern was sucessfully submitted"

- Perform the same test in the OPAC, where the "Report a concern" link
  is in the right-hand sidebar menu of the bibliographic detail page.

- Perform the same tests, in both OPAC and staff interface, in your
  translated language to confirm that the translations show up
  correctly.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 35101: Stop screen from jumping back to top when using barcode.pl plugin
Lucas Gass [Wed, 18 Oct 2023 20:31:32 +0000 (20:31 +0000)]
Bug 35101: Stop screen from jumping back to top when using barcode.pl plugin

To test:
1. Set 'autoBarcode' to something other than 'don't generate automatically'
2. If the a framwwork make sure some 952 fields have the barcode.pl plugin enabled
3. Add a new item and click the '...' next to the 952 field with the barcode.pl plugin enabled.
4. The screen jumps back to the top, annoying.
5. Apply patch
6. Try again, it should not jump anymore!

Signed-off-by: Barbara Johnson <barbara.johnson@swbell.net>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 35099: (bug 26314 follow-up) Fix detail view for records with invalid MARCXML
Jonathan Druart [Fri, 20 Oct 2023 12:38:37 +0000 (14:38 +0200)]
Bug 35099: (bug 26314 follow-up) Fix detail view for records with invalid MARCXML

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>
8 months agoBug 30708: Last spec fixes
Tomas Cohen Arazi [Fri, 20 Oct 2023 13:00:54 +0000 (10:00 -0300)]
Bug 30708: Last spec fixes

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 30708: Fix API specs
Jonathan Druart [Fri, 20 Oct 2023 12:15:33 +0000 (14:15 +0200)]
Bug 30708: Fix API specs

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 30708: Add missing koha_object(s)_class definitions
Tomas Cohen Arazi [Fri, 20 Oct 2023 11:48:46 +0000 (08:48 -0300)]
Bug 30708: Add missing koha_object(s)_class definitions

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 30708: Some spec fixes
Tomas Cohen Arazi [Fri, 20 Oct 2023 11:43:45 +0000 (08:43 -0300)]
Bug 30708: Some spec fixes

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 30708: Add 'preservation' to Makefile.PL
Tomas Cohen Arazi [Fri, 20 Oct 2023 11:33:34 +0000 (08:33 -0300)]
Bug 30708: Add 'preservation' to Makefile.PL

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 34300: (QA follow-up) Add permission check and fix missing table cells
Katrin Fischer [Mon, 9 Oct 2023 21:29:13 +0000 (21:29 +0000)]
Bug 34300: (QA follow-up) Add permission check and fix missing table cells

* Changes text from "Place a hold on order" to the more common "Place hold"
* Adds permission check on reserveforothers.
* We were missing table cells in the footer rows of the table.

I would have liked to hide the column for someone missing permissions,
but I failed to get the datatable configuration right with the export
and column configuration settings.

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 32721: DBRev 23.06.00.039
Tomas Cohen Arazi [Thu, 19 Oct 2023 18:38:32 +0000 (15:38 -0300)]
Bug 32721: DBRev 23.06.00.039

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 32721: Atomic update fixes
Tomas Cohen Arazi [Thu, 19 Oct 2023 18:36:59 +0000 (15:36 -0300)]
Bug 32721: Atomic update fixes

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

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 32721: (QA follow-up) Drop fields from API response
Martin Renvoize [Fri, 5 May 2023 13:43:01 +0000 (14:43 +0100)]
Bug 32721: (QA follow-up) Drop fields from API response

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Bug 32721: (QA follow-up) Rename fields to opac*

This patch updates the field names to reflect that they're OPAC
related.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Bug 32721: (QA follow-up) Fix rebase errors

We let some superflous template params creep back in during a rebase
somewhere.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 32721: (QA follow-up) Add exec flag to DB update and expand tests
Nick Clemens [Fri, 5 May 2023 11:05:04 +0000 (11:05 +0000)]
Bug 32721: (QA follow-up) Add exec flag to DB update and expand tests

Added tests for case of no branch specific settings and when no branch passed

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>
8 months agoBug 32721: Highlight the branch specific option from the global syspref
Martin Renvoize [Fri, 5 May 2023 07:35:21 +0000 (08:35 +0100)]
Bug 32721: Highlight the branch specific option from the global syspref

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 32721: (QA follow up) - fix QA issues
Matt Blenkinsop [Fri, 27 Jan 2023 14:46:44 +0000 (14:46 +0000)]
Bug 32721: (QA follow up) - fix QA issues

This patches addresses issues raised by the QA tests. It also adds a missed import of the Branches file in the document head

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Bug 32721: (QA follow-up) Add missing imports

Missing imports added in three template files
Exec flag added to atomic update file
Tinymce imports removed

A new bug will be created to move codemirror into an inc file at latest
version

Test plan as before

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Bug 32721: Tidy up - duplicate fetching of userjs and css

Currently UserJS and UserCSS is injected into the template as a parameter through Auth.pm but is then fetched using Koha.Preference() in the template. This patch tidies this up by removing the parameters from Auth.pm

Test plan as per first commit

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 32721: Add unit tests
Matt Blenkinsop [Fri, 27 Jan 2023 12:59:10 +0000 (12:59 +0000)]
Bug 32721: Add unit tests

Unit tests to test two new functions: GetBranchSpecificJS and GetBranchSpecificCSS

Test plan:
1) In the shell run prove -t t/db_dependent/Template/Plugin/Branches.t

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 32721: Database update to add userjs and usercss to branches table
Matt Blenkinsop [Fri, 27 Jan 2023 12:55:17 +0000 (12:55 +0000)]
Bug 32721: Database update to add userjs and usercss to branches table

This patch adds the columns for userjs and usercss to the branches table

Test plan as per previous commit

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 32721: Add branch specific userjs and usercss
Matt Blenkinsop [Fri, 27 Jan 2023 12:34:39 +0000 (12:34 +0000)]
Bug 32721: Add branch specific userjs and usercss

This patch allows for branch specific userJS and userCSS to be added through the libraries table. This works in conjunction with the global UserJS and UserCSS functionality and allows for multiple OPACs with different css and js options.

Test plan:
1) Add to apache conf (/etc/apache2/sites-available/kohadev.conf)
    SetEnv OPAC_BRANCH_DEFAULT "FFL"
    RequestHeader add X-Koha-SetEnv "OPAC_BRANCH_DEFAULT FFL"
2) In the container, run restart_all
3) Navigate to the OPACUserJS and OPACUserCSS system preferences and add the following: OPACUserJS - console.log('Hello from global sysprefs');, OPACUserCSS - 'body { background-color: black; }'
4) Refresh the OPAC and the background should be black and the message should be logged to the console in developer tools
5) Navigate to Administration > Libraries
6) On the Fairfield branch (if this does not exist you will need to create a branch with a code matching the code that you added to the apache conf file), click edit
7) At the bottom there should be two fields to add userjs and usercss, complete with Codemirror syntax checking
8) In userjs add console.log('Hello from branch level'); and in usercss add 'body { background-color: blue; } then save
9) Return to the OPAC and refresh
10) If you are logged out of the OPAC it should now be logging both the message from global and from the branch level and the background should be blue (if not you will need to log out)
11) Log back into the OPAC using a user that DOES NOT have a default branch matching the branch you added to the Apache conf
12) The OPAC should now revert to only showing the global message in the console with a black background

Sponsored-by: PTFS Europe
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 34531: Fix template logic to not hide patron restrictions
Lucas Gass [Mon, 16 Oct 2023 19:37:41 +0000 (19:37 +0000)]
Bug 34531: Fix template logic to not hide patron restrictions

To test:
1. From BorrowerUnwantedFields Hide Gone no address flag (gonenoaddress) and Lost card flag (lost).
2. Got to memberentrygen.tt and see that Patron restrictions is now hidden
3. Apply patch, now the Patron restrictions field should not be hidden.

Signed-off-by: Barbara Johnson <barbara.johnson@bedfordtx.gov>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 35078: Remove invalid HTML from OpacShowSavings system preference
Owen Leonard [Tue, 17 Oct 2023 13:51:49 +0000 (13:51 +0000)]
Bug 35078: Remove invalid HTML from OpacShowSavings system preference

The options defined for the OpacShowSavings system preference contain
HTML: "on patron's checkout history page (the system preference
<em>opacreadinghistory</em> must be enabled)". This text ends up in an
<option> tag, and even though the form is rendered using the
multiple-select plugin the HTML still won't render and should
be removed.

To test, apply the patch and restart all.

- Go to Administration -> System preferences and search for
  "OpacShowSavings"
- Check the dropdown of options on the preference. The system
  preference names referred to should now be single-quoted instead of
  wrapped in visible <em> tags.
- Confirm that the preference still works correctly.

Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 35105: Fix patron accessor in Illrequest.pm
Pedro Amorim [Thu, 19 Oct 2023 10:42:48 +0000 (10:42 +0000)]
Bug 35105: Fix patron accessor in Illrequest.pm

Patron is nullable, so we need to consider undef return

Test plan, k-t-d:
1) Install FreeForm and enable ILLmodule, run:
bash <(curl -s https://raw.githubusercontent.com/ammopt/koha-ill-dev/master/start-ill-dev.sh)
2) Visit /cgi-bin/koha/ill/ill-requests.pl
3) Create 'New ILL request'
4) Select the request type, input cardnumber '42' and select a library
5) Hit 'Create'
6) Manage the request created just now: click the request id or 'manage request' button from the table
7) Click "Edit request" from the top actions toolbar
8a) Input text in Patron ID e.g. 'asdasdasf'. Notice you get redirected to the table - now renders correctly.
8b) Input a patron id that doesn't exist e.g. '987654'. Notice you get an error upon saving "FK Constraint error",
go back to the table and verify it renders correctly.

In both instances, the request is saved with borrowernumber as NULL,
this was preventing the table from rendering because the 'patron' API
embed was trying to retrieve a patron - getting an empty resultset instead
of undef.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 35105: Regression tests
Tomas Cohen Arazi [Thu, 19 Oct 2023 18:05:59 +0000 (15:05 -0300)]
Bug 35105: Regression tests

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 35096: Fix batch accessor in ILL request page
Pedro Amorim [Wed, 18 Oct 2023 16:11:48 +0000 (16:11 +0000)]
Bug 35096: Fix batch accessor in ILL request page

Test plan, k-t-d:
1) Install FreeForm and enable ILLmodule, run:
bash <(curl -s https://raw.githubusercontent.com/ammopt/koha-ill-dev/master/start-ill-dev.sh)
2) Install an ILL availability plugin (e.g. pubmed):
https://github.com/PTFS-Europe/koha-plugin-api-pubmed/releases/tag/1.1.1
3) restart plack:
koha-plack --restart kohadev
4) Create a new ILL batch, visit:
/cgi-bin/koha/ill/ill-requests.pl
5) Click '+New ILL requests batch'
6) Input a name, '42' on the cardnumber and pick a library. Click 'Continue'.
7) On the identifiers textarea, insert '123' and click 'Process identifiers'
8) After the metadata has been retrieved, click the bottom 'Add items to batch' button, click 'Finish and view batch'
9) You should now be seeing 'View ILL requests for batch <batch_name>' with the request you just added.
10) Click the request id (or the 'Manage request' button)
11) Notice you can view the request correctly, the batch it belongs to shows correctly and is clickable

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 35094: Update batch to ill_batch accessor in .tt file
Pedro Amorim [Wed, 18 Oct 2023 15:40:17 +0000 (15:40 +0000)]
Bug 35094: Update batch to ill_batch accessor in .tt file

Test plan:
1) Install FreeForm and enable ILLmodule, run:
bash <(curl -s https://raw.githubusercontent.com/ammopt/koha-ill-dev/master/start-ill-dev.sh)
2) Visit /cgi-bin/koha/ill/ill-requests.pl
3) Create 'New ILL request'
4) Select the request type, input cardnumber '42' and select a library
5) Hit 'Create'
6) Notice the request now creates successfully

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 35093: Update batch to ill_batch embed
Pedro Amorim [Wed, 18 Oct 2023 15:30:50 +0000 (15:30 +0000)]
Bug 35093: Update batch to ill_batch embed

Test plan:

Install FreeForm and enable ILLmodule, run:
bash <(curl -s https://raw.githubusercontent.com/ammopt/koha-ill-dev/master/start-ill-dev.sh)

Visit /cgi-bin/koha/ill/ill-requests.pl

Notice the table now renders correctly

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 35024: Do not wrap translations
Jonathan Druart [Wed, 11 Oct 2023 09:35:41 +0000 (11:35 +0200)]
Bug 35024: Do not wrap translations

PO files wrap differently depending on versions.

Looks like (thanks Julian!) it's coming from libunistring, between 0.9.10 and 1.0 I am seeing a change in how the strings in the PO files are wrapped.

Debian 11 (using libunistring 0.9):
"%s %sPrintemps%s %s %sÉté%s %s %sAutomne%s %s %sHiver%s %s %sPrtps%s %s %sÉté"
"%s %s %sAut%s %s %sHiv%s %s %s %s"

Debian 12, Ubuntu 22.04(using libunistring 1.0)
"%s %sPrintemps%s %s %sÉté%s %s %sAutomne%s %s %sHiver%s %s %sPrtps%s %s "
"%sÉté%s %s %sAut%s %s %sHiv%s %s %s %s"

It *could* come from this changes:
https://git.savannah.gnu.org/gitweb/?p=libunistring.git;a=blob;f=NEWS;h=5a43ddd7011d62a952733f6c0b7ad52aa4f385c7;hb=HEAD
   * The functions u*_possible_linebreaks and u*_width_linebreaks now make it
     easier to work with strings that contain CR-LF sequences: In this case,
     in the returned array, it will return UC_BREAK_CR_BEFORE_LF followed by
     UC_BREAK_MANDATORY (instead of twice UC_BREAK_MANDATORY).

The command used is:
% msgmerge --backup=off --quiet -F --update misc/translator/po/fr-FR-staff-prog.po misc/translator/Koha-staff-prog.pot

No matter the value of --width.

One solution is to use --no-wrap, and never wrap :)

I sent an email to the list about this suggestion https://lists.katipo.co.nz/pipermail/koha/2023-October/060143.html

Test plan:
% gulp po:update --lang LANG

And notice that the lines are no wrapped anymore.

Note that in master there were already not wrapped (?)
commit edd378f4d14d79107d662b053c8e6f750326dd23
Translation updates for Koha 23.05.00

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>
8 months agoBug 34392: Run automated Stylelint fixes on staff CSS
Owen Leonard [Tue, 19 Sep 2023 13:37:20 +0000 (13:37 +0000)]
Bug 34392: Run automated Stylelint fixes on staff CSS

This patch corrects errors raised by the new stylelint configuration in
staff-global.scss. Many of the fixes were made automatically by using
the "--fix" option:

npx stylelint koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss
--fix

Some examples of errors found:

    - Expected single space after ":"
    - Expected single space after "("
    - Expected single space before ")"
    - Expected empty line before comment
    - Expected no more than 1 empty line
    - Expected a trailing semicolon

Manual fixes include replacing named colors with hex codes, combining
duplicate selectors, removing empty blocks, etc.

Some warnings remain: "Unexpected !important" requires more than a
quick fix, if we should choose to address them.

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

The changes affect CSS all around the staff interface, but there should
be no visible results of the patch. Everything should look correct.

The stylelint check should return only warnings about "!important"

npx stylelint koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss

Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 35057: Improve tag description labels in biblio and authority framework editing
Owen Leonard [Mon, 16 Oct 2023 13:30:15 +0000 (13:30 +0000)]
Bug 35057: Improve tag description labels in biblio and authority framework editing

This patch updates several templates in order to clarify labels in forms
and on table columns.

To test apply the patch and go to Administration -> Authority types ->
MARC structure.

- The second column should now be labeled "Tag description."
- Click "Edit" on one of the tags.
- The description fields should now be labeled "Description in staff
  interface" and "Description in OPAC."
- Return to the list of tags and choose Actions -> Subfields for one of
  the tags. The second column should read "Description."
  - Click "Edit" on one of the subfields.
    - The description fields should now be labeled "Description in staff
      interface" and "Description in OPAC."

Go to Administration -> MARC bibliographic framework -> MARC structure.

- The second column should now be labeled "Tag description."
- Click "Edit" on one of the tags.
- The description fields should now be labeled "Description in staff
  interface" and "Description in OPAC."
- Return to the list of tags and choose Actions -> Subfields for one of
  the tags. The second column should read "Description."
  - Click "Edit" on one of the subfields.
    - The description fields should now be labeled "Description in staff
      interface" and "Description in OPAC."

Signed-off-by: Barbara Johnson <barbara.johnson@bedfordtx.gov>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
8 months agoBug 30708: Tidy perl files
Tomas Cohen Arazi [Wed, 18 Oct 2023 14:50:56 +0000 (11:50 -0300)]
Bug 30708: Tidy perl files

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 30708: DBRev 23.06.00.038
Tomas Cohen Arazi [Wed, 18 Oct 2023 14:45:12 +0000 (11:45 -0300)]
Bug 30708: DBRev 23.06.00.038

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 30708: Remove c->validation in API controllers
Jonathan Druart [Fri, 6 Oct 2023 10:45:19 +0000 (12:45 +0200)]
Bug 30708: Remove c->validation in API controllers

Fixed conflict with bug 33556

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 30708: Fix conflict with 34055 and 34219
Jonathan Druart [Fri, 6 Oct 2023 10:41:56 +0000 (12:41 +0200)]
Bug 30708: Fix conflict with 34055 and 34219

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 30708: Pass csrf_token to the Vue app
Jonathan Druart [Fri, 6 Oct 2023 08:56:05 +0000 (10:56 +0200)]
Bug 30708: Pass csrf_token to the Vue app

It's needed since bug 34369 to POST to the syspref route

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 30708: Do not allow non-authorised users to edit the settings
Jonathan Druart [Mon, 31 Jul 2023 16:19:49 +0000 (18:19 +0200)]
Bug 30708: Do not allow non-authorised users to edit the settings

In case the logged in user does not have manage_sysprefs we should no
display the form in the settings.

Signed-off-by: Laurence Rault <laurence.rault@biblibre.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 30708: Rebase - Use a dedicated 'config' endpoint
Jonathan Druart [Mon, 31 Jul 2023 15:51:28 +0000 (17:51 +0200)]
Bug 30708: Rebase - Use a dedicated 'config' endpoint

To retrieve the sysprefs, instead of using the svc script. See bug
33606.

Signed-off-by: Laurence Rault <laurence.rault@biblibre.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 30708: Rebase - Adjust breadcrumbs
Jonathan Druart [Thu, 6 Jul 2023 10:54:52 +0000 (12:54 +0200)]
Bug 30708: Rebase - Adjust breadcrumbs

To match what has been done on bug 33169 and bug 34418.

Signed-off-by: Laurence Rault <laurence.rault@biblibre.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 30708: Rebase - Use name instead of url for router-links
Jonathan Druart [Thu, 6 Jul 2023 09:27:50 +0000 (11:27 +0200)]
Bug 30708: Rebase - Use name instead of url for router-links

Adjust code to match changes done by bug 32932.

Signed-off-by: Laurence Rault <laurence.rault@biblibre.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
8 months agoBug 30708: Rebase - Rewrite toolbar
Jonathan Druart [Thu, 6 Jul 2023 08:01:31 +0000 (10:01 +0200)]
Bug 30708: Rebase - Rewrite toolbar

Bug 33417 has changed how we handle the toolbars in Vue apps, this patch
is adjusting the 'Preservation' module code on top of it, but also adds
to make it more flexible (see bug 34215).

Signed-off-by: Laurence Rault <laurence.rault@biblibre.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>