When a hold is waiting, but its holdingbranch does not match the expected location we don't handle this case for display or for inputs on the page. This can cause loss of data when other holds are adjusted as we resubmit all holds when updating. We should adjust the page to only update changed holds, but for now we should handle this case and ensure necessary inputs are always present, and handle the case we have seen. To recreate: 1 - Place two holds on a record for two different patrons, with different pickup locations 2 - Check in one item at expected branch to set waiting 3 - Then either: - Use batch modification or item editor to change the holding branch for the item - Sign in to a different branch and manually transfer the item back to it's home location 4 - View the holds for the record 5 - Note the 'Pickup library' column is blank for that hold 6 - Change pickup location for other hold and press 'Update holds' 7 - Note the waiting hold is still blank, and now second hold has no pickup location
Created attachment 131553 [details] [review] Bug 30266: This patch updates the holds table to always insert a hidden input when a hold is 'found' and covers the case where the hold is 'found' but doesn't match known statuses To test: 1 - Place two holds on a record for two different patrons, with different pickup locations 2 - Check in one item at expected branch to set waiting 3 - Then either: - Use batch modification or item editor to change the holding branch for the item - Sign in to a different branch and manually transfer the item back to it's home location 4 - View the holds for the record 5 - Note the 'Pickup library' column is blank for that hold 6 - Change pickup location for other hold and press 'Update holds' 7 - Note the waiting hold is still blank, and now second hold has no pickup location 8 - Check the DB and note the first hold has had the pickup location changed 8 - Apply patch 9 - Delete holds and repeat 1-4 10 - Note the waiting hold now displays: Hold expected at {Branch}, please checkin to verify status 11 - Change location for second hold and update holds 12 - COnfirm location chanegd correctly and first hold unaffected
Created attachment 131579 [details] [review] Bug 30266: Hide pickup location input on waiting hold This patch updates the holds table to always insert a hidden input when a hold is 'found' and covers the case where the hold is 'found' but doesn't match known statuses To test: 1 - Place two holds on a record for two different patrons, with different pickup locations 2 - Check in one item at expected branch to set waiting 3 - Then either: - Use batch modification or item editor to change the holding branch for the item - Sign in to a different branch and manually transfer the item back to it's home location 4 - View the holds for the record 5 - Note the 'Pickup library' column is blank for that hold 6 - Change pickup location for other hold and press 'Update holds' 7 - Note the waiting hold is still blank, and now second hold has no pickup location 8 - Check the DB and note the first hold has had the pickup location changed 8 - Apply patch 9 - Delete holds and repeat 1-4 10 - Note the waiting hold now displays: Hold expected at {Branch}, please checkin to verify status 11 - Change location for second hold and update holds 12 - COnfirm location chanegd correctly and first hold unaffected Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>
> 3 - Then either: > - Use batch modification or item editor to change the holding branch for > the item > - Sign in to a different branch and manually transfer the item back to > it's home location That second method does not work. If I try to transfer a waiting hold, Koha correctly forces me to address the hold before it will generate the transfer.
Created attachment 132017 [details] [review] Bug 30266: Hide pickup location input on waiting hold This patch updates the holds table to always insert a hidden input when a hold is 'found' and covers the case where the hold is 'found' but doesn't match known statuses To test: 1 - Place two holds on a record for two different patrons, with different pickup locations 2 - Check in one item at expected branch to set waiting 3 - Then either: - Use batch modification or item editor to change the holding branch for the item - Sign in to a different branch and manually transfer the item back to it's home location 4 - View the holds for the record 5 - Note the 'Pickup library' column is blank for that hold 6 - Change pickup location for other hold and press 'Update holds' 7 - Note the waiting hold is still blank, and now second hold has no pickup location 8 - Check the DB and note the first hold has had the pickup location changed 8 - Apply patch 9 - Delete holds and repeat 1-4 10 - Note the waiting hold now displays: Hold expected at {Branch}, please checkin to verify status 11 - Change location for second hold and update holds 12 - COnfirm location chanegd correctly and first hold unaffected Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Pushed to master for 22.05, thanks to everybody involved [U+1F984]
Pushed to 21.11.x for 21.11.05