Bugzilla – Attachment 95070 Details for
Bug 23414
Improve performance of C4/XSLT/buildKohaItemsNamespace
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 23414: Prefetch transfers, use only default framework, use elsif
Bug-23414-Prefetch-transfers-use-only-default-fram.patch (text/plain), 5.03 KB, created by
Liz Rea
on 2019-11-05 18:30:53 UTC
(
hide
)
Description:
Bug 23414: Prefetch transfers, use only default framework, use elsif
Filename:
MIME Type:
Creator:
Liz Rea
Created:
2019-11-05 18:30:53 UTC
Size:
5.03 KB
patch
obsolete
>From 6af70e36536179bb3576b3a54b25680659644148 Mon Sep 17 00:00:00 2001 >From: Nick Clemens <nick@bywatersolutions.com> >Date: Thu, 1 Aug 2019 17:01:28 +0000 >Subject: [PATCH] Bug 23414: Prefetch transfers, use only default framework, > use elsif > >This further cleans up the code, before we tested each condition though we return only one status line. > >Koha mappings can no longer differ by framework so we don't need to fetch the biblio framework > >Prefetching should offer a boost > >To test: >Same as before - there is not as big a boost form this, but there shouldn't be a hit > >Signed-off-by: Liz Rea <wizzyrea@gmail.com> >--- > C4/XSLT.pm | 70 +++++++++++++++++++++++++++++--------------------------------- > 1 file changed, 33 insertions(+), 37 deletions(-) > >diff --git a/C4/XSLT.pm b/C4/XSLT.pm >index c5d916053c..9b435cb1fe 100644 >--- a/C4/XSLT.pm >+++ b/C4/XSLT.pm >@@ -293,14 +293,14 @@ sub buildKohaItemsNamespace { > my ($biblionumber, $hidden_items) = @_; > > my $search_params; >- $search_params->{biblionumber} = $biblionumber; >- $search_params->{itemnumber} = { not_in => $hidden_items } if $hidden_items; >- my @items = Koha::Items->search($search_params); >+ $search_params->{'me.biblionumber'} = $biblionumber; >+ $search_params->{'me.itemnumber'} = { not_in => $hidden_items } if $hidden_items; >+ my @items = Koha::Items->search($search_params,{prefetch=>['branchtransfers','reserves']}); > > my $shelflocations = >- { map { $_->{authorised_value} => $_->{opac_description} } Koha::AuthorisedValues->get_descriptions_by_koha_field( { frameworkcode => GetFrameworkCode($biblionumber), kohafield => 'items.location' } ) }; >+ { map { $_->{authorised_value} => $_->{opac_description} } Koha::AuthorisedValues->get_descriptions_by_koha_field( { frameworkcode => "", kohafield => 'items.location' } ) }; > my $ccodes = >- { map { $_->{authorised_value} => $_->{opac_description} } Koha::AuthorisedValues->get_descriptions_by_koha_field( { frameworkcode => GetFrameworkCode($biblionumber), kohafield => 'items.ccode' } ) }; >+ { map { $_->{authorised_value} => $_->{opac_description} } Koha::AuthorisedValues->get_descriptions_by_koha_field( { frameworkcode => "", kohafield => 'items.ccode' } ) }; > > my %branches = map { $_->branchcode => $_->branchname } Koha::Libraries->search({}, { order_by => 'branchname' }); > >@@ -311,40 +311,36 @@ sub buildKohaItemsNamespace { > for my $item (@items) { > my $status; > >- my ( $transfertwhen, $transfertfrom, $transfertto ) = C4::Circulation::GetTransfers($item->itemnumber); >- > my $reservestatus = C4::Reserves::GetReserveStatus( $item->itemnumber ); > >- if ( ( $item->itype && $itemtypes->{ $item->itype }->{notforloan} ) || $item->notforloan || $item->onloan || $item->withdrawn || $item->itemlost || $item->damaged || >- (defined $transfertwhen && $transfertwhen ne '') || $item->{itemnotforloan} || (defined $reservestatus && $reservestatus eq "Waiting") || $item->has_pending_hold ){ >- if ( $item->notforloan < 0) { >- $status = "On order"; >- } >- if ( $item->notforloan && $item->notforloan > 0 || $item->itype && $itemtypes->{ $item->itype }->{notforloan} && $itemtypes->{ $item->itype }->{notforloan} == 1 ) { >- $status = "reference"; >- } >- if ($item->onloan) { >- $status = "Checked out"; >- } >- if ( $item->withdrawn) { >- $status = "Withdrawn"; >- } >- if ($item->itemlost) { >- $status = "Lost"; >- } >- if ($item->damaged) { >- $status = "Damaged"; >- } >- if (defined $transfertwhen && $transfertwhen ne '') { >- $status = 'In transit'; >- } >- if (defined $reservestatus && $reservestatus eq "Waiting") { >- $status = 'Waiting'; >- } >- if ($item->has_pending_hold) { >- $status = 'Pending hold'; >- } >- } else { >+ if ($item->has_pending_hold) { >+ $status = 'Pending hold'; >+ } >+ elsif ( $item->holds->waiting->count ) { >+ $status = 'Waiting'; >+ } >+ elsif ($item->get_transfer) { >+ $status = 'In transit'; >+ } >+ elsif ($item->damaged) { >+ $status = "Damaged"; >+ } >+ elsif ($item->itemlost) { >+ $status = "Lost"; >+ } >+ elsif ( $item->withdrawn) { >+ $status = "Withdrawn"; >+ } >+ elsif ($item->onloan) { >+ $status = "Checked out"; >+ } >+ elsif ( $item->notforloan && $item->notforloan > 0 || $item->itype && $itemtypes->{ $item->itype }->{notforloan} && $itemtypes->{ $item->itype }->{notforloan} == 1 ) { >+ $status = "reference"; >+ } >+ elsif ( $item->notforloan < 0) { >+ $status = "On order"; >+ } >+ else { > $status = "available"; > } > my $homebranch = $item->homebranch? xml_escape($branches{$item->homebranch}):''; >-- >2.11.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 23414
:
91913
|
91914
|
91915
|
94537
|
94580
|
94581
|
95010
|
95011
|
95012
|
95014
|
95015
|
95069
|
95070
|
95071
|
95072
|
95073
|
95083
|
95084
|
95085
|
95086
|
95087
|
95088
|
95089