https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=42383 --- Comment #99 from Tomás Cohen Arazi (tcohen) <tomascohen@gmail.com> --- Created attachment 209759 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=209759&action=edit Bug 42383: (QA follow-up) Fix check-in page findings from browser testing This patch fixes differences with the legacy returns.pl page found by testing both pages side by side in the browser. Changes: - Main.vue: a transfer modal disables the barcode input when TransfersBlockCirc is set, so a scanner cannot check in the next item behind it. The input is focused again once the transfer is resolved. - ConfirmationModal.vue: "Cancel hold" is only offered for holds that are already waiting, as on the legacy page. On an unconfirmed record-level hold it failed with a 500 (Koha::Hold->cancel needs an item to calculate the cancellation fee). - stores/checkin.js: confirming a hold that needs a transfer shows the transfer (destination and reason) on the row. - CheckedInItems.vue: due and acquisition dates are formatted with $date() (dateformat syspref) instead of the browser locale. - POST /checkins accepts the item+strings, hold.patron+strings and recall.patron+strings embeds. The table shows shelving location, item type and collection descriptions, and the hold/recall modals show the patron category description, instead of the codes. - The transfer modal no longer shows "Already returned": was_returned is set on every return and the legacy page never displayed it. - Patron card numbers are shown next to the patron names. - The item type check-in message gets a label in the status column. - The print button reads "Print slip, transfer, and confirm (P)" when the hold needs a transfer, as on the legacy page. Test plan: 1. Apply patch and rebuild: $ ktd --shell k$ yarn api:bundle && yarn js:build && restart_all 2. Set TransfersBlockCirc to "Block", AutomaticItemReturn to "Do", HoldsAutoFill to "Don't", and set your browser language to one that uses day/month dates (e.g. Spanish) 3. Check out to a patron: an item from another library (A), an item with a shelving location (B), an item with a record-level hold for pickup at another library (C) 4. Go to Circulation > Check in, check in A => SUCCESS: The transfer modal shows, the barcode input is disabled => SUCCESS: No "Already returned" message in the modal 5. Scan B with the modal open => SUCCESS: Nothing is checked in 6. Click "Yes, transfer" => SUCCESS: The barcode input is enabled and focused 7. Check in B => SUCCESS: Dates follow the dateformat syspref => SUCCESS: Shelving location and item type show their descriptions => SUCCESS: The patron card number is shown 8. Check in C => SUCCESS: The patron category description and card number show => SUCCESS: There is no "Cancel hold" button => SUCCESS: The print button reads "Print slip, transfer, and confirm" 9. Click "Confirm hold and transfer" => SUCCESS: The row shows the destination library and "Hold" reason 10. Check in an item with a waiting hold, click "Cancel hold", pick a reason and confirm => SUCCESS: The hold is cancelled with the chosen reason 11. Run: k$ prove t/db_dependent/api/v1/checkins.t xt/api.t => SUCCESS: Tests pass! 12. Sign off :-D Assisted-by: Opus 5.5 (Anthropic) Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org> -- You are receiving this mail because: You are watching all bug changes.