Bug 29702: Fetch group libraries in a single call
The current code gets all group members, then loops through and fetches the library if there is a branchcode, or recursively calls itself if a group. This slows down performance. We can utilize the 'libraries' method to get all child libraries at once, then make a check for child groups separately To recreate: 1 - Add 100 items to a biblio 2 - Define a library group as a hold group 3 - Add all libraries to the group 4 - Set 'Default checkout, hold and return policy'->'Hold pickup library match' = 'Any library' 5 - place a hold on the record and note load time after patron is selected 6 - Set 'Default checkout, hold and return policy'->'Hold pickup library match' = 'Patrons hold group' 7 - place a hold, note longer load time after patron selection 8 - Apply patch 9 - note improvement 10 - prove -v t/db_dependent/Koha/Libraries.t Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
parent
2f554fd288
commit
9d31f0d4ed
1 changed files with 3 additions and 7 deletions
|
@ -144,14 +144,10 @@ sub all_libraries {
|
|||
|
||||
my @libraries;
|
||||
|
||||
my @children = $self->children;
|
||||
push (@libraries, $self->libraries);
|
||||
my @children = $self->children->search({ branchcode => undef });
|
||||
foreach my $c (@children) {
|
||||
if ( $c->branchcode ) {
|
||||
push( @libraries, $c->library );
|
||||
}
|
||||
else {
|
||||
push( @libraries, $c->all_libraries );
|
||||
}
|
||||
push( @libraries, $c->all_libraries );
|
||||
}
|
||||
|
||||
my %seen;
|
||||
|
|
Loading…
Reference in a new issue