Bug 28541 - Incorrect default pickup location passed to HTML, causing UI show items unreservable
Summary: Incorrect default pickup location passed to HTML, causing UI show items unres...
Alias: None
Product: Koha
Classification: Unclassified
Component: Hold requests (show other bugs)
Version: master
Hardware: All All
: P5 - low normal (vote)
Assignee: Peter Vashchuk
QA Contact: Testopia
Depends on: 27071
  Show dependency treegraph
Reported: 2021-06-10 12:17 UTC by Joonas Kylmälä
Modified: 2021-08-13 13:01 UTC (History)
5 users (show)

See Also:
Change sponsored?: ---
Patch complexity: ---
Text to go in the release notes:
Version(s) released in:


Note You need to log in before you can comment on or make changes to this bug.
Description Joonas Kylmälä 2021-06-10 12:17:43 UTC
The default pickup branch for holds through intranet was changed in Bug 27071 to be the branch returned by C4::Reserves::GetReservesControlBranch() function. However, the result of this calculation, $reserves_control_branch, is not passed to to the Template Toolkit template:

> # pass the userenv branch if no pickup location selected
> $template->param( pickup => $pickup || C4::Context->userenv->{branch} );

Instead the wrong value, currently logged in branch is passed. This causes the UI give false warning triangles about not being able to reserve some items even though the reservation works if you ignore those warnings. We should be passing the same branch as we did the availability calculation with, i.e. $reserves_control_branch.
Comment 1 Joonas Kylmälä 2021-06-10 12:27:25 UTC
Actually... On further thought I don't think that is the explanation for the triangles. I don't think we can use the GetReservesControlBranch to get the default pickup location as was changed in bug 27071 because that doesn't give us a branch with pickup option necessarely. The case we have is that the patrons/item's GetReservesControlBranch returns a branch where you cannot go pickup the item. We would need to be able to fallback to some other branch where pickup is possible I think.
Comment 2 Joonas Kylmälä 2021-06-10 13:21:48 UTC
I think I found a solution: Let's similary fetch the possible pickup locations like we do in request.tt:

> [% PROCESS options_for_libraries libraries => Branches.pickup_locations({ search_params => { biblio => biblionumber, patron => patron }, selected => pickup }) %]

And if the request.pl gets called without a pickup location then let's call Koha::Template::Plugin::Branches::pickup_locations($biblionumber, $patron) to get one. This gets a valid pickup location selected in the holds page and if the branch is wrong the user can change it.
Comment 3 Jonathan Druart 2021-07-19 12:45:26 UTC
Tomas, can you take a look at this bug please?