From 21a4a780b511d6f7607a07b7703480132a9d5cdf Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Fri, 12 Jan 2024 09:41:21 +0100 Subject: [PATCH] Bug 35783: Replace TT plugin's method Biblio::RecallsCount We can use biblio.recalls.search( completed => 0 ).count instead. Test plan: 1. Go to the biblio detail view, click on the different entries in the menu on the left. Confirm that the "Recalls" tab always has the correct number of current recalls display in the parenthesis. 2. Run a search and confirm that the number of current recalls are still displayed for each result. --- Koha/Template/Plugin/Biblio.pm | 1 + .../data/mysql/atomicupdate/bug_35783.pl | 25 +++++++++++++++++++ .../prog/en/includes/biblio-view-menu.inc | 2 +- .../prog/en/modules/catalogue/results.tt | 2 +- 4 files changed, 28 insertions(+), 2 deletions(-) create mode 100755 installer/data/mysql/atomicupdate/bug_35783.pl diff --git a/Koha/Template/Plugin/Biblio.pm b/Koha/Template/Plugin/Biblio.pm index d23eb094b65..7e582da37eb 100644 --- a/Koha/Template/Plugin/Biblio.pm +++ b/Koha/Template/Plugin/Biblio.pm @@ -63,6 +63,7 @@ sub CanArticleRequest { return $biblio ? $biblio->can_article_request( $borrower ) : 0; } +# Do not use RecallsCount, it is deprecated and will be removed in a future release. sub RecallsCount { my ( $self, $biblionumber ) = @_; diff --git a/installer/data/mysql/atomicupdate/bug_35783.pl b/installer/data/mysql/atomicupdate/bug_35783.pl new file mode 100755 index 00000000000..0fd7d9be5e2 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_35783.pl @@ -0,0 +1,25 @@ +use Modern::Perl; + +return { + bug_number => "35873", + description => "Biblio.RecallsCount is deprecated", + up => sub { + my ($args) = @_; + my ( $dbh, $out ) = @$args{qw(dbh out)}; + + # Do you stuffs here + my ($count) = $dbh->selectrow_array( + q{ + SELECT COUNT(*) + FROM letter + WHERE content LIKE "%Biblio.RecallsCount%"; + } + ); + + if ($count) { + say $out "WARNING - Biblio.RecallsCount is used in at least one notice template"; + say $out "It is deprecated and will be remove in a future version of Koha."; + say $out "Replace it with biblio.recalls.search( completed => 0 ).count instead"; + } + }, +}; diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-view-menu.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-view-menu.inc index c7fbc727e8a..3667a969033 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-view-menu.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-view-menu.inc @@ -130,7 +130,7 @@ [%- ELSE -%]
  • [%- END -%] - Recalls ([% Biblio.RecallsCount( biblio_object_id ) | html %]) + Recalls ([% biblio.recalls.search( completed => 0 ).count | html %])
  • [%- END -%] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt index 1b5dd336da1..43fa5883c6c 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt @@ -570,7 +570,7 @@ [% END %] [% END # /IF SEARCH_RESULT.norequests %] [% IF Koha.Preference('UseRecalls') and CAN_user_recalls %] - | Recalls ([% Biblio.RecallsCount( SEARCH_RESULT.biblionumber ) | html %]) + | Recalls ([% SEARCH_RESULT.biblio_object.recalls.search( completed => 0 ).count | html %]) [% END %] [% IF Koha.Preference('intranetbookbag') == 1 %] -- 2.34.1