Commit Graph

113 Commits

Author SHA1 Message Date
Pedro Amorim 316b1d37b8
Bug 39917: Add new optional 'mark_completed' ILL screen
This new 'Mark completed' screen only shows when ILL_STATUS_ALIAS is not empty, i.e. Koha installations that are not using ILL_STATUS_ALIAS will not see any change in their workflow.
Backends that don't implement 'mark_completed' are inherently already making use of core 'mark_completed' and will automatically adopt this enhancement.
Backends that do implement their own mark_completed don't automatically adopt this enhancement and will not see any change in their workflow.

Test plan:
1) Enable ILLModule sys pref
2) Create a new ILL request:
   <staff_url>/cgi-bin/koha/ill/ill-requests.pl?method=create&backend=Standard
3) Add a type, cardnumber and library. Click 'Create'.
4) You should now be on the manage request screen. Click 'Confirm' and 'Confirm request'.
5) You should be on the manage request screen again. Click 'Mark completed'. The request's status became 'Completed'.
6) Add at least one AV entry to ILL_STATUS_ALIAS av category, visit:
   <staff_url>/cgi-bin/koha/admin/authorised_values.pl?op=add_form&category=ILL_STATUS_ALIAS
7) Add 'abc_code' to 'Authorized value' and 'abc_description' to 'Description'. Click 'Save'.
8) Repeat steps 2 to 5. Notice that when you 'Mark completed' now, a new screen is shown prompting for a status_alias.
9) Pick a status_alias and save. Notice the 'status' now shows the alias.

Sponsored-by: NHS England
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit bb790bea23)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-08-22 09:48:37 +02:00
Pedro Amorim 78b4c764e2
Bug 40026: (QA follow-up): Only compare string if defined
prove /kohadevbox/koha/t/db_dependent/Koha/ILL/Requests.t

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit cb074686b8)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-08-22 09:48:36 +02:00
Pedro Amorim b88aed78a7
Bug 40026: Edit item metadata should present Standard form if AutoILLBackendPriority is in use
When the AutoILLBackendPriority system preference is enabled, the form that was used is always the Standard form, regardless of which backend the request ends up on.
It only makes sense that when editing an ILL request's item metadata, the form shown is also the Standard form if AutoILLBackendPriority is in use.

Test plan, k-t-d, don't apply patch:
1) Enable ILLModule
2) Install an external backend, e.g. the libkey lending tool (IncDocs) backend plugin:
   https://github.com/openfifth/koha-ill-libkey-lending-tool/releases/tag/v2.0.3
3) Restart plack
   $ koha-plack --restart kohadev
4) Create a new IncDocs ILL request:
   <staff_url>/cgi-bin/koha/ill/ill-requests.pl?method=create&backend=IncDocs
5) Add a DOI '123', a cardnumber '42' and any library. Click 'Make request'.
6) Enable AutoILLBackendPriority system preference by ticking 'IncDocs'. This is only done now to simplify the test plan, as creating an 'IncDocs' request using AutoILLBackendPriority requires credentials configuration.
7) Back on the 'Manage request' page for the request created in step 5, click 'Edit item metadata'. Notice the form shown is not the 'Standard' form (its the IncDocs one). Edit any of the metadata values, click 'Save'. Verify the new metadata is saved correctly.
8) Apply patch. Repeat 7). Notice the form shown is the 'Standard' form  now. Edit any of the metadata values, click "Save". Verify the new medata is saved correctly.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit ed3b233f63)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-08-22 09:48:35 +02:00
Pedro Amorim 82c23565be
Bug 40171: Return fail if no transports for patron
Test plan, k-t-d, don't apply patches yet:
1) Enable ILLModule
2) Create a new ill request at:
<staff_url>/cgi-bin/koha/ill/ill-requests.pl?method=create&backend=Standard
3) Pick any type and any library, pick '42' for patron. This is the 'koha' user.
4) Create the request, click 'Send notice to patron'. Pick any template. Notice nothing is shown on the UI.
5) Apply patches. Repeat. Notice you get the message:
  "The requested notice was NOT queued for delivery by email, SMS".
6) Edit the 'koha' patron and tick the following boxes on 'Patron messaging preferences':
   - Interlibrary loan ready
   - Interlibrary loan unavailable
7) Go back to the request and click 'Send notice to patron' and pick any option again. Notice now you get a success message.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 4bd5b58cd9)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-07-24 10:23:27 +02:00
Baptiste Wojtkowski 72f202dfad
Bug 38928: (QA follow-up)
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit ce15eacc5e)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-07-09 11:36:44 +02:00
Pedro Amorim 9c1de15a5f
Bug 38928: Handle rft_id or id
If a semicolon exists, the key should be what's before the semicolon, and its value, whats the after.
Otherwise, default to 'doi' as it was before.

To test:
1) Enable ILLModule.
2) Visit the following URLs
http://localhost:8080/cgi-bin/koha/opac-illrequests.pl?op=create&backend=Standard&openurl=1&genre=article&id=10.1016/j.cognition.2024.105913
http://localhost:8080/cgi-bin/koha/opac-illrequests.pl?op=create&backend=Standard&openurl=1&genre=article&id=doi:10.1016/j.cognition.2024.105913
3) Notice that in both cases, only the doi value '10.1016/j.cognition.2024.105913' should be present in the input.

Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 8b0e4d3c15)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-07-09 11:36:43 +02:00
Pedro Amorim ed3f66e0b8
Bug 39875: Dont show history check
Unless there is a cardnumber or an authenticated user

Test plan:
1) Apply only the the tests file highlighting the issue:
prove t/db_dependent/Koha/ILL/Request/Workflow/HistoryCheck.t
2) Notice it fails.
3) Apply this patch.
4) Run tests again. Notice it passes.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Lin Wei Li <lin-wei.li@inLibro.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 6a0fcefa22)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:40 +02:00
Pedro Amorim 90e18bcaa3
Bug 39444: Make Standard consider pubmedid field
This field may be added by a plugin or jQuery, so Standard should consider it as a possibility.
This patch does not change anything for existing users that do not add a 'pubmed id' field themselves.

1) Enable ILLModule
2) Install the ILL Actions plugin:
https://github.com/PTFS-Europe/koha-plugin-ill-actions/releases/tag/v2.0.1
3) Create a new ILL request:
http://localhost:8081/cgi-bin/koha/ill/ill-requests.pl?method=create&backend=Standard
4) Pick type: 'Journal article', notice a top pop-up for DOI/PubMed ID now shows. This is coming from the plugin.
5) Add something to the pubmedid input like '123'. Notice the metadata is auto-filled.
6) Add a patron cardnumber '42'. Notice the library is automatically picked. Click 'Create'.
7) On the manage request screen, notice the PubMed ID is not shown. This is because it was not saved.
8) Apply patch and repeat.

Signed-off-by: Jeremy Evans <jeremy.evans@ukhsa.gov.uk>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Edit (tcohen): adapted to 38339
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-09 09:12:15 +02:00
Pedro Amorim 25167963e9
Bug 39777: Use cardnumber OR authenticated user cardnumber
Test plan:
1) Apply the 'rollback tests' patch to reinstate the testing of the behavior if a cardnumber is missing (and a user is authenticated)
2) Run tests (they should fail):
    prove t/db_dependent/Koha/ILL/Request/Workflow/HistoryCheck.t
3) Apply this patch. Repeat 2) They should pass.

Test plan for UI:
1) Enable ILLModule and ILLHistoryCheck
2) Create a new ILL on OPAC, visit:
http://localhost:8080/cgi-bin/koha/opac-illrequests.pl?op=add_form&backend=Standard
3) Select type="journal", enter DOI = "123". Create.
4) Repeat steps 2 and 3. A history check screen should be displayed (it is not, before this patch).

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-05-09 09:12:09 +02:00
Tomas Cohen Arazi d7fb4a93fc
Bug 39765: Centralize loaded plugin caching
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Pedro Amorim <pedro.amorim@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-29 17:19:29 +02:00
Pedro Amorim d9c6a1de11
Bug 38441: (QA follow-up): Only look for matchin requests if patron
Previous commit 'HistoryCheck now only considers same patron' added the following regression:
HistoryCheck is performed and shown in the OPAC even if no user is authenticated (using ILLOpacUnauthenticatedRequest).
This fixes that. History check is skipped unless a user exists.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-28 18:51:43 +02:00
Pedro Amorim 4da60d1669
Bug 38441: (QA follow-up): Hackfest feedback
This commit addresses all Hackfest QA related feedback:
1) Update of all strings that required update, including UI messages and
   sys pref description
2) Moved the history check information from staffnotes to its own
   pipe-separated illrequestattribute 'historycheck_requests'
3) Fix display of ILL request information on the history check screen
   (Staff), including proper label naming (e.g. branchcode -> library),
show status description instead of code, uppercase labels.
4) Updated OPAC display to match Staff UI's display of matching history
   requests
5) Removed ISSN criteria for matching requests check
6) Update tests accordingly

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-28 18:51:42 +02:00
Pedro Amorim 9a90757e25
Bug 38441: (QA follow-up): HistoryCheck now only considers same patron
Initial implementation checked existing ILLs for same patron and other patrons.
User testing reported ILLs for other patrons are not helpful, and makes this stage
screen show up much more frequently than it should.

This patch simplifies the original implementation to only consider the
patron of the request being placed for an ILL history check.

It also changes the ID matching to only 'DOI' or only 'Pubmed ID' if any of
those is set. This is to minimize scenarios where different articles from
the same journal come up as matching results e.g. same ISSN but different DOI.

It is also updating tests accordingly.

Other QA improvements

Improve HistoryCheck request list:
- Make link external and show icon (to prevent staff member from clicking away from the historyCheck screen unintentionally)
- Show requests' status
- Show requests' placed date
- Add id_prefix to request ID if possible

Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-28 18:51:41 +02:00
Pedro Amorim 8a51e15616
Bug 38441: (QA follow-up): Handle undef userenv
C4::Context->userenv may be undef (after a reset_all, trying to place an unauthenticated request without being logged).
This change prevents a nasty 500 error trying use undefined as hash

Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-28 18:51:39 +02:00
Pedro Amorim e9ca220884
Bug 38441: HistoryCheck Koha class
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-28 18:51:34 +02:00
Jonathan Druart 1d844a7d2f
Bug 39325: Automatic fix
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-28 18:51:22 +02:00
Pedro Amorim 3b72b9b3ec
Bug 39446: Show both status and status_alias
If a request has a status_alias and that status_alias does not have a lib_opac defined, it'll show as an empty status on the OPAC.
Staff UI always shows the request's status and adds the status_alias only if that is defined. The same should happen on the OPAC.

To test:
1) Enabled ILLModule
2) Create a new ILL request, visit:
http://localhost:8081/cgi-bin/koha/ill/ill-requests.pl?method=create&backend=Standard
3) Add '42' on the cardnumber. Pick any library. Click 'Create'.
4) Add a new 'status_alias' entry, visit the authorized values page:
http://localhost:8081/cgi-bin/koha/admin/authorised_values.pl
5) Search for 'ill_'. Pick 'ILL_STATUS_ALIAS'. Click 'Add a new authorized value'.
6) Enter the 'Authorized value' of 'test', and 'Description' of 'test'. Click 'Save'.
7) Visit the previously created ILL request:
http://localhost:8081/cgi-bin/koha/ill/ill-requests.pl?op=illview&illrequest_id=1
8) Click 'Edit request' from the top toolbar.
9) On the 'Status' dropdown, pick 'test'. Click 'Submit'.
10) Visit the ILL on the OPAC:
http://localhost:8080/cgi-bin/koha/opac-illrequests.pl
11) Notice the 'status' column does not display the status_alias. Click the 'View', notice the 'status' entry does not display the status_alias.
12) Apply patch. Repeat. Notice it defaults to displaying the authorised value code if lib_opac is empty.

Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 19:23:46 +02:00
Tomas Cohen Arazi 1eb55e9c47
Bug 38340: Make Standard ILL backend templates translatable
This patchset moves the `Standard` backend templates into the right
places so they are picked up for translation.

To test:
1. Apply this patches
2. Notice the `Standard` ILL backend works as expected
3. Run:
   $ ktd --shell
  k$ cd misc/translator/po
  k$ git fetch ; git reset --hard origin/main
  k$ cd ..
  k$ perl translate update es-ES
  k$ cd po
  k$ git diff
4. Inside the diff pager, make a search for 'backends/Standard'
=> SUCCESS: There are strings that come from the Standard backend!
5. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 19:23:43 +02:00
Tomas Cohen Arazi a294d72233
Bug 38340: Move templates
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 19:23:42 +02:00
Tadeusz „tadzik” Sośnierz a715c695f7
Bug 39600: Cleanup the changes -- tidy, document, add a missing TT filter
Sponsored-by: Wiko <https://www.wiko-berlin.de/>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 19:23:40 +02:00
Tadeusz „tadzik” Sośnierz 4929170536
Bug 39600: Implement public_read_lists for ILL::Request and ::Attribute
Sponsored-by: Wiko <https://www.wiko-berlin.de/>
Signed-off-by: Pedro Amorim <pedro.amorim@openfifth.co.uk>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 19:23:38 +02:00
Tomas Cohen Arazi 5ca5977da1
Bug 39092: Use pre-loaded plugin
This patch removes plugin loading from the method, and makes it leverage
on the plugin instance already loaded by `load_backend` (if any).

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Pedro Amorim <pedro.amorim@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 18:34:51 +02:00
Tomas Cohen Arazi 459e5ea387
Bug 39092: (follow-up) Do not look for plugins if Standard backend used
If we've been asked the `Standard` backend we shouldn't be trying to
load plugins.

Trivial refactoring of the order things are done.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Pedro Amorim <pedro.amorim@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 18:34:51 +02:00
Tomas Cohen Arazi a3c8e710aa
Bug 39092: Cache the plugin object when loading plugin backend
This patch makes the `load_backend()` method cache the plugin instance
object when calculated. This will reduce the calls in other places where
we query for the plugin.

It is also the excuse to add some tests for this methods which were
lacking.

To test:
1. Apply the unit tests
2. Run:
   $ ktd --shell
 k$ prove t/db_dependent/Koha/Plugins/ILL/Backends.t
=> FAIL: Tests fail, plugin instance caching is not happening
3. Apply this patch
4. Repeat 2
=> SUCCESS: Tests pass!
5. Sign off :-D

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Pedro Amorim <pedro.amorim@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 18:34:50 +02:00
Pedro Amorim f329de03a7
Bug 38339: Make core field descriptions translatable
Test plan, before applying patches:
1) Enable ILLModule and create an ILL request (make sure it has an author and a title)
2) Install es-ES, on ktd run:
   koha-translate -i es-ES --dev kohadev
3) Access the ILL request on the OPAC:
   http://localhost:8080/cgi-bin/koha/opac-illrequests.pl?op=view&illrequest_id=1
4) Activate es-ES language from the footer. Notice 'Title' and 'Author' still show as english
5) Apply patches. restart plack and update translation
   koha-plack --restart kohadev
   koha-translate --update es-ES --dev kohadev
6) Repeat 3). Notice those labels are now translated.
7) Ensure the table renders correctly and displays the data author and title data:
   http://localhost:8080/cgi-bin/koha/opac-illrequests.pl

Signed-off-by: Magnus Enger <magnus@libriotech.no>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 18:34:49 +02:00
Tomas Cohen Arazi bd29a45eda
Bug 36197: Remove incorrect import
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 08:47:12 +02:00
Pedro Amorim e677ba112f
Bug 36197: (QA follow-up): Add public form captcha
Feedback provided by David Cook + Matthias Meusburger at KohaCon24

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 08:47:11 +02:00
Pedro Amorim 3c54da2095
Bug 36197: (QA follow-up): Hackfest followup WIP
Moved unauth data to their respective illrequestattributes entries
instead of staffnotes + opacnotes.
Update confirmation message

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 08:47:10 +02:00
Pedro Amorim 1079481d63
Bug 36197: (QA follow-up): Move unauth_request_data_check to core
Move this out of Standard specific logic.
    Other backends that support unauthenticated requests may want to make use of this and not duplicate code.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 08:47:09 +02:00
Pedro Amorim 251c95a5ba
Bug 36197: (QA follow-up): Move unauthenticated_notes to core
Move this out of Standard specific logic.
Other backends that support unauthenticated requests may want to make use of this and not duplicate code.
Also make these notes translatable.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 08:47:09 +02:00
Pedro Amorim b05ac1b06b
Bug 36197: (QA follow-up): Fix backends filtering in opac_available_backends
This was incorrectly keeping backends that don't support unauthenticated ILL requests if more than one existed.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 08:47:08 +02:00
Pedro Amorim 2216da1126
Bug 36197: (QA follow-up): Make ConfirmAuto::get_priority_backends respect opac_available_backends if OPAC
This makes it so that the Auto ILL stage on OPAC only queries opac_available_backends.
Fix is submitted here and not in bug 35604 because it's here that opac_available_backends is implemented.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 08:47:07 +02:00
Pedro Amorim 1131848b00
Bug 36197: (QA follow-up): Fix testcritic.t
prove t/00-testcritic.t

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 08:47:06 +02:00
Pedro Amorim dc2e51aa5f
Bug 36197: Unauthenticated patron can always place ILL request if ILLOpacUnauthenticatedRequest
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 08:47:04 +02:00
Pedro Amorim 3b1c3c1ec4
Bug 36197: Only check limits for regular requests
Skip for unauthenticated requests

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 08:47:03 +02:00
Pedro Amorim ea11f8eaf5
Bug 36197: Update how the request is added:
- Do not validate borrower if its an unauthenticated request
- Set borrowernumber to null if its an unauthenticated request
- Add staff and OPAC notes with unauthenticated request info

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 08:47:02 +02:00
Pedro Amorim a81975124a
Bug 36197: Update how form params are validated
Validating an unauth request form requires checking for unauth info
fields.
Validating a regular authenticated request requires checking for
borrower information.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 08:47:02 +02:00
Pedro Amorim 0986d54891
Bug 36197: Add UNAUTH Standard request status
Assign this new UNAUTH status for unauthenticated requests

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 08:47:01 +02:00
Pedro Amorim 2eff8bb298
Bug 36197: Refactor -> opac_available_backends method
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 08:47:01 +02:00
Pedro Amorim b3777fbbcb
Bug 36197: Consider unauthenticated_ill in 'Standard' create form
This also makes sure an empty left side bar exists for opac unauthenticated screens

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 08:47:00 +02:00
Pedro Amorim 363244db5b
Bug 36197: Add opac_unauthenticated_ill_requests backend capability to 'Standard' backend
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-25 08:47:00 +02:00
Pedro Amorim 79e1f87a16
Bug 38761: Don't pass the 'all' param when getting plugins
Test plan:
1) Apply tests patch. Run. Notice it fails
2) Apply this patch. Run tests patch. Notice if passes.

UI:
1) Enable ILLModule and install a backend plugin e.g.:
https://github.com/PTFS-Europe/koha-ill-backend-plugin/releases/tag/v2.0.5
2) Create an ILL request:
http://localhost:8081/cgi-bin/koha/ill/ill-requests.pl
3) Notice when you click 'New ILL request', 'PluginBackend' is listed even if the plugin is disabled. This patch fixes that.

If there are existing requests and then their respective backend is disabled, no error occurs as plugins are loaded in the background even if disabled

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:51:12 +02:00
Tomas Cohen Arazi 7a990de29d
Bug 35604: Move available_backends() to Koha::ILL::Request::Config
This patch removes the the Koha::ILL::Backends class as it is not
actually a Koha::Objects-based class as it claims, and also internally
instantiates the config class, which could just hold the only defined
method.

This method is only used in the preferences.pl page, and its occurence
is fixed by this patch.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:51:10 +02:00
Pedro Amorim c083d6e690
Bug 35604: Multiple QA followups
Multiple fixes:
- File permmissions
- Capitalization
- Translatability
- Use of console.log
- Atomic update description typo fix
- Remove occurrences of 'auto' and 'automatic':
  User testing reported that making a UI distinction between 'regular' and 'automatic' ILL requests is redundant.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:51:09 +02:00
Pedro Amorim c51d28e623
Bug 35604: ConfirmAuto workflow stage
Sponsored-by: NHS England
Sponsored-by: PTFS Europe Ltd
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>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:51:05 +02:00
Pedro Amorim a4484edbde
Bug 35604: ILL request creation with AutoILLBackendPriority enabled
Sponsored-by: NHS England
Sponsored-by: PTFS Europe Ltd
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>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:51:05 +02:00
Pedro Amorim a74be1de72
Bug 35604: New Backends.pm class. installed_backends method
Sponsored-by: NHS England
Sponsored-by: PTFS Europe Ltd
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>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:51:03 +02:00
Pedro Amorim e95ec209c1
Bug 32630: Update get_notice
Make it consider the possibility of a patron not existing.
This ensures that placing a request with partners does not error and works as expected even if the ILL request's borrowernumber is undef

To test:
1) Run the test file before and after applying this patch:
prove t/db_dependent/Koha/ILL/Requests.t

To test (ILL request is kept after borrower is deleted):
1) Apply all patches except this one
2) Enable ILLModule and create an ILL request.
3) Add a type, valid cardnumber and library.
4) Delete the associated borrower.
5) Confirm the ILL request is still listed and shown as expected

Continue test, confirm follow-up bug is fixed:
6) Click 'Place request with partners'
7) You get a ERR_TOO_MANY_REDIRECTS error
8) Apply this patch and restart plack. Repeat.
9) Confirm the place request with partners libraries page is shown correctly

Sponsored-by: UKHSA - UK Health Security Agency
Signed-off-by: Jeremy Evans <Jeremy.Evans@ukhsa.gov.uk>
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-03-07 18:03:01 +01:00
Pedro Amorim 0d59a3db8d
Bug 39175: Fix Attributes->Attribute
Bug introduced in FreeForm prior to adding it to core in this commit:
369dffb159 (diff-662970ddc6f6828afd23e6823399a4a32807c4a6c487a0aff86c9d116f60797dR806)

It should've been Koha::Illrequestattribute into Koha::ILL::Request::Attribute not Koha::ILL::Request::Attributes

To test, k-t-d:
1) Enable ILLModule syspref
2) Edit the only patron in k-t-d with the 'Interlibrary loan' category:
<staff_url>/cgi-bin/koha/members/memberentry.pl?op=edit_form&destination=circ&borrowernumber=16
3) Add a valid e-mail address to 'Primary email:'
4) Create a new ILL request:
/cgi-bin/koha/ill/ill-requests.pl?method=create&backend=Standard
5) Add any type, any valid patron cardnumber, any library. Click 'Create'.
6) Click 'Place request with partners'
7) Pick the only available partner library 'FRL-Walker'
8) Click 'Send email'.
9) Notice you get an error. Apply patch & restart plack. Repeat.
10) Confirm the there's no error and message was queue as expected:
$ select * from message_queue;

Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-21 16:41:16 +01:00
Koha Development Team d659526b5a
Bug 38664: Tidy the whole codebase
This commit is generated using:
  % perl misc/devel/tidy.pl
*within* ktd, to get the same version of perltidy than what will be used
by our CI (currently v20230309).

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-11 14:58:24 +01:00