Pull List - Multiple print full list calls - call number affixes not fleshed

Bug #1821179 reported by Josh Stompro
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Evergreen
Won't Fix
Medium
Unassigned

Bug Description

After bug 1749502 was applied, Jason E. noticed that the second time print full list was clicked, the call number affixes (prefix, suffix) were not fleshed and would just display their id numbers. So it seems like the fleshing of those values isn't happening for subsequent runs in some cases.

I cannot replicate this on my 3.2.3 system with that patch applied, but could observe the problem on the test system that Jason E. provided. He said it was running master on 3/20/2019.

IRC Discussion
http://irc.evergreen-ils.org/evergreen/2019-03-20#i_399362

There is a note in Holds.js that the fleshing calls should be deprecated in favor of API fleshing. Bug 1697954.

Josh

tags: added: holds webstaffclient
Revision history for this message
Erica Rohlfs (erohlfs) wrote :

Confirmed 3.1.11. When testing, I can observe the behavior on the first load and subsequent loads.

Changed in evergreen:
status: New → Confirmed
Erica Rohlfs (erohlfs)
Changed in evergreen:
importance: Undecided → Medium
tags: removed: webstaffclient
Revision history for this message
Josh Stompro (u-launchpad-stompro-org) wrote :

I think this is a timing/async issue, with the promises for fleshing the call number prefix and suffix not completing before they are run through hold_data.volume = egCore.idl.toHash(hold_data.volume);

https://git.evergreen-ils.org/?p=working/Evergreen.git;a=blob;f=Open-ILS/web/js/ui/default/staff/circ/holds/app.js;hb=HEAD#l466

egHolds.local_flesh(hold_data); uses several promises to grab prefix and suffix data.

They all have to be fleshed before being sent off to print since it doesn't work for them to eventually be resolved in this use case... I think. I'm not sure how to adjust things to make that happen. Maybe use a promise.all to wait for all the various promises to complete?

It looks like local_flesh is used by printing the pull list and the hold detail view right now. The hold detail view has no problem with the promises resolving later, it just updates the display then. Maybe there should be a separate function that isn't async since the user is waiting for the data to be gathered anyway?

Or maybe the best thing would be to add the call number affixes being fleshed to the api, and remove the need to grab them later?

Add some calls to grab the data up front in
https://git.evergreen-ils.org/?p=Evergreen.git;a=blob;f=Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm;hb=ecfc8a7b4fc91064f334ce557f76385569927b67#l3827

On our old crusty version (3.3) the pull list detail view for one hold is missing some data also. The full call number with prefix/suffix isn't shown, and some fields that don't make sense for non captured holds are shown... but maybe the template is shared with the hold shelf?

Dan Briem (dbriem)
tags: added: circ-holds
removed: holds
tags: added: printing
Michele Morgan (mmorgan)
description: updated
description: updated
Revision history for this message
Michele Morgan (mmorgan) wrote :

We've seen this issue in 3.7, but I am unable to reproduce it in the Angular pull list in 3.8+ (bug 1919465).

Revision history for this message
Terran McCanna (tmccanna) wrote :

Marking this Won't Fix as it appears to have been resolved with the Angularization of the Pull List.

Changed in evergreen:
status: Confirmed → Won't Fix
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.