Sometimes a library gets a new edition, or a new copy of an item and would like to be able to directly provide this to a patron with an existing hold. We propose add a new action on the holds table on request.pl 'Move hold' For an item level hold it would provide a modal with a barcode entry box so librarians can scan a new copy in hand, and move the hold to that specific item For a biblio level hold it would provide a modal with a search box - entering keywords would search the catalog, and add a 'Move hold' button to the results - similar to 'Add to basket form existing record' search in acquisitions
We would love to see this capability! It would be ideal if moving all holds on the bib at once were built in. This would be helpful for bibs with many (over 50) holds on them.
This would be a fantastic solution to a problem we've been having with re-orders of older titles, where we get the newer edition as a replacement. Our current workaround creates some pretty yucky metadata.
(In reply to Felicity Brown from comment #2) > This would be a fantastic solution to a problem we've been having with > re-orders of older titles, where we get the newer edition as a replacement. > Our current workaround creates some pretty yucky metadata. Same for us.
This function would be fantastic for our library. Currently, our processes to move holds is time consuming and prone to errors. This would be great! One thing to specifically note is that the date that the hold was placed on the original item would be preserved. This was the order of the holds queue could be preserved and sorted in the the holds on the new item.
This sounds good! I totally agree that currently the transfer of the holds takes time and the possibility of errors is high. I think these are the things that can go wrong now while doing the hold transfer and should be considered when building this function: - It should be taken into account whether the hold has been suspended or whether it is a itemlevel hold or a non-urgent hold. - In addition, you must choose the right pick-up location for the hold, change the hold date and priority of the hold.
I agree. We are facing the same situation. A new action on the holds table on request.pl 'Move hold' would be very helpful
Created attachment 179226 [details] [review] Bug 31698: Add alter_hold_targets permission
Created attachment 179235 [details] [review] Bug 31698: Add new move_hold_item subroutine to Hold.pm
Created attachment 179236 [details] [review] Bug 31698: Implement move_hold_item in request.pl
Created attachment 179279 [details] [review] Bug 31698: Make move_hold_item use CanItemBeReserved and add logging
Created attachment 179287 [details] [review] Bug 31698: Template and javascript changes to request.tt
Created attachment 179290 [details] [review] Bug 31698: Report errors and failures back to request.tt
Created attachment 179291 [details] [review] Bug 31698: Deal with priority
Created attachment 179292 [details] [review] Bug 31698: Improve priority
Created attachment 179295 [details] [review] Bug 31698: Flip the logic for priority
Created attachment 179704 [details] [review] Bug 31698: Add missing filters
Created attachment 179711 [details] [review] Bug 31698: Use _ShiftPriority to deal with priority
Created attachment 179713 [details] [review] Bug 31698: Call _FixPriority on orginal biblio to clean-up priorty
Created attachment 181222 [details] [review] Bug 31698: Add alter_hold_targets permission
Created attachment 181223 [details] [review] Bug 31698: Add new move_hold_item subroutine to Hold.pm
Created attachment 181224 [details] [review] Bug 31698: Template and javascript changes to request.tt
Created attachment 181225 [details] [review] Bug 31698: Report errors and failures back to request.tt
Created attachment 181226 [details] [review] Bug 31698: Add missing filters
Created attachment 181228 [details] [review] Bug 31698: Add alter_hold_targets permission
Created attachment 181229 [details] [review] Bug 31698: Add new move_hold_item subroutine to Hold.pm and request.pl
Created attachment 181230 [details] [review] Bug 31698: Template and javascript changes to request.tt
Created attachment 181231 [details] [review] Bug 31698: Report errors and failures back to request.tt
Created attachment 181232 [details] [review] Bug 31698: Add support for moving record level holds
Created attachment 181233 [details] [review] Bug 31698: Combine item and record level subroutines
Created attachment 181234 [details] [review] Bug 31698: Add ability to move holds to new items or new records
Created attachment 181929 [details] [review] Bug 31698: Fix modals for item level moves
Created attachment 181930 [details] [review] Bug 31698: Fix modals for biblio level moves
Created attachment 181944 [details] [review] Bug 31698: Add alter_hold_targets permission
Created attachment 181945 [details] [review] Bug 31698: Add ability to move holds to new items or new records
Created attachment 181946 [details] [review] Bug 31698: Fix modals for item level moves
Created attachment 181947 [details] [review] Bug 31698: Fix modals for biblio level moves
Created attachment 181948 [details] [review] Bug 31698: Add unit tests
Created attachment 181951 [details] [review] Bug 31698: Add alter_hold_targets permission
Created attachment 181952 [details] [review] Bug 31698: Add ability to move holds to new items or new records
Created attachment 181953 [details] [review] Bug 31698: Fix modals for item level moves
Created attachment 181954 [details] [review] Bug 31698: Fix modals for biblio level moves
Created attachment 181955 [details] [review] Bug 31698: Add unit tests
Created attachment 181956 [details] [review] Bug 31698: Disallow moving waiting or intransit holds
Created attachment 181957 [details] [review] Bug 31698: Add alter_hold_targets permission
Created attachment 181958 [details] [review] Bug 31698: Add ability to move holds to new items or new records Test plan: 1. APPLY PATCH, updatedatabase, restart_all 2. Have two staff members. 1. Superlibrarian, 2. Staff with new permission to `alter_hold_targets` 3. Now place some holds on different record, you'll want some item level holds and some record level holds. 4. After placing some holds go to a record with some holds on it. 5. Go to the holds tab (reserve/request.p) 6. You should notice a disabled 'Move selected (0)' button, next to 'Cancel selected (0)' 7. Select some holds to move, ensure that the number updates accordingly. ( Move selected (2) ) 8. When you click the button you should see 2 options, 'Item level holds to a different item' and 'Record level holds to a different record' 9. Clicking on either should bring up a modal with information about the holds you selected to move. 10. If you have item level holds and you select 'Item level holds to a different item' those holds should appear pre-checked. 11. If you have item level holds and you select 'Record level holds to a different record' those holds checkboxes should be disabled by default, you should see the 'Problem' as 'Cannot move a waiting or record level hold' 12. If you are moving a item level hold you should see a searchbar labeled 'Enter the item barcode of new hold target:'. 13. Enter a full or partial barcode and click search 14. You should see your item, if it exists. 15. Check 'Move all selected item level holds to this item', once you do so the yellow 'Move selected holds' button should be enabled. 16. Click 'Move selected holds', the hold should be moved. 17. You should see a message like " Moved the following holds: Hold ID: 1854 - Moved from The Arden edition of the works of William Shakespeare. to The Arden edition of the works of William Shakespeare." 19. Do steps 12 - 17 again, but with a record level hold. 20. Now make or have many holds on a specific target record to test priority. Make note of the current priority 21. Now move a hold on to that record, testing both item and record level holds. 22. Now on the target record review the priority. The holds originally on the record should not have changed. The hold you move should now have the lowest priority on the record. 23. Check the original record, if a hold was moved all other priority should have been adjusted correctly. FOr example, if the hold you moved was 3 of 4 then the others should have adjusted priority of 1 2 3 now. 24. Turn on HoldsLog if it is disabled. 25. Move some holds, both item and record ones, and review the logs after each one. There should be a correct MODIFY entry for each move. 26. Make an item with a hold on it as damaged and turn on AllowHoldsOnDamagedItems. Try to move the hold, you should get an error telling you that the target item is damaged. 27. Now login as the non-superlibrarian patron from step 2. If they have the `alter_hold_targets` permission they should see the 'Move selected' button. 28. Revoke the `alter_hold_targets` permission. The button should not appear now.
Created attachment 181959 [details] [review] Bug 31698: Fix modals for item level moves
Created attachment 181960 [details] [review] Bug 31698: Fix modals for biblio level moves
Created attachment 181961 [details] [review] Bug 31698: Add unit tests
Created attachment 181962 [details] [review] Bug 31698: Disallow moving waiting or intransit holds
Created attachment 182639 [details] [review] Bug 31698: Disallow moving waiting or intransit holds Signed-off-by: kristi <kkrueger@cuyahogalibrary.org>
Re: Step 25, I do see in the hold log a modify entry. For example, if I created a hold on bib 20, and I move it to bib 8, the log shows the create entry with 'biblionumber'=20 and the modify entry with 'biblionumber=8 for the same object number. Re: Step 26, I think this was supposed to be set AllowHoldsOnDamagedItems to "don't allow" If this is correct, then the error message shows as expected (see attached screenshot). If it is indeed supposed to be a turn on, that is Allow for this system preference, there is no error message. One final thing, sometimes on moving record level holds, it shows the checkbox/"Move all selected record level holds..." message twice (see attached RecordLevel_ListTwice.PNG) I didn't think this was big enough not to sign off, but I wanted to call it out.
Created attachment 182640 [details] Error Message for Don't allow holds on damaged items
Created attachment 182641 [details] Checkbox for record level moves sometimes shows twice
Bug 23269 is going to conflict with this one, I'll need to rebase this on top of that one.
(In reply to Lucas Gass (lukeg) from comment #54) > Bug 23269 is going to conflict with this one, I'll need to rebase this on > top of that one. Well, maybe not. Bug 23269 has some problems and I don't want to wait.