From f7c6e9f586667ea5dfdd5dd08a05ccb799e1d424 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 9 Dec 2015 17:00:10 +0000 Subject: [PATCH] Bug 15344: Remove unucessary call to GetMemberDetails MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This subroutine does a lot a processing and should only be called when necessary. In the get_template_and_user subroutine (so called from any pages of Koha), it is call to pass the branchcode, title, firstname, surname and borrowernumber values for the logged in user. This subroutine calls GetMemberAccountRecords which retrieve the items infos for all accountlines entries of the logged in user. On members/members.pl, let's say you have 74 entries in the accountlines tables, the page will execute 115 SELECT instead of 35 if you don't have any accountlines entries. With this patch, the number of SELECT is always 31. To test this patch you should have technical skills to know what to do. Note that USER_INFO was an array of... 1 element. Now it's a hashref. Signed-off-by: Marc Véron Signed-off-by: Kyle M Hall Signed-off-by: Kyle M Hall (cherry picked from commit ac541e0fa1c11254e110d94eed64c358e02e8aab) Signed-off-by: Julian Maurice (cherry picked from commit 44202df6acdfcfb371eccc6b8e8007a871304e49) Signed-off-by: Frédéric Demians --- C4/Auth.pm | 10 +- admin/aqbudgets.pl | 2 +- admin/aqplan.pl | 6 +- .../prog/en/includes/cateditor-ui.inc | 1104 +++++++++++++++++ .../bootstrap/en/includes/masthead.inc | 2 +- .../en/modules/opac-downloadshelf.tt | 2 +- .../bootstrap/en/modules/opac-reserve.tt | 6 +- .../bootstrap/en/modules/opac-shareshelf.tt | 2 +- .../bootstrap/en/modules/opac-shelves.tt | 2 +- .../bootstrap/en/modules/opac-suggestions.tt | 2 +- 10 files changed, 1119 insertions(+), 19 deletions(-) create mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/cateditor-ui.inc diff --git a/C4/Auth.pm b/C4/Auth.pm index d413db6df0..2c59bd58a6 100644 --- a/C4/Auth.pm +++ b/C4/Auth.pm @@ -208,9 +208,10 @@ sub get_template_and_user { # It's possible for $user to be the borrowernumber if they don't have a # userid defined (and are logging in through some other method, such # as SSL certs against an email address) + my $borrower; $borrowernumber = getborrowernumber($user) if defined($user); if ( !defined($borrowernumber) && defined($user) ) { - my $borrower = C4::Members::GetMember( borrowernumber => $user ); + $borrower = C4::Members::GetMember( borrowernumber => $user ); if ($borrower) { $borrowernumber = $user; @@ -218,6 +219,8 @@ sub get_template_and_user { # to do it. $user = $borrower->{firstname} . ' ' . $borrower->{surname}; } + } else { + $borrower = C4::Members::GetMember( borrowernumber => $borrowernumber ); } # user info @@ -236,10 +239,7 @@ sub get_template_and_user { ); } - my ($borr) = C4::Members::GetMemberDetails($borrowernumber); - my @bordat; - $bordat[0] = $borr; - $template->param( "USER_INFO" => \@bordat ); + $template->param( "USER_INFO" => $borrower ); my $all_perms = get_all_subpermissions(); diff --git a/admin/aqbudgets.pl b/admin/aqbudgets.pl index 45403911db..03a8c33c63 100755 --- a/admin/aqbudgets.pl +++ b/admin/aqbudgets.pl @@ -89,7 +89,7 @@ if ( $budget_period_id ) { # ------- get periods stuff ------------------ # USED FOR PERMISSION COMPARISON LATER -my $borrower_id = $template->{VARS}->{'USER_INFO'}[0]->{'borrowernumber'}; +my $borrower_id = $template->{VARS}->{'USER_INFO'}->{'borrowernumber'}; my $user = GetMemberDetails($borrower_id); my $user_branchcode = $user->{'branchcode'}; diff --git a/admin/aqplan.pl b/admin/aqplan.pl index 47b4b8c3e7..635f53460e 100755 --- a/admin/aqplan.pl +++ b/admin/aqplan.pl @@ -84,8 +84,8 @@ $template->param( # ------- get periods stuff ------------------ -my $borrower_id = $template->{VARS}->{'USER_INFO'}[0]->{'borrowernumber'}; -my $borrower_branchcode = $template->{VARS}->{'USER_INFO'}[0]->{'branchcode'}; +my $borrower_id = $template->{VARS}->{'USER_INFO'}->{'borrowernumber'}; +my $borrower_branchcode = $template->{VARS}->{'USER_INFO'}->{'branchcode'}; my $periods; my $authcat = $input->param('authcat'); @@ -111,7 +111,7 @@ my $op = $input->param("op"); my $budget_branchcode; -my $budgets_ref = GetBudgetHierarchy( $budget_period_id, $show_mine?$template->{VARS}->{'USER_INFO'}[0]->{'branchcode'}:'', $show_mine?$template->{VARS}->{'USER_INFO'}[0]->{'borrowernumber'}:'' ); +my $budgets_ref = GetBudgetHierarchy( $budget_period_id, $show_mine?$template->{VARS}->{'USER_INFO'}->{'branchcode'}:'', $show_mine?$template->{VARS}->{'USER_INFO'}->{'borrowernumber'}:'' ); # build categories list my $sth = $dbh->prepare("select distinct category from authorised_values where category like 'A%' "); diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/cateditor-ui.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/cateditor-ui.inc new file mode 100644 index 0000000000..87f5360c53 --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/cateditor-ui.inc @@ -0,0 +1,1104 @@ + + + + + + +[% IF marcflavour == 'MARC21' %] +[% PROCESS 'cateditor-widgets-marc21.inc' %] +[% ELSE %] + +[% END %] + + diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc index aeca0074d3..012e604c19 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc +++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc @@ -81,7 +81,7 @@ [% END %] [% END %] [% IF ( loggedinusername ) %] -
  • +
  • [% END %] [% END %] diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-downloadshelf.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-downloadshelf.tt index 1aa3a4b7b2..e91c170e48 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-downloadshelf.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-downloadshelf.tt @@ -10,7 +10,7 @@