Want easy way to clear a hold when picked up by other patron

Bug #1661688 reported by Dan Pearl
30
This bug affects 5 people
Affects Status Importance Assigned to Milestone
Evergreen
Fix Released
Wishlist
Unassigned

Bug Description

From MassLNC (Vicki Turcotte) item #2690:

It is very common for one person to pick up holds for other people in their family. You can override the stop to allow the checkout to the pickup patron, but there is no easy way to clear or cancel the family member's hold. It automatically becomes open again and must be deleted separately by staff.

Revision history for this message
Dan Pearl (dpearl) wrote :

Changing the UI in the XUL client seems involved. I am working on a solution in the web-based client.

Changed in evergreen:
assignee: nobody → Dan Pearl (dpearl)
Revision history for this message
Kathy Lussier (klussier) wrote :

Adding a link to a previous list discussion on this topic:
http://georgialibraries.markmail.org/thread/c3pm2jzgx45p4plf

Revision history for this message
Dan Pearl (dpearl) wrote :
Changed in evergreen:
assignee: Dan Pearl (dpearl) → nobody
tags: added: pullrequest
Changed in evergreen:
milestone: none → 3.0-alpha
Revision history for this message
Dan Pearl (dpearl) wrote :
Galen Charlton (gmc)
Changed in evergreen:
importance: Undecided → Wishlist
Revision history for this message
Mike Rylander (mrylander) wrote :

Thanks, Dan! This looks like a good improvement, and doesn't forestall the "friends" variant.

I have one nit to pick, though, that may require some input. The global default for the new checkbox is to be checked, which is a behavioral change. As a rule we try not to push a configurable behavior change at upgrades, so I think this should probably not insert the setting at the top of the org tree as it does currently, and rely on the release notes to inform ILS admins about the new feature and how to configure it.

Thoughts?

Revision history for this message
Dan Pearl (dpearl) wrote :

I agree with your suggestion, and will submit a new branch soon.

Changed in evergreen:
assignee: nobody → Dan Pearl (dpearl)
tags: removed: pullrequest
Revision history for this message
Dan Pearl (dpearl) wrote :
Changed in evergreen:
assignee: Dan Pearl (dpearl) → nobody
tags: added: pullrequest
Kathy Lussier (klussier)
Changed in evergreen:
assignee: nobody → Kathy Lussier (klussier)
Revision history for this message
Kathy Lussier (klussier) wrote :

Hi Dan,

I tested this code, but I'm having trouble with the scenario where I choose the option to Cancel the hold for the other user. When I choose that option, the hold is indeed canceled, but the checkout does not occur. I see the following message in the Console:

net.js:119 error calling method open-ils.circ.checkout.full.override : 500 : *** Call to [open-ils.circ.checkout.full.override] failed for session [0.209453098711193771504024847181], thread trace [0]:
Can't call method "usr" on an undefined value at /usr/local/share/perl/5.18.2/OpenILS/Application/Circ/Circulate.pm line 885.

The item remains on the Holds Shelf with a Cancelled status.

Also, in reference to Mike's earlier comment, I think the precedent has been to set a Null value for that setting rather than setting it to False.

Thanks for your work on this!
Kathy

Revision history for this message
Dan Pearl (dpearl) wrote :

Thanks for the review, Kathy,

I will look into those issues.

Changed in evergreen:
assignee: Kathy Lussier (klussier) → Dan Pearl (dpearl)
tags: removed: pullrequest
Revision history for this message
Jason Stephenson (jstephenson) wrote :

Rather, just don't set the setting at all. The code that looks up settings returns a null value if it isn't set.

Changed in evergreen:
milestone: 3.0-beta → 3.next
Revision history for this message
Jason Stephenson (jstephenson) wrote :

I took a look at this branch and resolved Kathy's error in comment #8. I also changed the code to flesh the hold usr that was added by Dan's branch. We don't need to flesh text fields on a fleshed object. We only need to flesh the user.

I didn't make any other changes to the code, but I did notice that the hold cancellation does not work if the setting is not set to true or false in actor.org_unit_setting. Deleting the row leads to the hold not being canceled, even if the box is checked in the dialog. I suspect this happens because of line 33 in Open-ILS/web/js/ui/default/staff/circ/services/circ.js. It does exactly what the previous line does and pull an aous valued directly into a Boolean. I suspect that if the setting isn't set in aous or is null, then we get something neither true nor false and the code doesn't work. I'm not sure this needs to be addressed since existing code does the same. I'm just mentioning it in light of my comment #10.

My code is rebased on master and can be found in working/collab/dyrcona/LP1661688_hold_checkout_other_patron http://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/collab/dyrcona/LP1661688_hold_checkout_other_patron

I'll leave any other potential modifications open for discussion.

Dan Wells (dbw2)
Changed in evergreen:
milestone: 3.next → 3.1-beta
tags: added: pullrequest
Changed in evergreen:
status: New → Confirmed
Revision history for this message
Dan Pearl (dpearl) wrote :

My tests are completed.

user/dpearl/LP1661688_alt_patron_pickup

Changed in evergreen:
assignee: Dan Pearl (dpearl) → nobody
Kathy Lussier (klussier)
Changed in evergreen:
assignee: nobody → Kathy Lussier (klussier)
Revision history for this message
Kathy Lussier (klussier) wrote :

This works well in testing. I signed off on the commit, but added another commit to add some tweaks to the code:

1. I added a link to the record of the patron who originally placed a hold. In the email thread I linked to in comment #2, Tina Ji had suggested we add this link. "This will help staff check whether there is any note or alert or similar message in the account allowing the hold to be pickup up other people (to address the privacy issue)" For some reason, her message doesn't show up in the archive, but it's still in my Inbox, and I think it's a good addition to this code. The link will open in a new tab so as not to disrupt the ongoing checkout.

2. I tweaked the language a bit because I thought the phrasing - "This item is currently on the holds shelf for another patron for John Smith" - was a little awkward. It now says "This item is currently on the holds shelf for another patron: John Smith"

3. I removed the setting so that it would return as null, as described by Jason in comment #10.

The new branch is available at http://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/kmlussier/LP1661688_alt_patron_pickup_signoff_and_additions

I know a lot of people who are going to be very happy with this feature when it's available!

Kathy Lussier (klussier)
Changed in evergreen:
assignee: Kathy Lussier (klussier) → nobody
Galen Charlton (gmc)
Changed in evergreen:
assignee: nobody → Galen Charlton (gmc)
Revision history for this message
Galen Charlton (gmc) wrote :

Pushed to master, along with a couple minor follow-ups of my own. Thanks, Dan, Jason, and Kathy!

Changed in evergreen:
status: Confirmed → Fix Committed
assignee: Galen Charlton (gmc) → nobody
Changed in evergreen:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.