]> git.koha-community.org Git - koha.git/log
koha.git
19 months agoBug 32991: Allow for a confirmation title, message, accept_label and cancel_label...
Pedro Amorim [Mon, 27 Feb 2023 15:09:41 +0000 (15:09 +0000)]
Bug 32991: Allow for a confirmation title, message, accept_label and cancel_label in Dialog.vue

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Agustín Moyano <agustinmoyano@theke.io>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 32991: accept is a callback, rename accept to accept_callback
Pedro Amorim [Fri, 24 Feb 2023 17:10:03 +0000 (17:10 +0000)]
Bug 32991: accept is a callback, rename accept to accept_callback

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Agustín Moyano <agustinmoyano@theke.io>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 32991: Style the dialog to be in line with rest of Koha; Fix duplicate HTML eleme...
Pedro Amorim [Fri, 24 Feb 2023 11:32:29 +0000 (11:32 +0000)]
Bug 32991: Style the dialog to be in line with rest of Koha; Fix duplicate HTML element ID

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Agustín Moyano <agustinmoyano@theke.io>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 32991: Add a confirmation message
Jonathan Druart [Fri, 17 Feb 2023 10:45:43 +0000 (11:45 +0100)]
Bug 32991: Add a confirmation message

Looks easier to have a separate variable for the confirmation box, and
easier for styling as well.

Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Agustín Moyano <agustinmoyano@theke.io>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 32991: Improve our Dialog component
Jonathan Druart [Fri, 17 Feb 2023 10:26:38 +0000 (11:26 +0100)]
Bug 32991: Improve our Dialog component

This is picking some improvements made by Agustin on bug 32607.
This patch is only a POC and we should apply this change to the
different delete route.

We will then remove the *FormConfirmDelete components, and the /delete routes

Initially I wanted to have the same behaviour as in other areas of Koha,
and have a separate view for the deletion step. But it's too much
overhead for not much gain.

Additionally we will have to remove messages.js, the aim of this file
was to import the methods to add messages very easily (only 1 import
line). Now we will need 2 lines (it was more when I added messages.js,
because I didn't inject the store). Not a big deal.

Finally, there is something weird in Main.vue we need to fix. The
console is showing a warning
"[Vue warn]: setup() return property "_is_loading" should not start with "$" or "_" which are reserved prefixes for Vue internals."

I had a hard time to display this "loading" modal when the app is
loading all the things it needs. Pinia/store is not available as we are
accessing the methods/actions too earlier. It will be good to fix that
before we decide to move forward with this approach.

Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Agustín Moyano <agustinmoyano@theke.io>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 32977: Add callnumber column to boraccount.tt
Lucas Gass [Wed, 15 Feb 2023 23:05:12 +0000 (23:05 +0000)]
Bug 32977: Add callnumber column to boraccount.tt

To test:
1. Apply patch, restart_all
2. Create a manual invoice for an item that has an item.itemcallnumber
3. Go to the transaction tab and see that the particualar accountline contains a callnumber in the new callnumber column.
4. Make sure you can hide the column, and other columns, correctly via Table settings or via the Column  icon.

Signed off by: Michael Perry (Siskiyou County Library)

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 32746: Standardize structure around action fieldsets in acquisitions
Owen Leonard [Mon, 30 Jan 2023 15:45:32 +0000 (15:45 +0000)]
Bug 32746: Standardize structure around action fieldsets in acquisitions

This patch updates acquisitions templates so that fieldsets with the
"action" class are placed outside the form's main fieldset. A couple of
minor changes have been made to related CSS.

To test, apply the patch and rebuild the staff interface CSS. Go to
acquisitions and check the following pages to confirm that changes to
form structure look correct:

- Open the "Late orders" page from the left-hand sidebar menu and check
  the form in the sidebar.
- Open the "Orders search" form in the search header and submit the form
  without specifying any search criteria. This should bring up a blank
  orders search form.
- Open the "Invoices" page from the left-hand sidebar menu. Check the
  form in the sidebar.
  - Perform an invoice search which will return results.
  - View one of the invoices returned by your search.
  - On the invoice detail age, the "Save" button associated with the
    invoice details at the top should look correct.
  - There should be a box below that with the heading "Adjustments" and
    a link to add an adjustment.
  - When you click "Add an adjustment," a form should be displayed with
    the correct controls at the bottom. Clicking "Cancel" should hide
    the form.
  - Click the "Manage invoice files" link, and check the form on that
    page.
- Locate a vendor and view its details.
  - Check the "Uncertain prices" page, linked from the menu in the
    left-hand sidebar.
  - Open the "Baskets" page from the left-hand sidebar. Click the "Add
    to basket" button for one of the existing baskets.
  - Click "From existing orders (copy)". Check that this form looks
    correct.
  - Open the "Basket groups" page from the left-hand sidebar menu.
    - Click "New basket group" and check that form.

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>
19 months agoBug 33063: Make sure correct subgroup is pre-selected when duplicating reports
Katrin Fischer [Mon, 27 Feb 2023 23:45:12 +0000 (23:45 +0000)]
Bug 33063: Make sure correct subgroup is pre-selected when duplicating reports

When the 'Duplicate' option for reports was used, the all options
would be copied correctly to the new report, but the report sub group.

In this case the templates were created correctly, but the JavaScript
to create the correct pull downs for each group, overwrote the
the selection.

To test:
* Create a some reports with different groups and subgroups and without
* 'Duplicate' your reports and verify that the sub group will always stay empty
* Apply patch
* Verify the correct sub group is now always selected
* Edit/Add some reports to make sure the group/subgroup controls still
  work as expected

Signed-off-by: Sally <sally.healey@cheshiresharedservices.gov.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 33031: Update OPAC lists page to use Bootstrap markup for tabs
Owen Leonard [Tue, 21 Feb 2023 19:52:28 +0000 (19:52 +0000)]
Bug 33031: Update OPAC lists page to use Bootstrap markup for tabs

This patch updates the OPAC lists page with Bootstrap markup for the
static tabs used to link to private and public shelves. These tabs are
not dependent on JavaScript.

To test, apply the patch and click "Lists" -> "Public lists" in the
OPAC. The "Your lists" and "Public lists" tabs should look correct, and
each should link to the correct view.

Signed-off-by: Jacob O'Mara <jacob.omara@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 31858: (QA follow-up) Fix number of tests
Tomas Cohen Arazi [Fri, 10 Mar 2023 13:56:21 +0000 (10:56 -0300)]
Bug 31858: (QA follow-up) Fix number of tests

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 31858: unit tests
Alex Arnaud [Wed, 19 Oct 2022 14:36:18 +0000 (14:36 +0000)]
Bug 31858: unit tests

Signed-off-by: Marius Mandrescu <marius.mandrescu@inLibro.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 31858: add TT syntax for ACQORDER notices
Alex Arnaud [Wed, 19 Oct 2022 11:42:19 +0000 (11:42 +0000)]
Bug 31858: add TT syntax for ACQORDER notices

Test Plan:
    1) Set your ACQORDER notice content to:
        [%- USE Price -%]
        [% bookseller.name %]
        [% FOREACH order IN orders %]
        Ordernumber [% order.ordernumber %] ([% order.biblio.title %] - [% order.biblio.biblioitem.publicationyear %]) (quantity: [% order.quantity %]) ($[% order.listprice | $Price %] each).
        [% END %]
        Thank you,
        [% branch.branchname %]
    2) Set up a vendor with an email, set contact for email so the "E-mail
        order" button shows on a basket for that vendor
    3) E-mail the basket
    4) Check the content is correct

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 33090: Add page-section to accountline-details
Martin Renvoize [Tue, 28 Feb 2023 16:40:34 +0000 (16:40 +0000)]
Bug 33090: Add page-section to accountline-details

This patch adds page-section containers to the accountlines details
display page.

Note: This patch contains whitespace changes, so use diff accordingly.

To test, apply the patch and locate a patron with charges on their
account (lost item fee, account renewal fee, overdue fine, etc).

- From the patron detail page, click the "Accounting" tab in the sidebar
  menu.
- Click the "Transactions" tab.
- Click the "Details" button for an individual charge.
- On the transaction detail page, confirm that the page sections look
  correct.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 33152: Add focus to search field
Matt Blenkinsop [Wed, 8 Mar 2023 12:04:57 +0000 (12:04 +0000)]
Bug 33152: Add focus to search field

This patch adds focus to the search field for a new SQL report from
mana.

Test plan:
1) Navigate to Reports > Create from SQL
2) Click on the new report dropdown and select "New SQL from Mana"
3) Observe that there is no focus on the input and the user needs to
   click to start typing
4) Apply patch
5) Repeat steps 1-2
6) There should now be focus on the input and typing can be started
   immediately

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 31793: (QA follow-up) Require editauthorities flag
Tomas Cohen Arazi [Mon, 6 Mar 2023 20:39:14 +0000 (17:39 -0300)]
Bug 31793: (QA follow-up) Require editauthorities flag

This patch makes the route require the right permissions. Tests are
adjusted to reflect this new situation.

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

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 31793: (QA follow-up) DelAuthority doesn't return errors
Tomas Cohen Arazi [Mon, 6 Mar 2023 20:36:38 +0000 (17:36 -0300)]
Bug 31793: (QA follow-up) DelAuthority doesn't return errors

DelAuthority doesn't return an error, so the only possible error
conditions are exceptions, that are unknown for now. Removing the error
checking control structure and the 409 error returning, which is
inherited from DelBiblio's call on the biblios endpoint.

It will now just return a 500 in the event of an unhandled internal
error.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 31793: Add REST endpoint to delete authorities
Agustin Moyano [Wed, 7 Dec 2022 15:05:35 +0000 (12:05 -0300)]
Bug 31793: Add REST endpoint to delete authorities

To test:
1. Apply patch
2. Set RESTBasicAuth preference to true
3. Get the id of an authority
4. Make a DELETE request to /api/v1/authorities/{authid}
5. Check that the authority was deleted
6. Sign off

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>
19 months agoBug 33161: Unit tests
Tomas Cohen Arazi [Thu, 9 Mar 2023 22:23:03 +0000 (19:23 -0300)]
Bug 33161: Unit tests

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

Edit: added missing test for unmapped attribute

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 33161: (follow-up) Remove stray variables and fix POD
Tomas Cohen Arazi [Thu, 9 Mar 2023 14:36:27 +0000 (11:36 -0300)]
Bug 33161: (follow-up) Remove stray variables and fix POD

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 33161: Clarify method names
Martin Renvoize [Thu, 9 Mar 2023 13:14:04 +0000 (13:14 +0000)]
Bug 33161: Clarify method names

The api_strings_mapping method isn't really only about api strings.. we
deal with database fields in and out.. we just happen to then use those
in to_api to map in the api.

This patch simply renames the standard method whilst we're still early.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 33161: (follow-up) Consistent use of db fields throughout
Martin Renvoize [Thu, 9 Mar 2023 12:43:05 +0000 (12:43 +0000)]
Bug 33161: (follow-up) Consistent use of db fields throughout

We should stick to DB field names as long as possible to allow re-use
and only convert to api field names via to_api_mapping at the last
moment inside the parent to_api function.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 33161: Add +strings support to GET /items and /items/:item_id
Tomas Cohen Arazi [Tue, 7 Mar 2023 23:51:35 +0000 (20:51 -0300)]
Bug 33161: Add +strings support to GET /items and /items/:item_id

This patch introduces the `api_strings_mapping` method to the
*Koha::Item* class, and makes the API spec for the following routes:

* GET /items
* GET /items/:item_id
* GET /acquisitions/orders

accept the new `+strings` parameter that can be passed through the
`x-koha-embed` header and was introduced by bug 26635. In the case of
/acquisitions/orders, you will need to use

x-koha-embed: items+strings

I introduce it here to highlight the flebility we introduced with bug
26635.

The `api_strings_mapping` method has its roots on the cool
`columns_to_str` method already present. The main differences:

* It is aware of the `public_read_list` for attributes so no hidden
  information is exposed.
* Attribute names get mapped for consistency with the API (e.g.
  `homebranch` is converted into `home_library_id`, etc).
* The data structure it returns includes information about the source
  for the descriptions (e.g. it it is an authorised value, then `type`
  will be `av`, and the related category information is returned so
  dropdowns and such can be built. The same goes for other types as
 `library`, `item_type` and `call_number_source`.

To test:
1. Apply this patch
2. Reload everything
3. Play with your favourite REST tool (e.g. Postman)
4. Try:
GET http://localhost:8081/api/v1/items
x-koha-embed: +strings
=> SUCCESS: You get a list of items, they include the new _strings
structure, and the contents make sense!
5. Repeat with a specific item:
GET http://localhost:8081/api/v1/items/14
x-koha-embed: +strings
=> SUCCESS: It all makes sense!
6. Sign off :-D

Sponsored-by: Virginia Polytechnic Institute and State University
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 3831: Add a warning to about page when there is no FA framework
Nick Clemens [Fri, 3 Mar 2023 20:41:21 +0000 (20:41 +0000)]
Bug 3831: Add a warning to about page when there is no FA framework

The feature is effectively disab;ed throughout Koha when this framework
is deleted. There do not appear to be any other side effects.

We should report this on the about page for informatinal purposes

To test:
1 - Apply patch
2 - Check about page, no change
3 - sudo koha-mysql kohadev
    UPDATE biblio_framework SET frameworkcode = 'FB' WHERE
    frameworkcode = 'FA'
4 - Refresh about page
5 - Note new warning
6 - sudo koha-mysql kohadev
    UPDATE biblio_framework SET frameworkcode = 'FA' WHERE
    frameworkcode = 'FB'
7 - Refresh about page
8 - No warning

Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 33189: Make plugin upload look for .kpz files in file picker
David Cook [Fri, 10 Mar 2023 05:23:24 +0000 (05:23 +0000)]
Bug 33189: Make plugin upload look for .kpz files in file picker

This change configures the file picker to look for *.kpz files instead
of *.* files, which makes it more convenient to locate .kpz files
for upload when uploading plugins.

Test plan:
0. Apply patch
1. Go to http://localhost:8081/cgi-bin/koha/plugins/plugins-upload.pl
2. Click on "Choose file"
3. Note that the file type in the box at the bottom right of the screen
defaults to "KPZ File (*.kpz)
4. If you navigate to a directory that contains .kpz files (like Downloads),
you'll now see directory folders and .kpz files.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19 months agoBug 32675: Fix guarantor selection when simple quote present
Jonathan Druart [Wed, 22 Feb 2023 15:31:54 +0000 (16:31 +0100)]
Bug 32675: Fix guarantor selection when simple quote present

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>
19 months agoBug 33173: Save and continue button in standard cataloging module broken
Nick Clemens [Wed, 8 Mar 2023 18:49:57 +0000 (18:49 +0000)]
Bug 33173: Save and continue button in standard cataloging module broken

To test:
1 - Edit a record in the standard editor
2 - Click on to tab 2
3 - Click 'Save and continue'
4 - Error: tab is not defined
5 - Apply patch
6 - Reload page and try again
7 - Fixed!

Signed-off-by: Laura Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32924: (follow-up) Add left margin to 'Show mine only' label
Pedro Amorim [Thu, 9 Feb 2023 15:14:52 +0000 (15:14 +0000)]
Bug 32924: (follow-up) Add left margin to 'Show mine only' label

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32924: Add the ability to filter agreement by logged in user
Jonathan Druart [Thu, 9 Feb 2023 13:00:56 +0000 (14:00 +0100)]
Bug 32924: Add the ability to filter agreement by logged in user

This patch adds a new filter checkbox at the top of the agreement list
"Show only mine" that will display agreements linked with the logged in
user.

Test plan:
Create several agreements, add your current logged in user to some of
them
On the agreement list view us the new checkbox to filter the agreements
and see those where you are involved in.

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 33155: Fix category and library filters in patron search header
Jonathan Druart [Tue, 7 Mar 2023 12:55:19 +0000 (13:55 +0100)]
Bug 33155: Fix category and library filters in patron search header

Caused by
  commit f1925cf89dbc1039fc48abfabad1472289387148
  Bug 7380: Rename filter to avoid confusion

     [% IF categorycode %]
-        $("#categorycode_filter").val("[% categorycode %]");
+        $("#categorycode_filter").val("[% categorycode_filter %]");
     [% END %]
     [% IF branchcode %]
-        $("#branchcode_filter").val("[% branchcode %]");
+        $("#branchcode_filter").val("[% branchcode_filter %]");
     [% END %]

Forgot to rename the vars in the IF statements

Test plan:
Go to the Koha mainpage
Click "Search patrons" in the headers
Open the filters
Select something for library and category, search
=> The values must be picked for the patron search

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: (follow-up) Remove special:undefined
Martin Renvoize [Tue, 7 Mar 2023 14:36:18 +0000 (14:36 +0000)]
Bug 31028: (follow-up) Remove special:undefined

There's a cleaner way to achieve this now using `additional_filters` and
passing a function.

This patch removes the `special:undefined` handling, replacing it with a
single field filter passed as a function via additional_filters.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: (follow-up) Fix executable bit
Martin Renvoize [Tue, 7 Mar 2023 13:30:02 +0000 (13:30 +0000)]
Bug 31028: (follow-up) Fix executable bit

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: (follow-up) Fix missing whitespace on patron-title
Martin Renvoize [Tue, 7 Mar 2023 13:24:50 +0000 (13:24 +0000)]
Bug 31028: (follow-up) Fix missing whitespace on patron-title

This patch restores some missing whitespace in the patron-title include.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32558: (QA follow-up) Move ForkManager to required
Marcel de Rooy [Tue, 7 Mar 2023 12:12:48 +0000 (12:12 +0000)]
Bug 32558: (QA follow-up) Move ForkManager to required

Thx Martin Renvoize for noting this.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32613: (follow-up) Cache the tables
Nick Clemens [Fri, 3 Mar 2023 16:43:54 +0000 (16:43 +0000)]
Bug 32613: (follow-up) Cache the tables

This shouldn't be expected to change, except maybe after an upgrade,
seems worth caching.

To test:
1 - Apply patch
2 - Confirm the feature still works

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32613: Add database tables to autocomplete
Jacob O'Mara [Wed, 1 Mar 2023 11:02:34 +0000 (11:02 +0000)]
Bug 32613: Add database tables to autocomplete

This patch adds a database call to get the table and column names in the
database and parse them into the autocomplete engine.

Test Plan:
As previous commit but also check for column/table names in the
autocomplete popup

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>
20 months agoBug 32613: Add autocomplete to SQL reports editor
Jacob O'Mara [Mon, 23 Jan 2023 16:03:20 +0000 (16:03 +0000)]
Bug 32613: Add autocomplete to SQL reports editor

This adds auto-complete for the sql reports editor codemirror instance.
To prevent a regression in syntax highlighting the overlay mode
'sqlPlaceholders' has been removed and replaced with a highlighting
engine that works correctly with the autocomplete engine.

Test Plan:
1. Navigate to reports and create a new sql report
2. Write an Sql query and observe that there is no autocomplete options
3. Apply patch
4. Write a new Sql query and observe that there are now auto-complete
   options that can be navigated through with the arrow keys and
   accepted with either tab or the enter keys.
5. Ensure that items bounded in << >> or [[ ]] are still syntax
   highlighted post-patch

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>
20 months agoBug 31794: (follow-up) Add description to authorities tag
Agustin Moyano [Wed, 7 Dec 2022 18:32:48 +0000 (15:32 -0300)]
Bug 31794: (follow-up) Add description to authorities tag

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31794: Add REST endpoint to get an authority
Agustin Moyano [Tue, 6 Dec 2022 20:07:02 +0000 (17:07 -0300)]
Bug 31794: Add REST endpoint to get an authority

To test:
1. Apply patch
2. Set RESTBasicAuth preference to true
3. Get the id of an authority
4. Make a GET request to /api/v1/authorities/{authid} with one of the following content type header
  - application/json
  - application/marcxml+xml
  - application/marc-in-json
  - application/marc
  - text/plain
5. Check that you get the authority in the corresponding format
6. Sign off

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 33095: Text is white on white when hovering over pay/writeoff buttons in paycollect
Owen Leonard [Wed, 1 Mar 2023 19:03:33 +0000 (19:03 +0000)]
Bug 33095: Text is white on white when hovering over pay/writeoff buttons in paycollect

The "Make a payment" page uses unusual navigation for the switch between
the "Pay" and "Write off" views: Bootstrap nav pills. The style on these
is a little muddled because a mix of Bootstrap and custom CSS is at
work.

This patch adds some CSS specific to nav pills and removes some
ambiguous CSS. Two links in the template get a dummy "#" href attribute
to make them work better with default styles.

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

 - Locate a patron who has outstanding charges (lost item charge,
   account renewal fee, overdue fine, etc.).
 - From the patron checkout or detail page, click the "Accounting" tab
   in the left hand sidebar.
 - Click the "Pay" button on one of the oustanding charges.
 - On the "Pay an individual fine" page, confirm that there is a button
   and a link at the top of tab panel: "Pay" and "Write off." The
   "Pay" button should green with white text, the "Write off" button
   should be white with green text.
 - Click the "Write off" button and the styles of the links should be
   reversed.
 - Confirm that the CSS changes do not affect the appearance of the main
   navigation bar at the top of the page.

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>
20 months agoBug 33071: Show tooltip when hovering on home icon in staff interface breadcrumbs
Owen Leonard [Wed, 1 Mar 2023 19:23:09 +0000 (19:23 +0000)]
Bug 33071: Show tooltip when hovering on home icon in staff interface breadcrumbs

This patch modifies the breadcrumbs WRAPPER in html_helpers.inc so that
the default "Home" link has a title attribute set to "Home."

To test, apply the patch and view any page which has been updated to use
the breadcrumbs WRAPPER. For example, cities administration, the
staff interface home page, the about page.

Hover your mouse over the house icon in the breadcrumb navigation and
you should see a "Home" tooltip.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32679: Use different CSS classes for titles of article requests in staff interface
Katrin Fischer [Fri, 20 Jan 2023 13:51:53 +0000 (13:51 +0000)]
Bug 32679: Use different CSS classes for titles of article requests in staff interface

The class article-request-title was used for the column with the
article title as well as for the link with the record title. This could
cause some confusion when changing the table with CSS. This patch makes
it so different CSS classes are used for each.

To test:
* Activate article requests in system preferences
* Make sure circulation conditions have article requets = yes
* Create an article request in staff or OPAC
* View the list of article requests in the patron account in staff
* Add the following line to IntranetUserCSS:
  .article-request-title { display:none; }
* Verify the Title column and the title from Record title (first column)
  have vanished.
* Apply patch: now only the column should vanish, Record title shoudl remain
  visible
* If you want: Verify that the record title has a differently named
  class now.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32492: (follow-up) Add missing HTML filters
Owen Leonard [Mon, 13 Feb 2023 13:37:32 +0000 (13:37 +0000)]
Bug 32492: (follow-up) Add missing HTML filters

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32492: Add IDs to the rows of the patron messaging table in OPAC and staff interface
Katrin Fischer [Fri, 10 Feb 2023 22:28:40 +0000 (23:28 +0100)]
Bug 32492: Add IDs to the rows of the patron messaging table in OPAC and staff interface

Sometimes you want to hide notice from the messaging options
becaue the library is not using it. With this patch, we'll
have unique IDs on the <tr> to do so easily.

To test:
* Look at the messaging preferences
  * in the OPAC messaging tab
  * in the staff interface details tab
  * in the staff interface patron edit form
* Verify there are no classes or IDs on the rows or other elements
* Apply patch
* Verify there are nice IDs now on the table rows (tr elements)
  for each message.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32658: (follow-up) Use more unique variable name to avoid collisions
Owen Leonard [Mon, 6 Feb 2023 16:21:44 +0000 (16:21 +0000)]
Bug 32658: (follow-up) Use more unique variable name to avoid collisions

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32658: Use template wrapper in order from staged file template
Owen Leonard [Tue, 17 Jan 2023 19:28:04 +0000 (19:28 +0000)]
Bug 32658: Use template wrapper in order from staged file template

This patch implements the template WRAPPER system (see Bug 32571) for
building tabs on the page for adding to a basket from a staged
file.

To test you need an active vendor, at least one basket for that vendor,
and a staged MARC file.

Apply the patch and go to Acquisitions -> Vendor -> Basket -> Add to
basket -> From a staged file.

- Click "Add to orders" on one of your staged files.
- On the "Add orders from..." page you should see three tabs, the first
  one active.
- Tabs should look correct and work correctly.

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>
20 months agoBug 33000: (follow-up) Add spans for translatability
Owen Leonard [Thu, 23 Feb 2023 22:29:16 +0000 (22:29 +0000)]
Bug 33000: (follow-up) Add spans for translatability

This patch finds places in the updated breadcrumbs markup where a
translatable string is isolated in a way that makes it hard for the
translation script to find it, and wraps these strings with <span>

This follow-up includes a change to admin/cities.tt as well.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 33000: Use template wrapper for breadcrumbs: Acquisitions part 1
Owen Leonard [Thu, 5 Jan 2023 18:40:06 +0000 (18:40 +0000)]
Bug 33000: Use template wrapper for breadcrumbs: Acquisitions part 1

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

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

- Acquisitions home
  - Vendor search results
  - Basket details
    - Cancel order
    - Create EDIFACT order
    - Basket edit
    - Basket deletion confirmation
    - Add to basket
      - From a staged MARC file
      - From existing orders (copy)
  - Basket groups (create, edit)
  - EDIFACT messages

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 33068: Use template wrapper for breadcrumbs: Administration part 3
Owen Leonard [Fri, 6 Jan 2023 16:09:42 +0000 (16:09 +0000)]
Bug 33068: Use template wrapper for breadcrumbs: Administration part 3

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

Note: The patch includes indentation changes, so ignore whitespace
when viewing the diff.

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

Administration ->
 - Circulation and fine rules -> Clone rules
 - Table settings
 - Credit types ->
   - New credit type
   - Edit credit type
 - Curbside pickup
 - Currencies and exchange rates ->
   - New currency
   - Edit currency
   - Confirm deletion
 - Debit types ->
   - New debt type
   - Edit debit type
 - Desks ->
   - New desk
   - Edit desk
   - Confirm deletion
 - Did you mean?
 - EDI accounts
   - New account
   - Edit account
   - Confirm deletion

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32705: Display the column if 1 order has an invoice price
Jonathan Druart [Wed, 15 Feb 2023 07:56:22 +0000 (08:56 +0100)]
Bug 32705: Display the column if 1 order has an invoice price

On 25655 we added a new patch to store the invoice unitprice and
currency even if it's the active currency. Here we then want to display
the column if at least one order has an invoice price in a currency that
is not the active one.

Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32705: Display invoice price
Jonathan Druart [Tue, 7 Feb 2023 08:19:01 +0000 (09:19 +0100)]
Bug 32705: Display invoice price

On bug 25655 we are storing the unit price and currency used for
invoicing. Here we are displaying them on the invoice page.

Test plan:
Reuse the test plan from 25655 and go to the invoice page
Notice that a new 'Invoice price' column is displayed if at least one
order of the invoice had a price given in a foreign currency

We could discuss the display of the prices here, we've decided to not
format them.
We cannot do better for now as we are not storing the format along with
the currency.

Sponsored-by: The Research University in the Helmholtz Association (KIT)
Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 25655: DBRev 22.12.00.011
Tomas Cohen Arazi [Mon, 6 Mar 2023 17:01:15 +0000 (14:01 -0300)]
Bug 25655: DBRev 22.12.00.011

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 25655: DBIC schema
Tomas Cohen Arazi [Mon, 6 Mar 2023 16:45:51 +0000 (13:45 -0300)]
Bug 25655: DBIC schema

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 25655: Store invoice price and currency even if no currency change
Jonathan Druart [Wed, 15 Feb 2023 07:54:36 +0000 (08:54 +0100)]
Bug 25655: Store invoice price and currency even if no currency change

We could need these info to be stored even if the currency is the same
as the active one, for statistic purpose for instance.

Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 25655: Add tests
Jonathan Druart [Mon, 23 Jan 2023 21:27:56 +0000 (22:27 +0100)]
Bug 25655: Add tests

And fix a bug they caught. We need to undef if a modification is made
and invoice_currency is removed.

Sponsored-by: The Research University in the Helmholtz Association (KIT)
Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 25655: Select currency and prefill unitprice with previous receipt
Jonathan Druart [Mon, 16 Jan 2023 21:51:31 +0000 (22:51 +0100)]
Bug 25655: Select currency and prefill unitprice with previous receipt

In case of partial order we want to prefill the unit price and the
currency with the value of the previous receipt.

Sponsored-by: The Research University in the Helmholtz Association (KIT)
Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 25655: Save values from ModOrderReceive
Jonathan Druart [Mon, 16 Jan 2023 21:37:09 +0000 (22:37 +0100)]
Bug 25655: Save values from ModOrderReceive

Sponsored-by: The Research University in the Helmholtz Association (KIT)
Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 25655: Store actual cost in foreign currency and currency from the invoice
Jonathan Druart [Mon, 16 Jan 2023 20:59:38 +0000 (21:59 +0100)]
Bug 25655: Store actual cost in foreign currency and currency from the invoice

Bug 24158 allows to calculate the actual cost on time of receive from a foreign currency.
This new enhancement is storing the price and the currency in database, into two new columns
invoice_unitprice an invoice_currency

Test plan:
Create a new order with several items to receive
Receive one or more items, and tick "change currency" on the order
receive page
Select a currency and finish the receiving
In DB notice that the price and the currency have been stored.
Receive remaining items and confirm that the form is prefilled with
previous price and currency

Sponsored-by: The Research University in the Helmholtz Association (KIT)
Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 25655: REST API specs
Jonathan Druart [Mon, 16 Jan 2023 20:59:11 +0000 (21:59 +0100)]
Bug 25655: REST API specs

Sponsored-by: The Research University in the Helmholtz Association (KIT)
Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 25655: DB changes
Jonathan Druart [Mon, 16 Jan 2023 20:09:05 +0000 (21:09 +0100)]
Bug 25655: DB changes

Sponsored-by: The Research University in the Helmholtz Association (KIT)
Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32558: (QA follow-up) Leave default to 1, remove extra fork
Marcel de Rooy [Fri, 17 Feb 2023 07:25:08 +0000 (07:25 +0000)]
Bug 32558: (QA follow-up) Leave default to 1, remove extra fork

The default of 1 resembles the old behavior: 1 fork for the job.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32558: Add ability for background_jobs_worker.pl to process multiple jobs simulta...
Kyle M Hall [Tue, 3 Jan 2023 15:35:42 +0000 (15:35 +0000)]
Bug 32558: Add ability for background_jobs_worker.pl to process multiple jobs simultaneously up to a limit

Right now background_jobs_worker.pl only processes jobs in serial. It would make sense to handle jobs in parallel up to a user definable limit.

Test Plan:
1) Apply this patch
2) Stop background_jobs_worker.pl
3) Generate some background jobs by editing records, placing holds, etc
4) Watch processes in a new terminal: watch -n 0.1 'ps aux | grep background_jobs_worker.pl'
5) Run background_jobs_worker.pl with parameter -m 3 or some other
   number of max processes
6) Note the multiple forked processes in the ps output

Test notes - also tested the following on KTD:
1. Stop background_jobs_worker.pl
2. Edit /etc/koha/sites/kohadev/koha-conf.xml - set max_processes to 10
3. Generate some background jobs
4. Watch processes in a new terminal: watch -n 0.1 'ps aux | grep background_jobs_worker.pl'
5. Restart all
6. Confirm multiple forked processes in the ps output

Both methods work as expected and generate multiple forked processes
based on the value set for max processes.

Signed-off-by: emlam <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: DBRev 22.12.00.010
Tomas Cohen Arazi [Mon, 6 Mar 2023 14:42:56 +0000 (11:42 -0300)]
Bug 31028: DBRev 22.12.00.010

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: DBIC schema
Tomas Cohen Arazi [Mon, 6 Mar 2023 14:24:40 +0000 (11:24 -0300)]
Bug 31028: DBIC schema

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: (QA follow-up) Add koha_object(s)_class methods to TicketUpdate.pm
Kyle M Hall [Fri, 17 Feb 2023 16:58:12 +0000 (16:58 +0000)]
Bug 31028: (QA follow-up) Add koha_object(s)_class methods to TicketUpdate.pm

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: (follow-up) Move html_helpers into notices
Martin Renvoize [Wed, 15 Feb 2023 16:38:17 +0000 (16:38 +0000)]
Bug 31028: (follow-up) Move html_helpers into notices

This patch removes the addition of html_helpers out of C4::Letters and
into the relevant notice templates where it belongs.

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>
20 months agoBug 31028: (follow-up) Mark public as boolean
Martin Renvoize [Mon, 6 Feb 2023 10:57:37 +0000 (10:57 +0000)]
Bug 31028: (follow-up) Mark public as boolean

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: Unit tests for ticket update api's
Martin Renvoize [Mon, 6 Feb 2023 09:47:02 +0000 (09:47 +0000)]
Bug 31028: Unit tests for ticket update api's

This patch adds the missing unit tests for the ticket updates api
endpoints.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: Unit tests for ticket create notice triggers
Martin Renvoize [Fri, 3 Feb 2023 13:23:45 +0000 (13:23 +0000)]
Bug 31028: Unit tests for ticket create notice triggers

This patch adds unit tests for the two notices that can be triggered
upon ticket creation.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: Update patron and biblio includes to remove whitespace
Martin Renvoize [Wed, 14 Dec 2022 17:16:05 +0000 (17:16 +0000)]
Bug 31028: Update patron and biblio includes to remove whitespace

These includes used lots of [% %] blocks instead of [%- -%] and as such
the produced markup contains superflous spacing.  This is OK in the
browser, but for some reason does affect rendering in HTML email.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: (follow-up) Fix notices whitespace
Martin Renvoize [Wed, 9 Nov 2022 11:18:08 +0000 (11:18 +0000)]
Bug 31028: (follow-up) Fix notices whitespace

We we're using [% %] rather than [%- -%] in our the notice template
introduced with this patchset.  This leads to some interesting rendering
results in some email clients.  Using the proper whitespace ignoring
template markup fixes the situation.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: (follow-up) Add <br> to notices
Martin Renvoize [Fri, 4 Nov 2022 15:14:14 +0000 (15:14 +0000)]
Bug 31028: (follow-up) Add <br> to notices

This should resolve the lack of linebreaks in resulting emails

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: (follow-up) Fix permissions names
Martin Renvoize [Fri, 4 Nov 2022 12:02:48 +0000 (12:02 +0000)]
Bug 31028: (follow-up) Fix permissions names

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: Add feedback to the patron on submission
Martin Renvoize [Thu, 3 Nov 2022 15:55:39 +0000 (15:55 +0000)]
Bug 31028: Add feedback to the patron on submission

This patch adds a success alert box when a patron submits a concern
sucessfully.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: (follow-up) Consistently style help-block
Martin Renvoize [Wed, 2 Nov 2022 11:37:09 +0000 (11:37 +0000)]
Bug 31028: (follow-up) Consistently style help-block

This patch updates the opac and staff modals to set the help-block
inside a div instead of a paragraph element allowing for the wysiwyg
edited content to display as prescribed.

We move the scss inside the fieldset definition to ensure we are
specific enough to catch only the intended elements.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: (follow-up) Update notice module codes
Martin Renvoize [Wed, 2 Nov 2022 10:50:28 +0000 (10:50 +0000)]
Bug 31028: (follow-up) Update notice module codes

This patch updates the notice codes from 'catalog' to 'catalogue' to be
consistent with the existing codebase.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: (follow-up) Rename TICKET_ACKNOWLEDGE
Martin Renvoize [Wed, 2 Nov 2022 08:34:35 +0000 (08:34 +0000)]
Bug 31028: (follow-up) Rename TICKET_ACKNOWLEDGE

TICKET_ACKNOWLEDGEMENT was too long for the database field size, drop
the 'MENT' to ensure it fits.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: Only show pending concerns if there are some
Martin Renvoize [Tue, 1 Nov 2022 15:21:24 +0000 (15:21 +0000)]
Bug 31028: Only show pending concerns if there are some

This patch adds logic to catch when pending_biblio_tickets equals zero.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: (follow-up) System preference terminology
Martin Renvoize [Tue, 1 Nov 2022 15:16:30 +0000 (15:16 +0000)]
Bug 31028: (follow-up) System preference terminology

Capitalise NOTE and swap 'client' for 'interface'.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: Add display to details page
Martin Renvoize [Tue, 25 Oct 2022 15:02:09 +0000 (16:02 +0100)]
Bug 31028: Add display to details page

This patch adds the display of biblio specific concerns to the biblio
detail display page.

Test plan
1) Enable the feature as in prior patch test plans
2) Add a concern as per prior patch test plans
3) Confirm that a new tab appears at the bottom of the catalog record
   details display and all functionality from the concern management
   page is precent.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: Add ability to report concerns from the staff interface
Martin Renvoize [Tue, 25 Oct 2022 14:33:04 +0000 (15:33 +0100)]
Bug 31028: Add ability to report concerns from the staff interface

This patch brings the CatalogConcerns feature to the staff client
allowing non-cataloguers to report issues with catalog records from the
record details page.

Test plan
1) Enable the new `CatalogConcerns` system preference
2) Confirm that without the `edit_catalogue` permission your user can
   submit a catalog concern via `New -> New catalog concern` from the
   toolbar on a records detail display.
3) Confirm that the right user was recorded as the reporter on the
   catalog concern management page (You must have logged in again as a
   user with the `edit_catalogue` permission to see this page.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: Add email notification of cataloguers on submissions
Martin Renvoize [Tue, 25 Oct 2022 14:26:33 +0000 (15:26 +0100)]
Bug 31028: Add email notification of cataloguers on submissions

This patch adds an optional cataloger notification to email the
cataloging team whenever a new catalog concern is reported.

Test plan
1) Enable `OpacCatalogConcerns`
2) Add at least one email address to the new `CatalogerEmails`
   prefernce (a comma delimited list is also allowed).
3) Confirm that a default template has been added to the Notices
   management, `TICKET_NOTIFY`.
4) Submit a new concern using the OPAC
5) Confirm that an email is sent to those email addresses listed in
   CatalogerEmails.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: Add catalog concern management page to staff
Martin Renvoize [Tue, 25 Oct 2022 13:03:11 +0000 (14:03 +0100)]
Bug 31028: Add catalog concern management page to staff

This patch adds a catalog concern management page to the staff client
accessible via the cataloging home page and a new 'Pending catalog
concerns' link on the front page.

This includes added the requisit ticket_updates api endpoints and notice
triggers and templates for notifying patrons of changes to their
reported concerns.

Test plan
1) Enable the `OpacCatalogConcerns` system preference
2) Catalog concern management is tied to your users ability to edit the
   catalog, `editcatalogue`.
3) Confirm that you can see 'Catalog concerns' listed on the cataloging
   home page if you have the `editcatalogue` permission and not if you
   do not.
4) Add a new concern as an opac user.
5) Confirm that once a concern is present in the system you see a count
   of 'catalog concerns pending' on the intranet main page if you have
   the `editcatalogue` permission.
6) Click through either the cataloging home page or pending concerns
   link on the main page to view the new concerns management page.
7) Confirm the table displays as one would expect.
8) Confirm clicking on details or the concern title exposes a 'details'
   modal with the option to add an update or resolve the concern.
9) Verify that if selecting 'notify' when updateing or resolving a
   concern triggers a notice to be sent to the opac user who first
   reported the issue.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: Add acknowledgement notice
Martin Renvoize [Tue, 25 Oct 2022 12:50:58 +0000 (13:50 +0100)]
Bug 31028: Add acknowledgement notice

This patch adds an acknowledgement notice that will be sent to the opac
user upon submission of a catalog concern report.

Test plan
1) Confirm that a new notice template is added to the notices management
   page.
2) If using a sandbox, check the 'email log' from the management UI to
   see the resultant notice has been 'sent'

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: Add configurable help text and templates
Martin Renvoize [Tue, 25 Oct 2022 12:40:32 +0000 (13:40 +0100)]
Bug 31028: Add configurable help text and templates

This patch adds configurable help text and a template option to the
catalog concern report modal in the OPAC.

Test plan
1) Enable `OpacCatalogConcerns` preference
2) Build the CSS for the OPAC
3) Check that there is a 'CatalogConcernHelp' block listed in the HTML
   Customisations page.
4) On the OPAC navigate to a record and click the 'Report a concern'
   button.
5) Confirm that the content of 'CatalogConcernHelp' displays beneath the
   detail entry box and that it displays as expected.
6) Check that there is a 'CatalogConcernTemplate' block listed in the
   HTML customisations page.
7) On the OPAC 'Report a concern' modal, you should see the content of
   the 'CatalogConcernTemplate' block pre-filled in the details
textarea.

Note: There is a caveat to the template.. as textarea can only be used
to submit plaintext with this patch and as such the template needs to
not utilise the WYSIWYG editor else you will be faced with raw HTML
inside your textarea.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: Add ability to report catalog concerns from the OPAC
Martin Renvoize [Tue, 25 Oct 2022 12:34:40 +0000 (13:34 +0100)]
Bug 31028: Add ability to report catalog concerns from the OPAC

This patch adds the ability for patrons to report catalog concerns via
the opac.

Test plan
1) Enable the new `OpacCatalogConcerns` system preference
2) Navigate to the record details page of a biblio record on the OPAC
3) You should see a new 'Report a concern' option in the right side
   actions box
4) If not logged in you should have the login modal displayed and upon a
   successful login you should be redirected back to the details page
   with a new model displayed for entering concern details
5) Submit your concern with a title and details.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: Add `OpacCatalogConcerns` preference
Martin Renvoize [Tue, 25 Oct 2022 12:30:57 +0000 (13:30 +0100)]
Bug 31028: Add `OpacCatalogConcerns` preference

Enabling this preference should allow catalog concerns to be added by
logged in patrons on the opac.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: Add API's for tickets
Martin Renvoize [Tue, 25 Oct 2022 12:14:19 +0000 (13:14 +0100)]
Bug 31028: Add API's for tickets

This patch adds basic CRUD API's for the ticket endpoints.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: Add new Koha::Object(s) classes
Martin Renvoize [Tue, 25 Oct 2022 12:07:44 +0000 (13:07 +0100)]
Bug 31028: Add new Koha::Object(s) classes

This patch adds new Koha::Object(s) for the newly introduced tables,
including updateing existing Koha::Objects adding new relations as
required.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: New DBIC Schema files
Martin Renvoize [Tue, 25 Oct 2022 12:04:33 +0000 (13:04 +0100)]
Bug 31028: New DBIC Schema files

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31028: Add `tickets` and `ticket_updates` tables
Martin Renvoize [Tue, 25 Oct 2022 11:59:10 +0000 (12:59 +0100)]
Bug 31028: Add `tickets` and `ticket_updates` tables

This patch adds the new `tickets` and `ticket_updates` tables for
tracking catalog concern tickets.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32472: Fix wrong POD for bookseller->subscriptions
Marcel de Rooy [Thu, 15 Dec 2022 10:04:14 +0000 (10:04 +0000)]
Bug 32472: Fix wrong POD for bookseller->subscriptions

You should not call this in list context anymore after
bug 29844.

Test plan:
Check pod of Bookseller.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Emmi Takkinen <emmi.takkinen@koha-suomi.fi>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32678: Add new line in authorized values tests in search_for_data_inconsistencies.pl
Fridolin Somers [Thu, 19 Jan 2023 07:12:48 +0000 (21:12 -1000)]
Bug 32678: Add new line in authorized values tests in search_for_data_inconsistencies.pl

In search_for_data_inconsistencies.pl, the test for authorized values is a list in one line :
* The Framework *VR* is using the authorised value's category *LOC*, but the following items.location do not have a value defined ({itemnumber => value }):
 {94 => AV} {95 => AV} {96 => AV} {97 => AV} {98 => AV} {99 => AV} {100 => AV} {101 => AV} {102 => AV} {103 => AV}

It would be more clear with new lines, especially for scripts (grep, awk ...) :
* The Framework *VR* is using the authorised value's category *LOC*, but the following items.location do not have a value defined ({itemnumber => value }):
 {94 => AV}
 {95 => AV}
 {96 => AV}
 {97 => AV}
 {98 => AV}
 {99 => AV}
 {100 => AV}
 {101 => AV}
 {102 => AV}
 {103 => AV}

Test plan :
1) In koha-testing-docker
2) Delete in authorized values LOC the value AV
3) Run misc/maintenance/search_for_data_inconsistencies.pl
=> You see the new line in result

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>
20 months agoBug 32811: Remove useless lines for indexer.log
Marcel de Rooy [Fri, 3 Feb 2023 09:55:27 +0000 (09:55 +0000)]
Bug 32811: Remove useless lines for indexer.log

See also bug 32612.
The output option includes the stdout.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31665: Set today date for date cataloguing plugin
Jonathan Druart [Wed, 1 Feb 2023 09:47:27 +0000 (10:47 +0100)]
Bug 31665: Set today date for date cataloguing plugin

dateaccessioned.pl must pick today's date when the input gets the focus
on.

Test plan:
Edit an item, or create a new one.
Confirm that today's date is prefilled into the date's input when it's
empty and that it gets the focus on

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Michael Adamyk <madamyk@ckls.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32819: Fix cataloguing/value_builder/stocknumberam123.pl
Julian Maurice [Fri, 3 Feb 2023 10:58:51 +0000 (11:58 +0100)]
Bug 32819: Fix cataloguing/value_builder/stocknumberam123.pl

Use event parameter

This is part of the refactoring happening in bug 30975

Test plan:
1. Verify that the plugin continues to work as before

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>
20 months agoBug 32815: Fix cataloguing/value_builder/callnumber.pl
Julian Maurice [Fri, 3 Feb 2023 10:58:51 +0000 (11:58 +0100)]
Bug 32815: Fix cataloguing/value_builder/callnumber.pl

Use event parameter

This is part of the refactoring happening in bug 30975

Test plan:
1. Verify that the plugin continues to work as before

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>
20 months agoBug 31471: Send multiple ISBN with 'OR' for FindDuplicate
Nick Clemens [Fri, 24 Feb 2023 14:04:34 +0000 (14:04 +0000)]
Bug 31471: Send multiple ISBN with 'OR' for FindDuplicate

When a record has multiple ISBNs the database stores them seperated by a
pipe

Zebra interprets a string like "isbn:1600213510 | 9781600213519" as an 'OR' search, but for
Elasticsearch we need to explicitly send "OR" - and Zebra support this
as well

To test:
1 - Make sure you are using Elasticsearch
2 - Cataloging->Add a new record from Z3950
3 - Choose target: LOC
4 - Search for: Control number: 14455023
5 - Import and save
6 - Search for the record again
7 - Import and save - duplicate check isn't been triggered
8 - Apply patch
9 - restart_all
10 - repeat 2-7
11 - this time you should get a duplicate notification
12 - Sitch SearchEngine syspref to 'Zebra'
13 - repeat 2-7
14 - Ensure you still get duplicate notification

Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 33044: Return job id if there is no connection to rabbit
Nick Clemens [Wed, 22 Feb 2023 18:13:35 +0000 (18:13 +0000)]
Bug 33044: Return job id if there is no connection to rabbit

This patch simply ensures we return the job id even if we couldn't send
the job to rabbit.

To test:
1 - In KTD: sudo service rabbitmq-server stop
2 - sudo koha-worker --stop kohadev; sudo koha-worker --queue long_tasks --stop kohadev
3 - In staff client enqueue a batch item modification - note the link to view the enqueued job has no id in the url and takes you to the main background jobs viewer
4 - Run t/db_dependent/Koha/BackgroundJob.t and notice that it fails.
5 - Apply patch
6 - Restart all
7 - Enqueue a new batch item modification
8 - Confirm the link works and has the correct id
9 - Run t/db_dependent/Koha/BackgroundJob.t; it should pass now.

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>
20 months agoBug 32674: Fix placing a hold at the OPAC for serials
Jonathan Druart [Tue, 28 Feb 2023 08:13:19 +0000 (09:13 +0100)]
Bug 32674: Fix placing a hold at the OPAC for serials

Placing a hold at the OPAC explodes with a 500 when the record is a
serial
DBIx::Class::Storage::DBI::_dbh_execute(): DBI Exception: DBD::mysql::st execute failed: Column 'biblionumber' in where clause is ambiguous at /usr/share/koha/lib/Koha/Objects.pm line 394

Test plan:
* Create a serial subscription for an existing bibliographic record
* Place a hold on this record at the OPAC

Signed-off-by: Janusz Kaczmarek <januszop@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 33145: Fix ERM swagger specs
Martin Renvoize [Mon, 6 Mar 2023 10:02:04 +0000 (10:02 +0000)]
Bug 33145: Fix ERM swagger specs

This patch adds the missing 'Provider name' parameter definition to the
various ERM paths that were missing it.

Test plan
1) Run:
   docker run --rm -v $PWD/api/v1/swagger:/swagger \
          jeanberu/swagger-cli \
          swagger-cli validate swagger/swagger.yaml
=> FAIL: The spec is not valid!
2) Apply this patch
3) Repeat 1
=> SUCCESS: Tests pass!

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Edit: tcohen edited the test plan because of the failure to install
swagger-cli cleanly
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>