Web client: Cannot successfully check in hold transit items

Bug #1670242 reported by Kathy Lussier
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Evergreen
Fix Released
Medium
Unassigned

Bug Description

Evergreen: master as of February 27, 2017 (2.12 beta)

When scanning an item at check in that needs to go into transit to fill a hold, the check fails without any feedback to the user. Instead, the checkin grid displays "No Items to Display". See the screencast at https://drive.google.com/file/d/0B74gDMUDwDXqVnpqSV9tazhkakU/view.

The following error is found in the console:

TypeError: transit.source is not a function
    at Object.service.flesh_response_data (circ.js:569)
    at circ.js:224
    at angular.js:16696
    at m.$eval (angular.js:17994)
    at m.$digest (angular.js:17808)
    at angular.js:18033
    at f (angular.js:6045)
    at angular.js:6324

I am able to successfully check in items that need to go to the holds shelf and items that need to go into transit to return to its owning library. I am only seeing this problem with hold transits.

This is a regression in the web client code.

Revision history for this message
Kathy Lussier (klussier) wrote :

After continued testing, I've found that this problem doesn't occur for all holds transit items. When working with the Concerto dataset, it only appears to occur for items that need to fill a hold at SL1. Checking in items that need to transit to other locations to fill holds appears to work as expected.

There's still a problem, but I think we can put the priority down to medium since it isn't affecting all transit holds.

Changed in evergreen:
importance: High → Medium
Galen Charlton (gmc)
Changed in evergreen:
milestone: 2.12-rc → 2.12.1
Revision history for this message
Kathy Lussier (klussier) wrote :

Came across this problem again when checking in a Concerto item required to fill a hold at BM1. So far, it only appears to happen when filling holds at an OU that is a child of a branch.

The message in the console was a little different for this check in:

TypeError: Cannot read property 'id' of undefined
    at env.js:119
    at Object.q [as forEach] (angular.min.js:7)
    at Object.service.absorbList (env.js:119)
    at circ.js:631
    at angular.min.js:132
    at m.$eval (angular.min.js:147)
    at m.$digest (angular.min.js:144)
    at angular.min.js:147
    at f (angular.min.js:45)
    at angular.min.js:48

tags: removed: regression
Changed in evergreen:
milestone: 2.12.1 → 2.12.2
Andrea Neiman (aneiman)
Changed in evergreen:
status: New → Confirmed
Revision history for this message
Andrea Neiman (aneiman) wrote :

Confirmed on MLNC's 2.12 test server, and I saw the console error noted by Kathy in comment #2 when I tried with an item to be picked up at SL1 and then her initial error when I tried with an item to be picked up at BM1.

However, noting for the record that I'm not seeing it in EOLI's in-house webby test server which is master-ish with some local code.

Revision history for this message
tji@sitka.bclibraries.ca (tji) wrote :

I encountered this issue on our own testing server. It consistently happened with holds picked up at one particular library. But holds picked up at the other two libraries in the group sharing almost the same things are fine. It turns out the problematic library did not have Hold Address in the OU record. After filling in the Hold Address, the prompt shows up.

Revision history for this message
Andrea Neiman (aneiman) wrote :

Confirmed that this does seem to fix it for me as well -- although there may be some caching issues, because when I added the address last night, I wasn't able to get the transit prompt to show and still saw the console error in the original bug report. This was even after logging out and a hard refresh.

However, when I came back and tried it this morning, all worked as expected. Thanks, Tina, for the catch!

Bill Erickson (berick)
Changed in evergreen:
assignee: nobody → Bill Erickson (berick)
Revision history for this message
Bill Erickson (berick) wrote :

What should happen when a hold item transits to a branch that has no holds address? Default to mailing_address? What if there's no mailing_address?

Changed in evergreen:
assignee: Bill Erickson (berick) → nobody
Revision history for this message
Kathy Lussier (klussier) wrote :

The xul client says "We do not have a holds address for this library" in place of where the address normally displays.

Revision history for this message
Andrea Neiman (aneiman) wrote :

Answering your question with a question, but is there a design reason why the lack of an address would cause a failure?

Revision history for this message
Bill Erickson (berick) wrote :

Andrea, just an oversight. The code assumes that holds will transit to branches that have a holds address. That wacky code.

Thanks for checking, Kathy. Seems like a reasonable thing to duplicate in the web staff.

Changed in evergreen:
assignee: nobody → Bill Erickson (berick)
Revision history for this message
Bill Erickson (berick) wrote :

Fix pushed:

http://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/berick/lp1670242-hold-transit-checkin-fix

In addition to the not-dying, this includes changes to the route dialog and transit print templates to display "We do not have a holds address for this library." when no address is present.

Revision history for this message
Bill Erickson (berick) wrote :

To test with concerto, after running the hold targeter, check in item "RDA430001661".

tags: added: holds pullrequest
Changed in evergreen:
assignee: Bill Erickson (berick) → nobody
Kathy Lussier (klussier)
Changed in evergreen:
assignee: nobody → Kathy Lussier (klussier)
Revision history for this message
Kathy Lussier (klussier) wrote :

Thank you Bill! It works for me. Merged to master and release 2.12.

Changed in evergreen:
status: Confirmed → Fix Committed
assignee: Kathy Lussier (klussier) → 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.

Other bug subscribers

Remote bug watches

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