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.
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.
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.
Tomas, can you take a look at this bug please?
Ping!