Recalls cronjobs and expiry fixes

From Koha Wiki
Jump to navigation Jump to search

Fixing recalls cronjobs and improving the expiry functionality, sponsored by Waikato Institute of Technology.

Fixes include:

  • (hopefully) fixed the overdue and expiry recalls cronjobs
  • fixed the expiration date not saving in the db correctly, and not showing in recalls tables correctly
  • added a minimum date to the expiration date when placing a recall on the OPAC side - as currently you can set the expiration date to before the recall is placed!
  • fixed the 'checkin and set waiting' button on the recalls queue (circ/recalls_queue.pl) and biblio recalls page (recalls/request.pl?biblionumber=X) - if there was a biblio-level recall and the item had been returned but the recall not set to waiting, this button did not work
  • added the 'Expire' option to biblio recalls page (recalls/request.pl?biblionumber=X), waiting recalls (circ/recalls_waiting.pl), member checkouts (circ/circulation.pl?borrowernumber=Y) and member details (members/moremember.pl?borrowernumber=Y)
  • moved recall actions into dropdown menu on biblio recalls page (recalls/request.pl?biblionumber=X) and waiting recalls (circ/recalls_waiting.pl)
  • fixed bug where recall actions only work on first row in a table

Getting started

We need three borrowers (Borrower A, Borrower B, Borrower C) and a biblio (Biblio A) with one item (Item A). You need to be able to log in to the OPAC as both Borrower B and Borrower C.

Test plan (this will take four days of testing)

Day 1

  1. Adjust your circulation rules for testing. Set 'recall pickup period' to 1 and 'recall due date interval' to 0 (Recall pickup period cannot be set to 0, otherwise it will default to using the system preference RecallsMaxPickUpDelay)
  2. Check out Item A to Borrower A
  3. Log in to OPAC as Borrower B and place biblio-level recall on Item A (Recall A)
  4. Log in to OPAC as Borrower C and place any type of recall on Item A, set the expiration date to expire tomorrow (Recall B). Notice you must select a date that is today or in the future
  5. Log back into the staff side
  6. Go to the recalls page for the biblio you placed the recall on (recalls/request.pl?biblionumber=X) and confirm the expiration date shows for Recall B
  7. Click the actions dropdowns for both recalls, confirm both dropdowns open and show the options 'Cancel' and 'check in and set waiting' - don't press any buttons
  8. Go to Borrower A's page and confirm their checkout is due today

Day 2

  1. Check that the status for Borrower B's recall (Recall A) now says 'overdue to be returned'
  2. Check in Item A. Confirm the item as waiting for Borrower B

Day 3

  1. Confirm Borrower C's recall (Recall B) has now been expired due to no longer being needed - check Old recalls (circ/recalls_old_queue.pl) or borrower recall history (members/recallshistory.pl?borrowernumber=Y)

Day 4

  1. Confirm Borrower B's recall (Recall A) has now been expired due to surpassing recall pickup period - check Old recalls (circ/recalls_old_queue.pl) or borrower recall history (members/recallshistory.pl?borrowernumber=Y)
  2. Check out Item A to Borrower A again
  3. Log into the OPAC as Borrower B and place a recall on Item A
  4. Log back into the staff side and check in Item A. Set the recall as waiting for Borrower B
  5. Go to Borrower B's detail page (members/moremember.pl?borrowernumber=Y) and confirm you are able to successfully expire the recall
  6. If you like, you can do this test again and check expiring the recall works on the member checkouts page (circ/circulation.pl?borrowernumber=Y)
  7. Check out Item A to Borrower A again
  8. Log into the OPAC as Borrower B and place a recall on Item A
  9. Log back into the staff side and check in Item A. Do not set the recall as waiting
  10. Go to the biblio recall page (recalls/request.pl?biblionumber=X) and click the 'Check in and set waiting' button. Confirm this works successfully

Other links

Go back to main recalls page