From 97414af0593f948fdba9e9a3b6dec02cca065c00 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 24 Oct 2023 15:12:44 +0200 Subject: [PATCH] Bug 31383: (follow-up) Remove get_opac_news_by_id Keep the same behaviour, but wondering why we don't return 'content' when there is no match. ie. + is( $additional_contents, undef ); should certainly be + is( $additional_contents->{content}->count, 0 ); --- Koha/AdditionalContents.pm | 1 + Koha/Template/Plugin/AdditionalContents.pm | 1 + koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt | 2 +- t/db_dependent/Template/Plugin/AdditionalContents.t | 7 ++++++- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Koha/AdditionalContents.pm b/Koha/AdditionalContents.pm index bbad4869a2a..9ad3c0f9c2a 100644 --- a/Koha/AdditionalContents.pm +++ b/Koha/AdditionalContents.pm @@ -81,6 +81,7 @@ sub search_for_display { qq|(SELECT COUNT(*) FROM additional_contents_localizations WHERE lang='$lang' AND additional_content_id=me.additional_content_id)=0|; my $search_params; + $search_params->{'additional_content.id'} = $params->{id} if $params->{id}; $search_params->{location} = $params->{location}; $search_params->{branchcode} = $params->{library_id} ? [ $params->{library_id}, undef ] : undef; $search_params->{published_on} = { '<=' => \'CAST(NOW() AS DATE)' }; diff --git a/Koha/Template/Plugin/AdditionalContents.pm b/Koha/Template/Plugin/AdditionalContents.pm index a44de966dc9..41330e4b3f6 100644 --- a/Koha/Template/Plugin/AdditionalContents.pm +++ b/Koha/Template/Plugin/AdditionalContents.pm @@ -44,6 +44,7 @@ sub get { location => $location, lang => $lang, ( $library ? ( library_id => $library ) : () ), + ( $id ? ( id => $id ) : () ), } ); diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt index e8cf85bc9d7..592368ab381 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt @@ -89,7 +89,7 @@ [% END %] [% IF news_id %] - [% SET koha_news = AdditionalContents.get( category => 'news', location => ['opac_only', 'staff_and_opac'], lang => lang, news_id => news_id ) %] + [% SET koha_news = AdditionalContents.get( category => 'news', location => ['opac_only', 'staff_and_opac'], lang => lang, id => news_id ) %] [% ELSE %] [% SET koha_news = AdditionalContents.get( category => 'news', location => ['opac_only', 'staff_and_opac'], lang => lang, library => branchcode ) %] [% END %] diff --git a/t/db_dependent/Template/Plugin/AdditionalContents.t b/t/db_dependent/Template/Plugin/AdditionalContents.t index cf30973e1e2..01743bd765e 100755 --- a/t/db_dependent/Template/Plugin/AdditionalContents.t +++ b/t/db_dependent/Template/Plugin/AdditionalContents.t @@ -33,7 +33,7 @@ my $builder = t::lib::TestBuilder->new; $schema->storage->txn_begin; subtest 'get' => sub { - plan tests => 2; + plan tests => 4; my $additional_contents = Koha::Template::Plugin::AdditionalContents->get({ category => 'news', location => ['opac_only', 'staff_and_opac'], lang => 'default', library => '%' }); my $before_count = $additional_contents ? $additional_contents->{content}->count() : 0; @@ -61,6 +61,11 @@ subtest 'get' => sub { is( $additional_contents->{blocktitle}, 'blockhead', "Block title is passed through"); + $additional_contents = Koha::Template::Plugin::AdditionalContents->get({ id => $additional_content->id, category => 'news', location => ['opac_only', 'staff_and_opac'], lang => 'default' }); + is( $additional_contents->{content}->count, 1 ); + + $additional_contents = Koha::Template::Plugin::AdditionalContents->get({ id => $additional_content->id, category => 'html_customizations', location => ['opac_only', 'staff_and_opac'], lang => 'default' }); + is( $additional_contents, undef ); }; -- 2.34.1