Bugzilla – Attachment 116075 Details for
Bug 24254
Add Koha::Items->filter_by_visible_in_opac
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
[20.05.x] Bug 24254: (QA follow-up) Inlines opachiddenitems handling
2005x-Bug-24254-QA-follow-up-Inlines-opachiddenite.patch (text/plain), 5.73 KB, created by
Tomás Cohen Arazi (tcohen)
on 2021-01-29 18:35:59 UTC
(
hide
)
Description:
[20.05.x] Bug 24254: (QA follow-up) Inlines opachiddenitems handling
Filename:
MIME Type:
Creator:
Tomás Cohen Arazi (tcohen)
Created:
2021-01-29 18:35:59 UTC
Size:
5.73 KB
patch
obsolete
>From 927c7922f555ff7a8c48fb3d455480e726f88adf Mon Sep 17 00:00:00 2001 >From: Martin Renvoize <martin.renvoize@ptfs-europe.com> >Date: Thu, 14 Jan 2021 11:28:35 +0000 >Subject: [PATCH] [20.05.x] Bug 24254: (QA follow-up) Inlines opachiddenitems > handling > >We decided to inline the opachiddenitems filter as we don't believe it >will be used exclusively. > >Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> >--- > Koha/Items.pm | 37 ++++++---------- > t/db_dependent/Koha/Items.t | 87 +------------------------------------ > 2 files changed, 14 insertions(+), 110 deletions(-) > >diff --git a/Koha/Items.pm b/Koha/Items.pm >index 7d07f08ad10..a375757b2b8 100644 >--- a/Koha/Items.pm >+++ b/Koha/Items.pm >@@ -48,7 +48,8 @@ Koha::Items - Koha Item object set class > Returns a new resultset, containing those items that are not expected to be hidden in OPAC > for the passed I<Koha::Patron> object that is passed. > >-The I<OpacHiddenItems> and I<hidelostitems> system preferences are honoured. >+The I<OpacHiddenItems>, I<hidelostitems> and I<OpacHiddenItemsExceptions> system preferences >+are honoured. > > =cut > >@@ -59,8 +60,16 @@ sub filter_by_visible_in_opac { > > my $result = $self; > >+ # Filter out OpacHiddenItems unless disabled by OpacHiddenItemsExceptions > unless ( $patron and $patron->category->override_hidden_items ) { >- $result = $result->filter_out_opachiddenitems; >+ my $rules = C4::Context->yaml_preference('OpacHiddenItems') // {}; >+ >+ my $rules_params; >+ foreach my $field (keys %$rules){ >+ $rules_params->{$field}->{'-not_in'} = $rules->{$field}; >+ } >+ >+ $result = $result->search( $rules_params ); > } > > if (C4::Context->preference('hidelostitems')) { >@@ -70,28 +79,6 @@ sub filter_by_visible_in_opac { > return $result; > } > >-=head3 filter_out_opachiddenitems >- >- my $filered_items = $items->filter_out_opachiddenitems; >- >-Returns a new resultset, containing those items that are not expected to be hidden in OPAC. >-The I<OpacHiddenItems> system preference is honoured. >- >-=cut >- >-sub filter_out_opachiddenitems { >- my ($self) = @_; >- >- my $rules = C4::Context->yaml_preference('OpacHiddenItems') // {}; >- >- my $rules_params; >- foreach my $field (keys %$rules){ >- $rules_params->{$field}->{'-not_in'} = $rules->{$field}; >- } >- >- return $self->search( $rules_params ); >-} >- > =head3 filter_out_lost > > my $filered_items = $items->filter_out_lost; >@@ -129,6 +116,8 @@ sub object_class { > =head1 AUTHOR > > Kyle M Hall <kyle@bywatersolutions.com> >+Tomas Cohen Arazi <tomascohen@theke.io> >+Martin Renvoize <martin.renvoize@ptfs-europe.com> > > =cut > >diff --git a/t/db_dependent/Koha/Items.t b/t/db_dependent/Koha/Items.t >index c886e05b199..d64159944f8 100644 >--- a/t/db_dependent/Koha/Items.t >+++ b/t/db_dependent/Koha/Items.t >@@ -19,7 +19,7 @@ > > use Modern::Perl; > >-use Test::More tests => 15; >+use Test::More tests => 13; > > use Test::MockModule; > use Test::Exception; >@@ -423,88 +423,3 @@ subtest 'filter_out_lost() tests' => sub { > > $schema->storage->txn_rollback; > }; >- >-subtest 'filter_out_opachiddenitems() tests' => sub { >- >- plan tests => 6; >- >- $schema->storage->txn_begin; >- >- # have a fresh biblio >- my $biblio = $builder->build_sample_biblio; >- # have two itemtypes >- my $itype_1 = $builder->build_object({ class => 'Koha::ItemTypes' }); >- my $itype_2 = $builder->build_object({ class => 'Koha::ItemTypes' }); >- # have 5 items on that biblio >- my $item_1 = $builder->build_sample_item( >- { >- biblionumber => $biblio->biblionumber, >- itype => $itype_1->itemtype, >- withdrawn => 1 >- } >- ); >- my $item_2 = $builder->build_sample_item( >- { >- biblionumber => $biblio->biblionumber, >- itype => $itype_2->itemtype, >- withdrawn => 2 >- } >- ); >- my $item_3 = $builder->build_sample_item( >- { >- biblionumber => $biblio->biblionumber, >- itype => $itype_1->itemtype, >- withdrawn => 3 >- } >- ); >- my $item_4 = $builder->build_sample_item( >- { >- biblionumber => $biblio->biblionumber, >- itype => $itype_2->itemtype, >- withdrawn => 4 >- } >- ); >- my $item_5 = $builder->build_sample_item( >- { >- biblionumber => $biblio->biblionumber, >- itype => $itype_1->itemtype, >- withdrawn => 5 >- } >- ); >- my $item_6 = $builder->build_sample_item( >- { >- biblionumber => $biblio->biblionumber, >- itype => $itype_1->itemtype, >- withdrawn => 5 >- } >- ); >- >- my $rules = undef; >- >- my $mocked_context = Test::MockModule->new('C4::Context'); >- $mocked_context->mock( 'yaml_preference', sub { >- return $rules; >- }); >- >- is( $biblio->items->filter_out_opachiddenitems->count, 6, 'No rules passed' ); >- >- $rules = {}; >- >- $rules = { withdrawn => [ 1, 2 ] }; >- is( $biblio->items->filter_out_opachiddenitems->count, 4, 'Rules on withdrawn' ); >- >- $rules = { itype => [ $itype_1->itemtype ] }; >- is( $biblio->items->filter_out_opachiddenitems->count, 2, 'Rules on itype' ); >- >- $rules = { withdrawn => [ 1, 2 ], itype => [ $itype_1->itemtype ] }; >- is( $biblio->items->filter_out_opachiddenitems->count, 1, 'Rules on itype and withdrawn' ); >- is( $biblio->items->filter_out_opachiddenitems->next->itemnumber, >- $item_4->itemnumber, >- 'The right item is returned' >- ); >- >- $rules = { withdrawn => [ 1, 2 ], itype => [ $itype_2->itemtype ] }; >- is( $biblio->items->filter_out_opachiddenitems->count, 3, 'Rules on itype and withdrawn' ); >- >- $schema->storage->txn_rollback; >-}; >-- >2.30.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 24254
:
96373
|
114159
|
114160
|
114206
|
114207
|
114278
|
114279
|
114539
|
114540
|
114548
|
114549
|
114550
|
114551
|
114574
|
114594
|
114595
|
114596
|
114597
|
114598
|
114599
|
114664
|
114665
|
114666
|
114667
|
114668
|
115131
|
115132
|
115147
|
115148
|
115149
|
115150
|
115151
|
115152
|
115153
|
116070
|
116071
|
116072
|
116073
|
116074
| 116075