Commit Graph

104 Commits

Author SHA1 Message Date
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
Pedro Amorim 92fd65840a
Bug 38751: Update Standard ILL backend migrate
Make use of newly updated ILL::Request->extended_attributes method instead of creating the query manually

The test plan in bug 38819 fails without this patch (page explodes with duplicate ID error).
It's the same cause as the one being fixed here in bug 38751 so I'm submitting this here.

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-01-10 19:19:26 +01:00
Pedro Amorim 6526e00374
Bug 38751: Update Standard ILL backend add_request
Make use of newly updated ILL::Request->extended_attributes method instead of
creating the query manually

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-01-10 19:19:25 +01:00
Pedro Amorim 9fc470c0a8
Bug 38751: Update ILL::Request->extended_attributes
This updates the extended_attributes method to also act as setter.
Additionally, it'll skip adding any attribute that result in error,
preventing an ugly error 500.

Test plan:
1) Enable ILLModule sys pref
2) Attempt to create the following openurl request through the OPAC:
   http://localhost:8080/cgi-bin/koha/opac-illrequests.pl?DOI=10.1001%2Fjama.2024.11146&atitle=Interventions%20for%20High%20Body%20Mass%20Index%20in%20Children%20and%20Adolescents%3A%20US%20Preventive%20Services%20Task%20Force%20Recommendation%20Statement.&aulast=Nicholson%2C%20Wanda%20K.&backend=FreeForm&cardnumber=53807898&date=20240716&genre=article&id=DOI%3A10.1001%2Fjama.2024.11146&issn=00987484&issue=3&method=create&opac=1&openurl=1
3) Notice it fails with a Duplicate ID error and the OPAC blows up.
   This is because Koha is trying to add the 'DOI' illrequestattribute
   twice and that is resulting in a duplicate ID
4) Apply patches, repeat test plan, notice the error no longer happens,
   the request is created correctly and all successful attribute have
   been added.

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-01-10 19:19:24 +01:00
Pedro Amorim 9b8ea2dc6a
Bug 36221: (QA follow-up): Fix translation entry concat
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-11-13 17:00:50 +01:00
Katrin Fischer 733e353512
Bug 36221: (QA follow-up) Capitalization: Please Note
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-11-12 17:50:29 +01:00
Owen Leonard 407fe2fa56
Bug 36221: (follow-up) Style and markup fixes
This patch makes several changes to make the updated forms more
consistent with how other pages work:

- Form labels should have ":" after them.
- Form fields should have a hint when they are required.
  - Required fields should not be indicated with an asterisk.
- In the OPAC, <select> should have a "form-select" class if the form is
  otherwise being styled with Bootstrap classes.
- Primary submit buttons should have a "btn btn-primary" class.
- The Font Awesome 6 icon for a delete operation is "fa-trash-can."
- Error messages should be wrapped in <div class="alert alert-warning">.
- All language strings in JS files should be wrapped in __('').
- Terminology: "Library" instead of "Branch," "Patron" instead of
  "Member."

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-11-12 17:50:28 +01:00
Victor Grousset/tuxayo 0205a5c5f1
Bug 36221: (QA follow-up): fix space between the 2 custom fields <input>
It was missing in the JS that adds new empty custom fields.

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-11-12 17:50:27 +01:00
Pedro Amorim 3c74dac38d
Bug 36221: (QA follow-up): Fix opac check
To address Victor's comment #32

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-11-12 17:50:27 +01:00
Victor Grousset/tuxayo 742a56944e
Bug 36221: (QA follow-up): add placeholder attr to staff custom fields
In the prepopulated fields when editing item metadata that had custom
fields (tt generated). So it's consistent when adding new empty fields
(done in JS)

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-11-12 17:50:26 +01:00