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>
This patch moves the OPACVirtualCard and OPACVirtualCardBarcode system
preferences from the Suggestions subsection of the OPAC preferences to the
Features subsection.
To test:
1. Apply patch
2. Go to Administration > System preferences > OPAC
3. Search the page (Ctrl + F) for OPACVirtualCard
--> The two preferences (OPACVirtualCard and OPACVirtualCardBarcode)
should be in the Features section
Signed-off-by: Aude Charillon <aude.charillon@openfifth.co.uk>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
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>
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>
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>
prove xt/find-missing-filters.t
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>
It appears the atomic update had wrong permissions:
prove xt/find-misplaced-executables.t
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>
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>
Test plan:
1) Apply patches
2) Run (ignore if using a sandbox):
$ reset_all
3) Visit ILL system preferences:
<staff_url>/cgi-bin/koha/admin/preferences.pl?tab=interlibrary_loans
4) Enable ILLModule and ILLHistoryCheck system preferences
-- STAFF testing --
5) Create a new ILL request, visit:
<staff_url>/cgi-bin/koha/ill/ill-requests.pl?method=create&backend=Standard
6) Pick type = 'Journal article', enter '123' for DOI, '42' for cardnumber and any library. Click create.
7) Repeat 5) and 6). Notice you're now on the 'Request history check' screen. Verify your previous ILL request is listed. Click 'Submit anyway'.
8) Repeat 5) and 6). But pick a different patron cardnumber this time e.g. '23529000035676'.
9) Verify you're not shown the 'Request history check' screen as its a different patron.
-- OPAC testing --
10) Place a new request through the OPAC, visit:
<opac_url>/cgi-bin/koha/opac-illrequests.pl?op=add_form&backend=Standard
11) Pick type = 'Journal article', enter '123' for DOI. Click 'Create'. Notice it shows the 'history check' screen listing the existing requests. Click 'Submit anyway'.
12) Return to the Staff UI:
<staff_url>/cgi-bin/koha/ill/ill-requests.pl
13) Click on the latest ILL request. Verify 'History check requests' is displayed and contains information relating to the already existing ILL requests.
-- Bonus testing --
16) Play around with ILLModuleDisclaimerByType and
ILLOpacUnauthenticatedRequest enabled at the same time as
HistoryCheck (easy)
17) Play around with ILLCheckAvailability and AutoILLBackendPriority
enabled at the same time as HistoryCheck
(reach out for help using these preferences)
Run tests:
$ prove t/db_dependent/Koha/ILL/Request/Workflow/HistoryCheck.t
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>
- Use pre for staffnotes in staff illview
- Ensure <pre> has same font-family as rest of the page
- Render html for staff notes in list. Truncate to 100 chars max
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>
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>
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>
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>
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>
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>
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>
connexion is a product, added to ignore file
tablee -> tables
a few other small corrections
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
TODO: We will need to adjust this path with the db_rev one
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Adjusted path.
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Some files need to be tidy after the automatic commit
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>
We need the md5sum to be adjusted. This should be done by the RM.
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>
We need to adjust kohastructure.sql, sysprefs.sql and the DB itself.
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>
It has been changed (automatically) from "noone" to "no one", which was
wrong.
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>
All the other occurrences have been updated.
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>
because of automatic changes in circ/transferstoreceive.tt
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>
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>
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>
We certainly want to improve this test and run it in parallel.
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>
List of words to ignore
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>
This lists the new syntax for allowing all IPs in the preference
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This patch forces a check of authorized IPs against the Koha system preference, if nothing is present, no access is allowed
To test:
1 - Enable ILS-DI, leave ILS-DI:AuthorizedIPs blank
2 - In another window:
http://localhost:8080/cgi-bin/koha/ilsdi.pl?service=GetAvailability&id=1+2+99999&id_type=item
3 - You get a response
4 - Apply patch and restart all
5 - Reload ilsdi page, 'Not authorized'
6 - Copy the IP listed as refused and paste into ILS-DI:AuthorizedIPs
7 - Reload the page, you get a response again
8 - Change ILS-DI:AuthorizedIPs to:
0:0:0:0/0
9 - You still have access
10 - Paste your specific IP again, and add a second made up IP (comma separated)
11 - Reload and confirm you still have access
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Uncaught SyntaxError: missing ) after argument list
There are way more to fix in this controller...
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This patch ignores limits when updating a wrong transfer to ensure we can return a book
home when checked in at the wrong branch
To test:
1 - Enable UseBranchTransferLimits based on 'Collection code'
2 - Disable transfers for FIC from:
CPL -> FFL
CPL -> IPT
FFL -> CPL
FFL -> IPT
IPT -> CPL
IPT -> FFL
3 - Set library to IPT
4 - Checkin an FFL item
5 - It generates a transfer home
6 - Set library to CPL
7 - Check the item in
8 - 500 error, and in logs:
==> /var/log/koha/kohadev/plack-error.log <==
Exception 'Koha::Exceptions::Item::Transfer::Limit' thrown 'Transfer not allowed'
9 - Apply patch, restart all
10 - Check item in again
11 - Success! Transfer updated
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Use html filters for most of the parameter variables, when possible.
The following parameters do need to be used raw, as they are expected to
contain HTML code or complete url strings:
modal_action
modal_custom_confirm
modal_print_url
modal_custom_utility_button
modal_custom_deny
modal_footer_append
If the caller includes any inputs from elsewhere in the above
parameters, the caller must filter those inputs using the appropriate
TT filter.
This patch also adjusts the handling of header data so that only plain
text should be passed.
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Add t() calls to make text translatable
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Refactor the code for hold-found2 to use the new modal_wrapper and
passthrough_data block as a proof of concept.
The modal is also renamed hold-found-modal.
To test:
Setup:
0. Set system preferences:
- HoldsAutoFill = Don't
- ShowAllCheckins = Show
1. Find a biblio record with multiple items
2. Set the homebranch on all of those items to the logged-in branch
3. Place two holds on that record:
- One for pickup at the logged-in branch (Hold A)
- One for pickup at a different branch (Hold B)
4. Keep the tab for the biblio record open, and open a new tab for
checkins
5. Check in an item from that bib
6. Take a screenshot of the modal on main for easy comparison
7. Ignore the hold
8. Apply patches
Test a hold for pickup at the logged-in branch:
9. Check in the item again
--> Confirm that the new modal contains all the correct information for
Hold A. The only change in the modal should be that the title is now
in the modal body instead of the modal header.
10. Open all of the links in the modal body in new tabs.
--> Confirm the links all work as expected, then close those tabs
11. Click to ignore the hold
--> Confirm that the checkins table displays correctly
12. Reload the Holds tab of the biblio record
--> Confirm the holds are unchanged
13. Switch to the Normal tab of the biblio record
--> Confirm the item still shows as Available
14. Check in the item again and click the button to confirm the hold
--> Confirm that the checkins table displays correctly
15. Reload the Holds tab of the biblio record
--> Confirm Hold A is now set to Waiting
16. Revert the waiting status on Hold A
17. Check in the item again
18. Click the button to confirm and print slip
--> Confirm the print dialog appears and slip information is correct
19. Cancel the print dialog
--> Confirm that the checkins table displays correctly
20. Reload the Holds tab of the biblio record
--> Confirm Hold A is now set to Waiting
Test a hold for pickup at a different branch:
21. Check in a different item from that bib
--> Confirm that the new modal contains all the correct information for
Hold B, and correctly states that the item needs to be transferred
22. Click to ignore the hold
--> Confirm that the checkins table displays correctly
23. Reload the Holds tab of the biblio record
--> Confirm the hold is unchanged
24. Switch to the Normal tab of the biblio record
--> Confirm the item still shows as Available
25. Check in the item again and click the button to confirm and transfer
--> Confirm that the checkins table displays correctly
26. Reload the Holds tab of the biblio record
--> Confirm Hold B is now set to in-transit
27. Revert the transit status on Hold B
28. Check in the item again
29. Click the button to print slip, transfer, and confirm
--> Confirm the print dialog appears and slip information is correct
30. Cancel the print dialog
--> Confirm that the checkins table displays correctly
31. Reload the Holds tab of the biblio record
--> Confirm Hold B is now set to in-transit
32. Change your logged-in branch to match Hold B's pickup location
33. Check in the item again
--> Confirm the modal still contains all the correct information for
Hold B and does not say it needs to be transferred
34. Click to print slip and confirm
--> Confirm that the print dialog appears and looks correct
35. Cancel the print dialog
36. Reload the Holds tab of the biblio record
--> Confirm that both holds are now Waiting
37. Sign off :D
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
There are a number of variable values that need to get passed back to
the controller after submitting a modal to maintain the checkin page's
state. Currently, all of these inputs are manually coded for each modal.
Add a Template Toolkit block that can be used instead to add all of
these mandatory "pass-through" values.
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This patch adds the block modal_wrapper to html_helpers.inc.
NOTE: The caller is responsible for sanitizing all data inputs.
Minimal usage:
[% WRAPPER modal_wrapper modal_id=<id> modal_header_contents=<contents> %]
<modal body goes here>
[ % END %]
The above will produce an informational modal with an "OK" button to
dismiss, and no actions taken.
Optional parameters to add functionality to the modal:
noblock=1 - if the modal should not block
modal_action - if the modal should submit a form, the action url for
the form
To add a "confirm" button that will submit the modal form:
modal_confirm_text - text to show on the button (must be specified)
modal_confirm_name - (optional) specify a name attribute
modal_confirm_val - (optional) specify a value attribute
modal_confirm_accesskey - (optional) specify an accesskey attribute
To add a "print" button that will open a print window to the specified url:
modal_print_text - text to show on the button (must be specified)
modal_print_url - url of the page to print (must be specified)
modal_print_name - (optional) specify a name attribute
modal_print_accesskey - (optional) specify an accesskey attribute
To add a "cancel/deny/dismiss" button:
modal_deny_text - text to show on the button (must be specified)
modal_deny_action - "submit" if the deny button should submit the modal
(to take some denial/cancellation action)
- "dismiss" if the deny button should dismiss the
modal without submitting the form
- This parameter can be omitted if the button should
neither submit nor dismiss the modal (for example,
if the button click will be handled with JS)
modal_deny_name - (optional) specify a name attribute
modal_deny_val - (optional) specify a value attribute
modal_deny_accesskey - (optional) specify an accesskey attribute
If the above generic buttons do not suffice, the below parameters can be
used in addition or instead of the above options to specify custom
button code and/or other customized footer content:
modal_custom_confirm
modal_custom_utility_button
modal_custom_deny
modal_footer_append
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>