Bug 29844: Fix ->search occurrences
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Tue, 11 Jan 2022 09:09:09 +0000 (10:09 +0100)
committerFridolin Somers <fridolin.somers@biblibre.com>
Thu, 10 Feb 2022 01:36:23 +0000 (15:36 -1000)
and some more...

There are lot of inconsistencies in our ->search calls. We could
simplify some of them, but not in this patch. Here we want to prevent
regressions as much as possible and so don't add unecessary changes.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
125 files changed:
C4/Acquisition.pm
C4/Auth.pm
C4/Circulation.pm
C4/HoldsQueue.pm
C4/ILSDI/Services.pm
C4/ItemCirculationAlertPreference.pm
C4/Members.pm
C4/Overdues.pm
C4/Reserves.pm
C4/SIP/ILS/Patron.pm
C4/Search.pm
C4/Serials.pm
C4/XSLT.pm
Koha/AudioAlerts.pm
Koha/AuthorisedValues.pm
Koha/BackgroundJob/BatchUpdateBiblio.pm
Koha/Club.pm
Koha/Clubs.pm
Koha/Library/Group.pm
Koha/Library/Groups.pm
Koha/Objects/Mixin/AdditionalFields.pm
Koha/Patron.pm
Koha/Patron/Modification.pm
Koha/REST/V1/Biblios.pm
Koha/REST/V1/Patrons.pm
Koha/SearchEngine/Elasticsearch.pm
Koha/Template/Plugin/Branches.pm
Koha/Template/Plugin/Desks.pm
Koha/Uploader.pm
acqui/addorderiso2709.pl
acqui/basket.pl
acqui/basketheader.pl
acqui/booksellers.pl
acqui/duplicate_orders.pl
acqui/histsearch.pl
acqui/invoices.pl
acqui/lateorders.pl
acqui/neworderempty.pl
acqui/orderreceive.pl
acqui/supplier.pl
acqui/transferorder.pl
admin/audio_alerts.pl
admin/auth_subfields_structure.pl
admin/authorised_values.pl
admin/branches.pl
admin/classsources.pl
admin/item_circulation_alerts.pl
admin/koha2marclinks.pl
admin/marc_subfields_structure.pl
admin/overdrive.pl
admin/preferences.pl
admin/sms_providers.pl
admin/transport-cost-matrix.pl
basket/basket.pl
basket/downloadcart.pl
catalogue/issuehistory.pl
catalogue/item-export.pl
catalogue/itemsearch.pl
catalogue/search.pl
cataloguing/editor.pl
cataloguing/value_builder/cn_browser.pl
cataloguing/value_builder/marc21_linking_section.pl
cataloguing/value_builder/unimarc_field_4XX.pl
circ/article-requests.pl
circ/circulation.pl
circ/transfers_to_send.pl
clubs/clubs.pl
clubs/patron-clubs-tab.pl
ill/ill-requests.pl
members/apikeys.pl
members/boraccount.pl
members/mancredit.pl
members/maninvoice.pl
members/memberentry.pl
members/members-home.pl
members/members-update.pl
members/moremember.pl
members/paycollect.pl
members/print_overdues.pl
members/update-child.pl
misc/cronjobs/delete_records_via_leader.pl
misc/cronjobs/reconcile_balances.pl
opac/clubs/clubs-tab.pl
opac/opac-account.pl
opac/opac-basket.pl
opac/opac-downloadcart.pl
opac/opac-downloadshelf.pl
opac/opac-memberentry.pl
opac/opac-messaging.pl
opac/opac-search.pl
opac/opac-shelves.pl
opac/opac-user.pl
reports/acquisitions_stats.pl
reports/borrowers_stats.pl
reports/issues_stats.pl
reports/reserves_stats.pl
reserve/request.pl
serials/acqui-search-result.pl
serials/claims.pl
serials/serials-search.pl
serials/subscription-add.pl
serials/subscription-batchedit.pl
serials/subscription-detail.pl
suggestion/suggestion.pl
t/db_dependent/AudioAlerts.t
t/db_dependent/AuthorisedValues.t
t/db_dependent/Budgets.t
t/db_dependent/Koha.t
t/db_dependent/Koha/Objects/Mixin/AdditionalFields.t
t/db_dependent/LibraryGroups.t
t/db_dependent/Overdues.t
t/db_dependent/Patrons.t
t/db_dependent/Reserves.t
t/db_dependent/Upload.t
tools/additional-contents.pl
tools/batch_delete_records.pl
tools/batch_record_modification.pl
tools/export.pl
tools/import_borrowers.pl
tools/inventory.pl
tools/modborrowers.pl
tools/overduerules.pl
tools/viewlog.pl
virtualshelves/downloadshelf.pl
virtualshelves/shelves.pl

index 1874289..76b6e64 100644 (file)
@@ -2291,7 +2291,7 @@ sub GetHistory {
         push @query_params, @$ordernumbers;
     }
     if ( @$additional_fields ) {
-        my @baskets = Koha::Acquisition::Baskets->filter_by_additional_fields($additional_fields);
+        my @baskets = Koha::Acquisition::Baskets->filter_by_additional_fields($additional_fields)->as_list;
 
         return [] unless @baskets;
 
index 650618b..7f9d4e3 100644 (file)
@@ -540,7 +540,7 @@ sub get_template_and_user {
             EnableBorrowerFiles                                                        => C4::Context->preference('EnableBorrowerFiles'),
             UseCourseReserves                                                          => C4::Context->preference("UseCourseReserves"),
             useDischarge                                                               => C4::Context->preference('useDischarge'),
-            pending_checkout_notes                                                     => scalar Koha::Checkouts->search({ noteseen => 0 }),
+            pending_checkout_notes                                                     => Koha::Checkouts->search({ noteseen => 0 }),
         );
     }
     else {
@@ -582,7 +582,7 @@ sub get_template_and_user {
             $opac_name = C4::Context->userenv->{'branch'};
         }
 
-        my @search_groups = Koha::Library::Groups->get_search_groups({ interface => 'opac' });
+        my @search_groups = Koha::Library::Groups->get_search_groups({ interface => 'opac' })->as_list;
         $template->param(
             AnonSuggestions                       => "" . C4::Context->preference("AnonSuggestions"),
             LibrarySearchGroups                   => \@search_groups,
@@ -1156,7 +1156,7 @@ sub checkauth {
                         $register_id   = $register->id   if ($register);
                         $register_name = $register->name if ($register);
                     }
-                    my $branches = { map { $_->branchcode => $_->unblessed } Koha::Libraries->search };
+                    my $branches = { map { $_->branchcode => $_->unblessed } Koha::Libraries->search->as_list };
                     if ( $type ne 'opac' and C4::Context->preference('AutoLocation') ) {
 
                         # we have to check they are coming from the right ip range
@@ -1578,7 +1578,7 @@ sub check_api_auth {
                     my $library = Koha::Libraries->find($branchcode);
                     $branchname = $library? $library->branchname: '';
                 }
-                my $branches = { map { $_->branchcode => $_->unblessed } Koha::Libraries->search };
+                my $branches = { map { $_->branchcode => $_->unblessed } Koha::Libraries->search->as_list };
                 foreach my $br ( keys %$branches ) {
 
                     #     now we work with the treatment of ip
index d59fbf6..ea1fc1c 100644 (file)
@@ -837,7 +837,7 @@ sub CanBookBeIssued {
     my $no_issues_charge_guarantees = C4::Context->preference("NoIssuesChargeGuarantees");
     $no_issues_charge_guarantees = undef unless looks_like_number( $no_issues_charge_guarantees );
     if ( defined $no_issues_charge_guarantees ) {
-        my @guarantees = map { $_->guarantee } $patron->guarantee_relationships();
+        my @guarantees = map { $_->guarantee } $patron->guarantee_relationships->as_list;
         my $guarantees_non_issues_charges = 0;
         foreach my $g ( @guarantees ) {
             $guarantees_non_issues_charges += $g->account->non_issues_charges;
index b8abe21..b7cf0c7 100644 (file)
@@ -429,7 +429,7 @@ sub MapItemsToHoldRequests {
 
     map { $_->{_object} = Koha::Items->find( $_->{itemnumber} ) } @$available_items;
     my $libraries = {};
-    map { $libraries->{$_->id} = $_ } Koha::Libraries->search();
+    map { $libraries->{$_->id} = $_ } Koha::Libraries->search->as_list;
 
     # group available items by itemnumber
     my %items_by_itemnumber = map { $_->{itemnumber} => $_ } @$available_items;
index 9c2fc94..52585ac 100644 (file)
@@ -548,7 +548,7 @@ sub GetPatronInfo {
                     value_description => $_->description, # Awkward retro-compability...
                   }
                   : ()
-            } $patron->extended_attributes->search
+            } $patron->extended_attributes->search->as_list
         ];
     }
 
index 45d30d9..2526e5c 100644 (file)
@@ -331,8 +331,8 @@ sub grid {
     my ($class, $where) = @_;
     my @branch_prefs = $class->find($where);
     my @default_prefs = $class->find({ branchcode => '*', notification => $where->{notification} });
-    my @cc = Koha::Patron::Categories->search_with_library_limits;
-    my @it = Koha::ItemTypes->search;
+    my @cc = Koha::Patron::Categories->search_with_library_limits->as_list;
+    my @it = Koha::ItemTypes->search->as_list;
     my $notification = $where->{notification};
     my %disabled = map {
         my $key = $_->categorycode . "-" . $_->item_type . "-" . $notification;
index 143f410..0919ac9 100644 (file)
@@ -167,7 +167,7 @@ sub patronflags {
     $no_issues_charge_guarantees = undef unless looks_like_number( $no_issues_charge_guarantees );
     if ( defined $no_issues_charge_guarantees ) {
         my $p = Koha::Patrons->find( $patroninformation->{borrowernumber} );
-        my @guarantees = map { $_->guarantee } $p->guarantee_relationships;
+        my @guarantees = map { $_->guarantee } $p->guarantee_relationships->as_list;
         my $guarantees_non_issues_charges = 0;
         foreach my $g ( @guarantees ) {
             $guarantees_non_issues_charges += $g->account->non_issues_charges;
index 54a4264..1f63ce3 100644 (file)
@@ -652,7 +652,7 @@ sub GetBranchcodesWithOverdueRules {
     |);
     if ( $branchcodes->[0] eq '' ) {
         # If a default rule exists, all branches should be returned
-        return map { $_->branchcode } Koha::Libraries->search({}, { order_by => 'branchname' });
+        return map { $_->branchcode } Koha::Libraries->search({}, { order_by => 'branchname' })->as_list;
     }
     return @$branchcodes;
 }
index 8439588..25773fd 100644 (file)
@@ -989,7 +989,7 @@ Unsuspends all suspended reserves with a suspend_until date from before today.
 sub AutoUnsuspendReserves {
     my $today = dt_from_string();
 
-    my @holds = Koha::Holds->search( { suspend_until => { '<=' => $today->ymd() } } );
+    my @holds = Koha::Holds->search( { suspend_until => { '<=' => $today->ymd() } } )->as_list;
 
     map { $_->resume() } @holds;
 }
@@ -1414,7 +1414,7 @@ AllowHoldsOnDamagedItems or 'holdallowed' own/sibling library)
 sub ItemsAnyAvailableAndNotRestricted {
     my $param = shift;
 
-    my @items = Koha::Items->search( { biblionumber => $param->{biblionumber} } );
+    my @items = Koha::Items->search( { biblionumber => $param->{biblionumber} } )->as_list;
 
     foreach my $i (@items) {
         my $reserves_control_branch =
@@ -1553,7 +1553,7 @@ sub SuspendAll {
     $params->{borrowernumber} = $borrowernumber if $borrowernumber;
     $params->{biblionumber}   = $biblionumber if $biblionumber;
 
-    my @holds = Koha::Holds->search($params);
+    my @holds = Koha::Holds->search($params)->as_list;
 
     if ($suspend) {
         map { $_->suspend_hold($suspend_until) } @holds;
@@ -2287,7 +2287,7 @@ sub GetMaxPatronHoldsForRecord {
     my ( $borrowernumber, $biblionumber ) = @_;
 
     my $patron = Koha::Patrons->find($borrowernumber);
-    my @items = Koha::Items->search( { biblionumber => $biblionumber } );
+    my @items = Koha::Items->search( { biblionumber => $biblionumber } )->as_list;
 
     my $controlbranch = C4::Context->preference('ReservesControlBranch');
 
index e40dbdb..033904f 100644 (file)
@@ -565,7 +565,7 @@ sub build_patron_attributes_string {
                     borrowernumber => $self->{borrowernumber},
                     code           => $a->{code}
                 }
-            );
+            )->as_list;
 
             foreach my $attribute ( @attributes ) {
                 my $value = $attribute->attribute();
index 0bf8c6d..18a2977 100644 (file)
@@ -307,7 +307,7 @@ sub getRecords {
     my $results_hashref = ();
 
     # TODO simplify this structure ( { branchcode => $branchname } is enought) and remove this parameter
-    $branches ||= { map { $_->branchcode => { branchname => $_->branchname } } Koha::Libraries->search };
+    $branches ||= { map { $_->branchcode => { branchname => $_->branchname } } Koha::Libraries->search->as_list };
 
     # Initialize variables for the faceted results objects
     my $facets_counter = {};
@@ -1638,7 +1638,7 @@ sub searchResults {
     });
 
     #Build branchnames hash
-    my %branches = map { $_->branchcode => $_->branchname } Koha::Libraries->search({}, { order_by => 'branchname' });
+    my %branches = map { $_->branchcode => $_->branchname } Koha::Libraries->search({}, { order_by => 'branchname' })->as_list;
 
 # FIXME - We build an authorised values hash here, using the default framework
 # though it is possible to have different authvals for different fws.
index acc387f..72d1659 100644 (file)
@@ -528,7 +528,7 @@ sub SearchSubscriptions {
     my $additional_fields = $args->{additional_fields} // [];
     my $matching_record_ids_for_additional_fields = [];
     if ( @$additional_fields ) {
-        my @subscriptions = Koha::Subscriptions->filter_by_additional_fields($additional_fields);
+        my @subscriptions = Koha::Subscriptions->filter_by_additional_fields($additional_fields)->as_list;
 
         return () unless @subscriptions;
 
index f69f9e7..7443896 100644 (file)
@@ -342,7 +342,7 @@ sub buildKohaItemsNamespace {
     my $ccodes =
       { 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' });
+    my %branches = map { $_->branchcode => $_->branchname } Koha::Libraries->search({}, { order_by => 'branchname' })->as_list;
 
     my $itemtypes = { map { $_->{itemtype} => $_ } @{ Koha::ItemTypes->search->unblessed } };
     my $xml = '';
index 11aede0..734d3a6 100644 (file)
@@ -91,14 +91,14 @@ sub move {
 
     if ( $where eq 'up' ) {
         unless ( $alert->precedence() == 1 ) {
-            my ($other) = $self->search( { precedence => $alert->precedence() - 1 } );
+            my ($other) = $self->search( { precedence => $alert->precedence() - 1 } )->as_list;
             $other->precedence( $alert->precedence() )->store();
             $alert->precedence( $alert->precedence() - 1 )->store();
         }
     }
     elsif ( $where eq 'down' ) {
         unless ( $alert->precedence() == $self->get_last_precedence() ) {
-            my ($other) = $self->search( { precedence => $alert->precedence() + 1 } );
+            my ($other) = $self->search( { precedence => $alert->precedence() + 1 } )->as_list;
             $other->precedence( $alert->precedence() )->store();
             $alert->precedence( $alert->precedence() + 1 )->store();
         }
@@ -125,7 +125,7 @@ and to have no gaps
 sub fix_precedences {
     my ($self) = @_;
 
-    my @alerts = $self->search();
+    my @alerts = $self->search->as_list;
 
     my $i = 1;
     map { $_->precedence( $i++ )->store() } @alerts;
index 628ddc3..b52c6c7 100644 (file)
@@ -126,7 +126,7 @@ sub get_descriptions_by_koha_field {
     my $cached       = $memory_cache->get_from_cache($cache_key);
     return @$cached if $cached;
 
-    my @avs          = $self->search_by_koha_field($params);
+    my @avs          = $self->search_by_koha_field($params)->as_list;
     my @descriptions = map {
         {
             authorised_value => $_->authorised_value,
index 386512b..480928c 100644 (file)
@@ -155,7 +155,7 @@ sub additional_report {
 
     my $loggedinuser = C4::Context->userenv ? C4::Context->userenv->{'number'} : undef;
     return {
-        lists => scalar Koha::Virtualshelves->search(
+        lists => Koha::Virtualshelves->search(
             [
                 { public => 0, owner => $loggedinuser },
                 { public => 1 }
index d4e00da..b752301 100644 (file)
@@ -71,7 +71,7 @@ sub club_enrollments {
 
     return unless $self->id();
 
-    return scalar Koha::Club::Enrollments->search( { club_id => $self->id(), date_canceled => undef } );
+    return Koha::Club::Enrollments->search( { club_id => $self->id(), date_canceled => undef } );
 }
 
 =head3 club_fields
index 5b89a23..f78e766 100644 (file)
@@ -50,7 +50,7 @@ sub get_enrollable {
     my $borrower = $params->{borrower};
     if ($borrower) {
         delete( $params->{borrower} );
-        my @enrollments = $borrower->get_club_enrollments();
+        my @enrollments = $borrower->get_club_enrollments->as_list;
         if (@enrollments) {
             $params->{'me.id'} = { -not_in => [ map { $_->club()->id() } @enrollments ] };
         }
index ea9ed13..a486d35 100644 (file)
@@ -96,7 +96,7 @@ sub library {
 
 =head3 libraries
 
-my @libraries = $group->libraries( { [invert => 1] } );
+my $libraries = $group->libraries( { [invert => 1] } );
 
 Returns the libraries set as direct children of this group.
 
@@ -117,7 +117,7 @@ sub libraries {
             branchcode => { '!=' => undef },
         },
         { order_by => 'branchcode' }
-    );
+    )->as_list;
 
     my @branchcodes = map { $_->branchcode } @children;
 
@@ -159,7 +159,7 @@ sub all_libraries {
 
 =head3 libraries_not_direct_children
 
-my @libraries = $group->libraries_not_direct_children();
+my $libraries = $group->libraries_not_direct_children();
 
 Returns the libraries *not* set as direct children of this group
 
index f72e544..6b251fd 100644 (file)
@@ -48,7 +48,7 @@ sub get_root_groups {
 
 =head3 get_search_groups
 
-my @search_groups = $self->get_search_groups({[interface => 'staff' || 'opac']}))
+my $search_groups = $self->get_search_groups({[interface => 'staff' || 'opac']}))
 
 Returns search groups for the specified interface.
 Defaults to OPAC if no interface is specified.
index 3ef6931..a412d32 100644 (file)
@@ -28,7 +28,7 @@ Koha::Objects::Mixin::AdditionalFields
 
 =head3 filter_by_additional_fields
 
-    my @objects = Koha::Foos->filter_by_additional_fields([
+    my $objects = Koha::Foos->filter_by_additional_fields([
         {
             id => 1,
             value => 'foo',
index 4fb63af..1f0ca44 100644 (file)
@@ -395,11 +395,11 @@ sub delete {
             # This pref should then govern the results of other routines/methods such as
             # Koha::Virtualshelf->new->delete too.
             # FIXME Could be $patron->get_lists
-            $_->delete for Koha::Virtualshelves->search( { owner => $self->borrowernumber } );
+            $_->delete for Koha::Virtualshelves->search( { owner => $self->borrowernumber } )->as_list;
 
             # We cannot have a FK on borrower_modifications.borrowernumber, the table is also used
             # for patron selfreg
-            $_->delete for Koha::Patron::Modifications->search( { borrowernumber => $self->borrowernumber } );
+            $_->delete for Koha::Patron::Modifications->search( { borrowernumber => $self->borrowernumber } )->as_list;
 
             $self->SUPER::delete;
 
@@ -1207,7 +1207,7 @@ sub get_overdues {
 
 =head3 get_routing_lists
 
-my @routinglists = $patron->get_routing_lists
+my $routinglists = $patron->get_routing_lists
 
 Returns the routing lists a patron is subscribed to.
 
@@ -1779,7 +1779,7 @@ sub _anonymize_column {
 
 =head3 add_guarantor
 
-    my @relationships = $patron->add_guarantor(
+    my $relationship = $patron->add_guarantor(
         {
             borrowernumber => $borrowernumber,
             relationships  => $relationship,
index 3c92a62..1b42223 100644 (file)
@@ -127,7 +127,7 @@ sub approve {
                         {   borrowernumber => $patron->borrowernumber,
                             code           => $code
                         }
-                    );
+                    )->as_list;
                 }
                 foreach my $attr ( @{$extended_attributes} ) {
                     $attr->{attribute} = exists $attr->{attribute} ? $attr->{attribute} : $attr->{value};
index 839d117..268969a 100644 (file)
@@ -292,8 +292,8 @@ sub get_checkouts {
 
         my $checkouts =
           ($checked_in)
-          ? $c->objects->search( scalar $biblio->old_checkouts )
-          : $c->objects->search( scalar $biblio->current_checkouts );
+          ? $c->objects->search( $biblio->old_checkouts )
+          : $c->objects->search( $biblio->current_checkouts );
 
         return $c->render(
             status  => 200,
index 3da0874..a33ac06 100644 (file)
@@ -75,7 +75,7 @@ sub get {
 
     return try {
         my $patron_id = $c->validation->param('patron_id');
-        my $patron    = $c->objects->find( scalar Koha::Patrons->search_limited, $patron_id );
+        my $patron    = $c->objects->find( Koha::Patrons->search_limited, $patron_id );
 
         unless ($patron) {
             return $c->render(
index 97845a5..85d8cba 100644 (file)
@@ -1354,10 +1354,10 @@ sub get_facetable_fields {
     my @search_field_names = qw( author itype location su-geo title-series subject ccode holdingbranch homebranch ln );
     my @faceted_fields = Koha::SearchFields->search(
         { name => { -in => \@search_field_names }, facet_order => { '!=' => undef } }, { order_by => ['facet_order'] }
-    );
+    )->as_list;
     my @not_faceted_fields = Koha::SearchFields->search(
         { name => { -in => \@search_field_names }, facet_order => undef }, { order_by => ['facet_order'] }
-    );
+    )->as_list;
     # This could certainly be improved
     return ( @faceted_fields, @not_faceted_fields );
 }
index 8f82e02..2cdb1be 100644 (file)
@@ -132,7 +132,7 @@ sub pickup_locations {
               if defined $biblio;
         }
     } else {
-        @libraries = Koha::Libraries->search( { pickup_location => 1 }, { order_by => ['branchname'] } )
+        @libraries = Koha::Libraries->search( { pickup_location => 1 }, { order_by => ['branchname'] } )->as_list
           unless @libraries;
     }
 
index 58e1001..0bc374c 100644 (file)
@@ -80,7 +80,7 @@ sub ListForLibrary {
     my ($self) = @_;
     my $branch_limit =
       C4::Context->userenv ? C4::Context->userenv->{"branch"} : "";
-    return scalar Koha::Desks->search(
+    return Koha::Desks->search(
         { branchcode => $branch_limit },
         { order_by   => { '-asc' => 'desk_name' } }
     );
index 081bc3f..8fbb06a 100644 (file)
@@ -36,8 +36,8 @@ Koha::Uploader - Facilitate file uploads (temporary and permanent)
     # Do something with $upload->count, $upload->result or $upload->err
 
     # get some upload records (in staff) via Koha::UploadedFiles
-    my @uploads1 = Koha::UploadedFiles->search({ filename => $name });
-    my @uploads2 = Koha::UploadedFiles->search_term({ term => $term });
+    my $uploads1 = Koha::UploadedFiles->search({ filename => $name });
+    my $uploads2 = Koha::UploadedFiles->search_term({ term => $term });
 
     # staff download (via Koha::UploadedFile[s])
     my $rec = Koha::UploadedFiles->find( $id );
index 63cfb2a..1ce63d1 100755 (executable)
@@ -97,7 +97,7 @@ if ($op eq ""){
 } elsif ($op eq "batch_details"){
 #display lines inside the selected batch
     # get currencies (for change rates calcs if needed)
-    my @currencies = Koha::Acquisition::Currencies->search;
+    my @currencies = Koha::Acquisition::Currencies->search->as_list;
 
     $template->param("batch_details" => 1,
                      "basketno"      => $cgiparams->{'basketno'},
@@ -611,7 +611,7 @@ sub import_biblios_list {
     my $overlay_action = GetImportBatchOverlayAction($import_batch_id);
     my $nomatch_action = GetImportBatchNoMatchAction($import_batch_id);
     my $item_action = GetImportBatchItemAction($import_batch_id);
-    my @itypes = Koha::ItemTypes->search;
+    my @itypes = Koha::ItemTypes->search->as_list;
     $template->param(biblio_list => \@list,
                         num_results => $num_records,
                         import_batch_id => $import_batch_id,
index 1a2b275..7d9ee55 100755 (executable)
@@ -424,8 +424,8 @@ if ( $op eq 'list' ) {
         unclosable           => @orders || @cancelledorders ? $basket->{is_standing} : 1,
         has_budgets          => $has_budgets,
         duplinbatch          => $duplinbatch,
-        csv_profiles         => [ Koha::CsvProfiles->search({ type => 'sql', used_for => 'export_basket' }) ],
-        available_additional_fields => [ Koha::AdditionalFields->search( { tablename => 'aqbasket' } ) ],
+        csv_profiles         => [ Koha::CsvProfiles->search({ type => 'sql', used_for => 'export_basket' })->as_list ],
+        available_additional_fields => [ Koha::AdditionalFields->search( { tablename => 'aqbasket' } )->as_list ],
         additional_field_values => { map {
             $_->field->name => $_->value
         } Koha::Acquisition::Baskets->find($basketno)->additional_field_values->as_list },
index a7cd098..f813c0e 100755 (executable)
@@ -74,7 +74,7 @@ my $basket;
 my $op = $input->param('op');
 my $is_an_edit = $input->param('is_an_edit');
 
-$template->param( available_additional_fields => [ Koha::AdditionalFields->search( { tablename => 'aqbasket' } ) ] );
+$template->param( available_additional_fields => [ Koha::AdditionalFields->search( { tablename => 'aqbasket' } )->as_list ] );
 
 if ( $op eq 'add_form' ) {
     my @contractloop;
@@ -118,7 +118,7 @@ if ( $op eq 'add_form' ) {
     }
     my @booksellers = Koha::Acquisition::Booksellers->search(
                         undef,
-                        { order_by => { -asc => 'name' } } );
+                        { order_by => { -asc => 'name' } } )->as_list;
 
     $template->param( add_form => 1,
                     basketname => $basket->{'basketname'},
index d3d09dd..51de25d 100755 (executable)
@@ -83,7 +83,7 @@ if ($booksellerid) {
 } else {
     @suppliers = Koha::Acquisition::Booksellers->search(
                         { name => { -like => "%$supplier%" } },
-                        { order_by => { -asc => 'name' } } );
+                        { order_by => { -asc => 'name' } } )->as_list;
 }
 
 my $supplier_count = @suppliers;
index 1964b41..d22babe 100755 (executable)
@@ -117,7 +117,7 @@ elsif ( $op eq 'batch_edit' ) {
     @{$budget_loop} =
       sort { uc( $a->{b_txt} ) cmp uc( $b->{b_txt} ) } @{$budget_loop};
 
-    my @currencies = Koha::Acquisition::Currencies->search;
+    my @currencies = Koha::Acquisition::Currencies->search->as_list;
     $template->param(
         currencies  => \@currencies,
         budget_loop => $budget_loop,
index 6423bd1..a905763 100755 (executable)
@@ -99,7 +99,7 @@ unless ( $input->param('from') ) {
 }
 $filters->{from_placed_on} = output_pref( { dt => $from_placed_on, dateformat => 'iso', dateonly => 1 } );
 $filters->{to_placed_on} = output_pref( { dt => $to_placed_on, dateformat => 'iso', dateonly => 1 } );
-my @additional_fields = Koha::AdditionalFields->search( { tablename => 'aqbasket', searchable => 1 } );
+my @additional_fields = Koha::AdditionalFields->search( { tablename => 'aqbasket', searchable => 1 } )->as_list;
 $template->param( available_additional_fields => \@additional_fields );
 my @additional_field_filters;
 foreach my $additional_field (@additional_fields) {
index b0e1db2..9720ead 100755 (executable)
@@ -87,7 +87,7 @@ if ( $op and $op eq 'do_search' ) {
 }
 
 # Build suppliers list
-my @suppliers      = Koha::Acquisition::Booksellers->search( undef, { order_by => { -asc => 'name' } } );
+my @suppliers      = Koha::Acquisition::Booksellers->search( undef, { order_by => { -asc => 'name' } } )->as_list;
 my $suppliers_loop = [];
 my $suppliername;
 foreach (@suppliers) {
index 5999ab0..43ce396 100755 (executable)
@@ -157,6 +157,6 @@ $template->param(
     estimateddeliverydatefrom => $estimateddeliverydatefrom,
     estimateddeliverydateto   => $estimateddeliverydateto,
        intranetcolorstylesheet => C4::Context->preference("intranetcolorstylesheet"),
-    csv_profiles         => [ Koha::CsvProfiles->search({ type => 'sql', used_for => 'late_orders' }) ],
+    csv_profiles         => [ Koha::CsvProfiles->search({ type => 'sql', used_for => 'late_orders' })->as_list ],
 );
 output_html_with_http_headers $input, $cookie, $template->output;
index 22c7c3c..204448a 100755 (executable)
@@ -326,7 +326,7 @@ $template->param( catalog_details => \@catalog_details, );
 my $suggestion;
 $suggestion = GetSuggestionInfo($suggestionid) if $suggestionid;
 
-my @currencies = Koha::Acquisition::Currencies->search;
+my @currencies = Koha::Acquisition::Currencies->search->as_list;
 my $active_currency = Koha::Acquisition::Currencies->get_active;
 
 # build bookfund list
@@ -367,7 +367,7 @@ if ($basketobj->effective_create_items eq 'ordering' && !$ordernumber) {
 
 # Get the item types list, but only if item_level_itype is YES. Otherwise, it will be in the item, no need to display it in the biblio
 my @itemtypes;
-@itemtypes = Koha::ItemTypes->search unless C4::Context->preference('item-level_itypes');
+@itemtypes = Koha::ItemTypes->search->as_list unless C4::Context->preference('item-level_itypes');
 
 if ( defined $from_subscriptionid ) {
     # Get the last received order for this subscription
index 588b465..e1b76d3 100755 (executable)
@@ -152,7 +152,7 @@ $template->param(
     freight               => $freight,
     name                  => $bookseller->name,
     active_currency       => $active_currency,
-    currencies            => scalar $currencies->search({ rate => { '!=' => 1 } }),
+    currencies            => $currencies->search({ rate => { '!=' => 1 } }),
     invoiceincgst         => $bookseller->invoiceincgst,
     bookfund              => $budget->{budget_name},
     creator               => $creator,
index 6766a1a..82c08e4 100755 (executable)
@@ -96,7 +96,7 @@ if ( $op eq 'display' ) {
     print $query->redirect('/cgi-bin/koha/acqui/acqui-home.pl');
     exit;
 } else {
-    my @currencies = Koha::Acquisition::Currencies->search;
+    my @currencies = Koha::Acquisition::Currencies->search->as_list;
 
     # get option values from TaxRates syspref
     my @gst_values = map {
index 72f9087..06a41aa 100755 (executable)
@@ -119,7 +119,7 @@ if( $basketno && $ordernumber) {
     if( $op eq "do_search" ) {
         my @booksellers = Koha::Acquisition::Booksellers->search(
                             { name     => { -like => "%$query%" } },
-                            { order_by => { -asc => 'name' } } );
+                            { order_by => { -asc => 'name' } } )->as_list;
         $template->param(
             query => $query,
             do_search => 1,
index ed3a9a5..e28151b 100755 (executable)
@@ -61,6 +61,6 @@ if (@delete) {
     Koha::AudioAlerts->fix_precedences();
 }
 
-$template->param( AudioAlertsPage => 1, audio_alerts => scalar Koha::AudioAlerts->search() );
+$template->param( AudioAlertsPage => 1, audio_alerts => Koha::AudioAlerts->search() );
 
 output_html_with_http_headers $cgi, $cookie, $template->output;
index 2fbe31e..aec16d3 100755 (executable)
@@ -78,7 +78,7 @@ if ($op eq 'add_form') {
         push @authorised_value_categories, 'itemtypes';
 
         # build thesaurus categories list
-        my @authtypes = uniq( "", map { $_->authtypecode } Koha::Authority::Types->search );
+        my @authtypes = uniq( "", map { $_->authtypecode } Koha::Authority::Types->search->as_list );
 
        # build value_builder list
        my @value_builder=('');
index f772a84..f99454e 100755 (executable)
@@ -212,7 +212,7 @@ $template->param(
 
 if ( $op eq 'list' ) {
     # build categories list
-    my @categories = Koha::AuthorisedValueCategories->search({ category_name => { -not_in => ['', 'branches', 'itemtypes', 'cn_source']}}, { order_by => ['category_name'] } );
+    my @categories = Koha::AuthorisedValueCategories->search({ category_name => { -not_in => ['', 'branches', 'itemtypes', 'cn_source']}}, { order_by => ['category_name'] } )->as_list;
     my @category_list;
     for my $category ( @categories ) {
         push( @category_list, $category->category_name );
@@ -220,7 +220,7 @@ if ( $op eq 'list' ) {
 
     $searchfield ||= $category_list[0];
 
-    my @avs_by_category = Koha::AuthorisedValues->new->search( { category => $searchfield } );
+    my @avs_by_category = Koha::AuthorisedValues->new->search( { category => $searchfield } )->as_list;
     my @loop_data = ();
     # builds value list
     for my $av ( @avs_by_category ) {
index 88ff021..40b2b34 100755 (executable)
@@ -55,7 +55,7 @@ if ( $op eq 'add_form' ) {
         $template->param( selected_smtp_server => $library->smtp_server );
     }
 
-    my @smtp_servers = Koha::SMTP::Servers->search;
+    my @smtp_servers = Koha::SMTP::Servers->search->as_list;
 
     $template->param(
         library      => $library,
index d8b9733..89b2200 100755 (executable)
@@ -60,8 +60,8 @@ if ( $op eq "add_source" ) {
       $cn_source ? Koha::ClassSources->find($cn_source) : undef;
     $template->param(
         class_source => $class_source,
-        sort_rules   => scalar Koha::ClassSortRules->search,
-        split_rules  => scalar Koha::ClassSplitRules->search,
+        sort_rules   => Koha::ClassSortRules->search,
+        split_rules  => Koha::ClassSplitRules->search,
     );
 }
 elsif ( $op eq "add_source_validate" ) {
index 67b71a3..58bb6b2 100755 (executable)
@@ -47,8 +47,8 @@ sub show {
     );
 
     my $branch   = $input->param('branch') || '*';
-    my @categories = Koha::Patron::Categories->search_with_library_limits;
-    my @item_types = Koha::ItemTypes->search;
+    my @categories = Koha::Patron::Categories->search_with_library_limits->as_list;
+    my @item_types = Koha::ItemTypes->search->as_list;
     my $grid_checkout = $preferences->grid({ branchcode => $branch, notification => 'CHECKOUT' });
     my $grid_checkin  = $preferences->grid({ branchcode => $branch, notification => 'CHECKIN' });
 
index e731cbe..b60e4fd 100755 (executable)
@@ -91,7 +91,7 @@ my @loop_data;
 foreach my $col ( @cols ) {
     my $found;
     my $readonly = $col =~ /\.(biblio|biblioitem|item)number$/;
-    foreach my $row ( $kohafields->search({ kohafield => $col }) ) {
+    foreach my $row ( $kohafields->search({ kohafield => $col })->as_list ) {
         $found = 1;
         push @loop_data, {
             kohafield    => $col,
index 636c3ad..f0f3e0c 100755 (executable)
@@ -97,11 +97,11 @@ if ( $op eq 'add_form' ) {
     $sth2->finish;
     $sth2 = $dbh->prepare("select distinct category from authorised_values");
     $sth2->execute;
-    my @av_cat = Koha::AuthorisedValueCategories->search;
+    my @av_cat = Koha::AuthorisedValueCategories->search->as_list;
     my @authorised_values = map { $_->category_name } @av_cat;
 
     # build thesaurus categories list
-    my @authtypes = uniq( "", map { $_->authtypecode } Koha::Authority::Types->search );
+    my @authtypes = uniq( "", map { $_->authtypecode } Koha::Authority::Types->search->as_list );
 
     # build value_builder list
     my @value_builder = ('');
index 3bff6da..a961b89 100755 (executable)
@@ -55,7 +55,7 @@ if ( $op && $op eq 'update' ) {
     }
 }
 
-my @branches = Koha::Libraries->search();
+my @branches = Koha::Libraries->search->as_list;
 my @branch_od_info;
 foreach my $branch ( @branches ){
     my $od_info =  Koha::Library::OverDriveInfos->find($branch->branchcode);
index f405419..b6d753b 100755 (executable)
@@ -99,7 +99,7 @@ sub _get_chunk {
             } elsif ( $options{'choices'} eq 'staff-templates' ) {
                 $options{'choices'} = { map { $_ => $_ } getallthemes( 'intranet' ) }
             } elsif ( $options{choices} eq 'patron-categories' ) {
-                $options{choices} = { map { $_->categorycode => $_->description } Koha::Patron::Categories->search };
+                $options{choices} = { map { $_->categorycode => $_->description } Koha::Patron::Categories->search->as_list };
                 $add_blank = 1;
             } else {
                 die 'Unrecognized source of preference values: ' . $options{'choices'};
index a259b86..a059ece 100755 (executable)
@@ -62,7 +62,7 @@ elsif ( $op eq 'delete' ) {
     $provider->delete() if $provider;
 }
 
-my @providers = Koha::SMS::Providers->search();
+my @providers = Koha::SMS::Providers->search->as_list;
 
 $template->param( providers => \@providers );
 
index c138093..4af34aa 100755 (executable)
@@ -45,7 +45,7 @@ unless ($update) {
     $have_matrix = keys %$cost_matrix if $cost_matrix;
 }
 
-my @branchloop = map { code => $_->branchcode, name => $_->branchname }, Koha::Libraries->search({}, { order_by => 'branchname' });
+my @branchloop = map { code => $_->branchcode, name => $_->branchname }, Koha::Libraries->search({}, { order_by => 'branchname' })->as_list;
 my (@branchfromloop, @errors);
 foreach my $branchfrom ( @branchloop ) {
     my $fromcode = $branchfrom->{code};
index 80a30ec..f6943d9 100755 (executable)
@@ -126,7 +126,7 @@ my $resultsarray = \@results;
 
 $template->param(
     BIBLIO_RESULTS => $resultsarray,
-    csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc', used_for => 'export_records' }) ],
+    csv_profiles => Koha::CsvProfiles->search({ type => 'marc', used_for => 'export_records' }),
     bib_list => $bib_list,
 );
 
index c1e80bf..f612099 100755 (executable)
@@ -92,7 +92,7 @@ if ($bib_list && $format) {
     print $output;
 
 } else { 
-    $template->param(csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc', used_for => 'export_records' }) ]);
+    $template->param(csv_profiles => Koha::CsvProfiles->search({ type => 'marc', used_for => 'export_records' }));
     $template->param(bib_list => $bib_list); 
     output_html_with_http_headers $query, $cookie, $template->output;
 }
index 8d17dc9..4f36136 100755 (executable)
@@ -47,14 +47,14 @@ my @checkouts = Koha::Checkouts->search(
         join       => 'item',
         order_by   => 'timestamp',
     }
-);
+)->as_list;
 my @old_checkouts = Koha::Old::Checkouts->search(
     { biblionumber => $biblionumber },
     {
         join       => 'item',
         order_by   => 'timestamp',
     }
-);
+)->as_list;
 
 my $biblio = Koha::Biblios->find( $biblionumber );
 
index 0867376..4aec67e 100755 (executable)
@@ -36,7 +36,7 @@ my ($template, $borrowernumber, $cookie) = get_template_and_user({
 my @itemnumbers = $cgi->multi_param('itemnumber');
 my $format = $cgi->param('format') // 'csv';
 
-my @items = Koha::Items->search({ itemnumber => { -in => \@itemnumbers } });
+my @items = Koha::Items->search({ itemnumber => { -in => \@itemnumbers } })->as_list;
 
 if ($format eq 'barcodes') {
     print $cgi->header({
index 7890042..b9cc03b 100755 (executable)
@@ -259,9 +259,9 @@ if ( defined $format ) {
 
 # Display the search form
 
-my @branches = map { value => $_->branchcode, label => $_->branchname }, Koha::Libraries->search( {}, { order_by => 'branchname' } );
+my @branches = map { value => $_->branchcode, label => $_->branchname }, Koha::Libraries->search( {}, { order_by => 'branchname' } )->as_list;
 my @itemtypes;
-foreach my $itemtype ( Koha::ItemTypes->search_with_localization ) {
+foreach my $itemtype ( Koha::ItemTypes->search_with_localization->as_list ) {
     push @itemtypes, {
         value => $itemtype->itemtype,
         label => $itemtype->translated_description,
index 5da9c06..9892429 100755 (executable)
@@ -231,7 +231,7 @@ if($cgi->cookie("intranet_bib_list")){
 }
 
 my @search_groups =
-  Koha::Library::Groups->get_search_groups( { interface => 'staff' } );
+  Koha::Library::Groups->get_search_groups( { interface => 'staff' } )->as_list;
 @search_groups = sort { $a->title cmp $b->title } @search_groups;
 
 $template->param(
index c2864a3..8ce41e8 100755 (executable)
@@ -49,7 +49,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
 
 my $schema = Koha::Database->new->schema;
 
-my @keyboard_shortcuts = Koha::KeyboardShortcuts->search();
+my @keyboard_shortcuts = Koha::KeyboardShortcuts->search->as_list;
 
 # Keyboard shortcuts
 $template->param(
index b4e54ed..8abdca7 100755 (executable)
@@ -83,7 +83,7 @@ my $launcher = sub {
     }
 
     my $cn_source = $cgi->param('cn_source') || C4::Context->preference("DefaultClassificationSource");
-    my @class_sources = Koha::ClassSources->search({ used => 1});
+    my @class_sources = Koha::ClassSources->search({ used => 1})->as_list;
 
     #Don't show half the results of show lt or gt
     $real_limit = $results_per_page if $search ne $q;
index 5bff564..448dd4e 100755 (executable)
@@ -297,7 +297,7 @@ my $launcher = sub {
             }
         );
 
-        my @itemtypes = Koha::ItemTypes->search;
+        my @itemtypes = Koha::ItemTypes->search->as_list;
 
         $template->param(
             itypeloop => \@itemtypes,
index 83dcaf3..565290c 100755 (executable)
@@ -484,7 +484,7 @@ sub plugin {
             }
         );
 
-        my @itemtypes = Koha::ItemTypes->search;
+        my @itemtypes = Koha::ItemTypes->search->as_list;
 
         $template->param(    #classlist => $classlist,
             itypeloop    => \@itemtypes,
index 026483b..2887a06 100755 (executable)
@@ -39,9 +39,9 @@ my $branchcode = defined( $query->param('branchcode') ) ? $query->param('branchc
 
 $template->param(
     branchcode                  => $branchcode,
-    article_requests_requested  => scalar Koha::ArticleRequests->requested($branchcode),
-    article_requests_pending    => scalar Koha::ArticleRequests->pending($branchcode),
-    article_requests_processing => scalar Koha::ArticleRequests->processing($branchcode),
+    article_requests_requested  => Koha::ArticleRequests->requested($branchcode),
+    article_requests_pending    => Koha::ArticleRequests->pending($branchcode),
+    article_requests_processing => Koha::ArticleRequests->processing($branchcode),
 );
 
 output_html_with_http_headers $query, $cookie, $template->output;
index 705ac45..4e31d12 100755 (executable)
@@ -545,11 +545,11 @@ my $view = $batch
 
 my @relatives;
 if ( $patron ) {
-    if ( my @guarantors = $patron->guarantor_relationships()->guarantors() ) {
+    if ( my @guarantors = $patron->guarantor_relationships()->guarantors->as_list ) {
         push( @relatives, $_->id ) for @guarantors;
-        push( @relatives, $_->id ) for $patron->siblings();
+        push( @relatives, $_->id ) for $patron->siblings->as_list;
     } else {
-        push( @relatives, $_->id ) for $patron->guarantee_relationships()->guarantees();
+        push( @relatives, $_->id ) for $patron->guarantee_relationships()->guarantees->as_list;
     }
 }
 my $relatives_issues_count =
@@ -603,7 +603,7 @@ $template->param(
 
 
 if ( C4::Context->preference("ExportCircHistory") ) {
-    $template->param(csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc' }) ]);
+    $template->param(csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc' })->as_list ]);
 }
 
 my $has_modifications = Koha::Patron::Modifications->search( { borrowernumber => $borrowernumber } )->count;
index fad59fd..da5c0c3 100755 (executable)
@@ -53,7 +53,7 @@ my @transfers = Koha::Libraries->search(
         prefetch => 'branchtransfers_tobranches',
         order_by => 'branchtransfers_tobranches.tobranch'
     }
-);
+)->as_list;
 
 $template->param(
     libraries => \@transfers,
index bb4dee6..05d7fe9 100755 (executable)
@@ -45,8 +45,8 @@ my $club_id = $cgi->param('club_id');
 my $club_template = $club_template_id ? Koha::Club::Templates->find( $club_template_id ) : undef;
 my $club = $club_id ? Koha::Clubs->find( $club_id ) : undef;
 
-my @club_templates = Koha::Club::Templates->search();
-my @clubs          = Koha::Clubs->search();
+my @club_templates = Koha::Club::Templates->search->as_list;
+my @clubs          = Koha::Clubs->search->as_list;
 
 $template->param(
     stored         => $stored,
index 1a12083..bc0a405 100755 (executable)
@@ -42,8 +42,8 @@ my $patronnumber = $cgi->param('borrowernumber');
 
 my $patron = Koha::Patrons->find($patronnumber);
 
-my @enrollments = $patron->get_club_enrollments();
-my @clubs       = $patron->get_enrollable_clubs();
+my @enrollments = $patron->get_club_enrollments->as_list;
+my @clubs       = $patron->get_enrollable_clubs->as_list;
 
 $template->param(
     enrollments    => \@enrollments,
index 6898e5b..ea2305b 100755 (executable)
@@ -429,7 +429,7 @@ $template->param(
     backends   => $backends,
     types      => [ "Book", "Article", "Journal" ],
     query_type => $op,
-    branches   => scalar Koha::Libraries->search,
+    branches   => Koha::Libraries->search,
 );
 
 output_html_with_http_headers( $cgi, $cookie, $template->output );
index a235697..d05f604 100755 (executable)
@@ -84,7 +84,7 @@ if ($op) {
 
         $template->param(
             fresh_api_key => $api_key,
-            api_keys      => scalar Koha::ApiKeys->search({ patron_id => $patron_id }),
+            api_keys      => Koha::ApiKeys->search({ patron_id => $patron_id }),
         );
     }
 
@@ -121,7 +121,7 @@ if ($op) {
     }
 }
 
-my @api_keys = Koha::ApiKeys->search({ patron_id => $patron_id });
+my @api_keys = Koha::ApiKeys->search({ patron_id => $patron_id })->as_list;
 
 $template->param(
     api_keys   => \@api_keys,
index 303fdb9..320d373 100755 (executable)
@@ -177,7 +177,7 @@ my $total = $patron->account->balance;
 my @accountlines = Koha::Account::Lines->search(
     { borrowernumber => $patron->borrowernumber },
     { order_by       => { -desc => 'accountlines_id' } }
-);
+)->as_list;
 
 my $totalcredit;
 if($total <= 0){
index 943230b..7ec9b95 100755 (executable)
@@ -115,7 +115,7 @@ else {
 
     my @credit_types = Koha::Account::CreditTypes->search_with_library_limits(
         { can_be_added_manually => 1, archived => 0 },
-        {}, $library_id );
+        {}, $library_id )->as_list;
 
     $template->param(
         patron       => $patron,
index ce1826a..7ab302b 100755 (executable)
@@ -207,7 +207,7 @@ if ($add) {
 
 my @debit_types = Koha::Account::DebitTypes->search_with_library_limits(
   { can_be_invoiced => 1, archived => 0 },
-  {}, $library_id );
+  {}, $library_id )->as_list;
 
 $template->param(
   debit_types => \@debit_types,
index 38f2a2b..98c62f2 100755 (executable)
@@ -68,7 +68,7 @@ if ( $borrowernumber and not $patron ) {
 }
 
 if ( C4::Context->preference('SMSSendDriver') eq 'Email' ) {
-    my @providers = Koha::SMS::Providers->search();
+    my @providers = Koha::SMS::Providers->search->as_list;
     $template->param( sms_providers => \@providers );
 }
 
@@ -96,7 +96,7 @@ my $userenv = C4::Context->userenv;
 my @messages;
 
 ## Deal with guarantor stuff
-$template->param( relationships => scalar $patron->guarantor_relationships ) if $patron;
+$template->param( relationships => $patron->guarantor_relationships ) if $patron;
 
 my @relations = split /\|/, C4::Context->preference('borrowerRelationship'), -1;
 @relations = ('') unless @relations;
index 55b3f3e..8111eee 100755 (executable)
@@ -43,7 +43,7 @@ if( Koha::Libraries->search->count < 1){
     $template->param(no_branches => 1);
 }
 
-my @categories = Koha::Patron::Categories->search_with_library_limits;
+my @categories = Koha::Patron::Categories->search_with_library_limits->as_list;
 if(scalar(@categories) < 1){
     $no_add = 1;
     $template->param(no_categories => 1);
index e6dffec..b34a8b3 100755 (executable)
@@ -59,7 +59,7 @@ foreach my $pm (@$pending_modifications) {
     foreach my $type (@modified_atypes) {
         my $type_obj = Koha::Patron::Attribute::Types->find($type);
         my @before   = Koha::Patron::Attributes->search(
-            { borrowernumber => $pm->{borrowernumber}, code => $type } );
+            { borrowernumber => $pm->{borrowernumber}, code => $type } )->as_list;
         my @after = grep { $_->code eq $type } @{ $pm->{extended_attributes} };
         push @{$modified_attributes}, { type => $type_obj, before => \@before, after => \@after };
     }
index af3d324..2d5a1d1 100755 (executable)
@@ -95,11 +95,11 @@ $template->param( flagged => 1 ) if $patron->account_locked;
 
 my @relatives;
 my $guarantor_relationships = $patron->guarantor_relationships;
-my @guarantees              = $patron->guarantee_relationships->guarantees;
-my @guarantors              = $guarantor_relationships->guarantors;
+my @guarantees              = $patron->guarantee_relationships->guarantees->as_list;
+my @guarantors              = $guarantor_relationships->guarantors->as_list;
 if (@guarantors) {
     push( @relatives, $_->id ) for @guarantors;
-    push( @relatives, $_->id ) for $patron->siblings();
+    push( @relatives, $_->id ) for $patron->siblings->as_list;
 }
 else {
     push( @relatives, $_->id ) for @guarantees;
@@ -162,7 +162,7 @@ if (C4::Context->preference('EnhancedMessagingPreferences')) {
 }
 
 if ( C4::Context->preference("ExportCircHistory") ) {
-    $template->param(csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc' }) ]);
+    $template->param(csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc' })->as_list ]);
 }
 
 my $patron_messages = Koha::Patron::Messages->search(
index d5cbd60..d69b406 100755 (executable)
@@ -125,7 +125,7 @@ if ( $selected_accts ) {
     @selected_accountlines = Koha::Account::Lines->search(
         $search_params,
         { order_by => 'date' }
-    );
+    )->as_list;
 
     my $sum = Koha::Account::Lines->search(
         $search_params,
index ead651b..1fd226d 100755 (executable)
@@ -49,7 +49,7 @@ my $patron         = Koha::Patrons->find( $borrowernumber );
 output_and_exit_if_error( $input, $cookie, $template, { module => 'members', logged_in_user => $logged_in_user, current_patron => $patron } );
 
 my $overdues = [
-    map { $_->unblessed_all_relateds } $patron->get_overdues
+    map { $_->unblessed_all_relateds } $patron->get_overdues->as_list
 ];
 
 my $letter = parse_overdues_letter(
index 0742411..765687f 100755 (executable)
@@ -80,7 +80,7 @@ elsif ( $op eq 'update' ) {
     # But we should not hit that with a normal use of the interface
     die "You are doing something wrong updating this child" unless $adult_category;
 
-    $_->delete() for $patron->guarantor_relationships();
+    $_->delete() for $patron->guarantor_relationships->as_list;
 
     $patron->categorycode($adult_category->categorycode);
     $patron->store;
index 374c2d1..030b147 100755 (executable)
@@ -86,7 +86,7 @@ foreach my $m (@metadatas) {
     if ($delete_items) {
         my $deleted_count = 0;
         my $biblio = Koha::Biblios->find( $biblionumber );
-        my @items = Koha::Items->search( { biblionumber => $biblionumber } );
+        my @items = Koha::Items->search( { biblionumber => $biblionumber } )->as_list;
         foreach my $item ( @items ) {
             my $itemnumber = $item->itemnumber;
 
index ce95202..2559ed8 100755 (executable)
@@ -81,7 +81,7 @@ my @patron_ids = map { $_->borrowernumber } Koha::Account::Lines->search(
             columns  => [ qw/borrowernumber/ ],
             distinct => 1,
         }
-    );
+    )->as_list;
 
 my $patrons = Koha::Patrons->search({ borrowernumber => { -in => \@patron_ids } });
 
index a3243d4..8c3f758 100755 (executable)
@@ -39,8 +39,8 @@ my $borrowernumber = $cgi->param('borrowernumber');
 
 my $borrower = Koha::Patrons->find($borrowernumber);
 
-my @enrollments = $borrower->get_club_enrollments();
-my @clubs = $borrower->get_enrollable_clubs( my $opac = 1 );
+my @enrollments = $borrower->get_club_enrollments->as_list;
+my @clubs = $borrower->get_enrollable_clubs( my $opac = 1 )->as_list;
 
 $template->param(
     enrollments => \@enrollments,
index 1de5617..c47bd58 100755 (executable)
@@ -50,7 +50,7 @@ if ( C4::Context->preference('AllowPatronToSetFinesVisibilityForGuarantor')
     my @relatives;
 
     # Filter out guarantees that don't want guarantor to see checkouts
-    foreach my $gr ( $patron->guarantee_relationships() ) {
+    foreach my $gr ( $patron->guarantee_relationships->as_list ) {
         my $g = $gr->guarantee;
         if ( $g->privacy_guarantor_fines ) {
 
index ef137b9..cf7d959 100755 (executable)
@@ -179,7 +179,7 @@ $template->param(
     csv_profiles => [
         Koha::CsvProfiles->search(
             { type => 'marc', used_for => 'export_records', staff_only => 0 }
-        )
+        )->as_list
     ],
     bib_list => $bib_list,
     BIBLIO_RESULTS => $resultsarray,
index ade1a53..c911647 100755 (executable)
@@ -137,7 +137,7 @@ if ($bib_list && $format) {
                     used_for   => 'export_records',
                     staff_only => 0
                 }
-            )
+            )->as_list
         ]
     );
     $template->param(bib_list => $bib_list); 
index 31da711..8eff0f6 100755 (executable)
@@ -153,7 +153,7 @@ if ( $shelf and $shelf->can_be_viewed( $borrowernumber ) ) {
                         used_for   => 'export_records',
                         staff_only => 0
                     }
-                )
+                )->as_list
             ]
         );
         $template->param( shelf => $shelf );
index 03c25fd..3bac68a 100755 (executable)
@@ -86,7 +86,7 @@ if ( $action eq 'create' || $action eq 'new' ) {
     $params = { branchcode => { -in => \@PatronSelfRegistrationLibraryList } }
       if @PatronSelfRegistrationLibraryList;
 }
-my @libraries = Koha::Libraries->search($params);
+my @libraries = Koha::Libraries->search($params)->as_list;
 
 my ( $min, $max ) = C4::Members::get_cardnumber_length();
 if ( defined $min ) {
@@ -698,7 +698,7 @@ sub ParsePatronAttributes {
     my @values = $cgi->multi_param('patron_attribute_value');
 
     my @editable_attribute_types
-        = map { $_->code } Koha::Patron::Attribute::Types->search({ opac_editable => 1 });
+        = map { $_->code } Koha::Patron::Attribute::Types->search({ opac_editable => 1 })->as_list;
 
     my $ea = each_array( @codes, @values );
     my @attributes;
index 4064383..d8ab5ec 100755 (executable)
@@ -79,7 +79,7 @@ $template->param(
                   TalkingTechItivaPhone        =>  C4::Context->preference("TalkingTechItivaPhoneNotification") );
 
 if ( C4::Context->preference("SMSSendDriver") eq 'Email' ) {
-    my @providers = Koha::SMS::Providers->search();
+    my @providers = Koha::SMS::Providers->search->as_list;
     $template->param( sms_providers => \@providers, sms_provider_id => $patron->sms_provider_id );
 }
 
index 8d5fe07..b731c6a 100755 (executable)
@@ -436,7 +436,7 @@ my %is_nolimit = map { $_ => 1 } @nolimits;
 if (@searchCategories > 0) {
     my @tabcat;
     foreach my $typecategory (@searchCategories) {
-        my @itemtypes = Koha::ItemTypes->search({ searchcategory => $typecategory });
+        my @itemtypes = Koha::ItemTypes->search({ searchcategory => $typecategory })->as_list;
         push @tabcat, $_->itemtype for @itemtypes;
     }
 
index 78ce49d..f2d2ae6 100755 (executable)
@@ -400,7 +400,7 @@ if ( $op eq 'view' ) {
                 csv_profiles => [
                     Koha::CsvProfiles->search(
                         { type => 'marc', used_for => 'export_records', staff_only => 0 }
-                    )
+                    )->as_list
                 ],
             );
             if ( $page ) {
index e610cab..83ef251 100755 (executable)
@@ -370,7 +370,7 @@ if (   C4::Context->preference('AllowPatronToSetCheckoutsVisibilityForGuarantor'
 {
     my @relatives;
     # Filter out guarantees that don't want guarantor to see checkouts
-    foreach my $gr ( $patron->guarantee_relationships() ) {
+    foreach my $gr ( $patron->guarantee_relationships->as_list ) {
         my $g = $gr->guarantee;
         push( @relatives, $g ) if $g->privacy_guarantor_checkouts;
     }
@@ -382,7 +382,7 @@ if (   C4::Context->preference('AllowPatronToSetFinesVisibilityForGuarantor')
 {
     my @relatives_with_fines;
     # Filter out guarantees that don't want guarantor to see checkouts
-    foreach my $gr ( $patron->guarantee_relationships() ) {
+    foreach my $gr ( $patron->guarantee_relationships->as_list ) {
         my $g = $gr->guarantee;
         push( @relatives_with_fines, $g ) if $g->privacy_guarantor_fines;
     }
index 1d27870..d6cc868 100755 (executable)
@@ -181,7 +181,7 @@ else {
 
     my $CGIsepChoice = GetDelimiterChoices;
 
-    my @branches = Koha::Libraries->search({}, { order_by => 'branchname' });
+    my @branches = Koha::Libraries->search({}, { order_by => 'branchname' })->as_list;
 
     my $ccode_subfield_structure = GetMarcSubfieldStructureFromKohaField('items.ccode');
     my $ccode_label;
index f636f6b..188034c 100755 (executable)
@@ -219,7 +219,7 @@ sub calculate {
         }
     }
 
-    my @branchcodes = map { $_->branchcode } Koha::Libraries->search;
+    my @branchcodes = map { $_->branchcode } Koha::Libraries->search->as_list;
        ($status  ) and push @loopfilter,{crit=>"Status",  filter=>$status  };
        ($activity) and push @loopfilter,{crit=>"Activity",filter=>$activity};
 # year of activity
index f5209b2..ca0b8ec 100755 (executable)
@@ -82,7 +82,7 @@ $template->param(do_it => $do_it,
 
 our $itemtypes = Koha::ItemTypes->search_with_localization->unblessed;
 
-our @patron_categories = Koha::Patron::Categories->search_with_library_limits({}, {order_by => ['description']});
+our @patron_categories = Koha::Patron::Categories->search_with_library_limits({}, {order_by => ['description']})->as_list;
 
 our $locations = { map { ( $_->{authorised_value} => $_->{lib} ) } Koha::AuthorisedValues->get_descriptions_by_koha_field( { frameworkcode => '', kohafield => 'items.location' }, { order_by => ['description'] } ) };
 our $ccodes = { map { ( $_->{authorised_value} => $_->{lib} ) } Koha::AuthorisedValues->get_descriptions_by_koha_field( { frameworkcode => '', kohafield => 'items.ccode' }, { order_by => ['description'] } ) };
index cb63a6e..94bd5da 100755 (executable)
@@ -70,7 +70,7 @@ $sep = "\t" if ($sep eq 'tabulation');
 $template->param(do_it => $do_it,
 );
 
-my @patron_categories = Koha::Patron::Categories->search_with_library_limits({}, {order_by => ['description']});
+my @patron_categories = Koha::Patron::Categories->search_with_library_limits({}, {order_by => ['description']})->as_list;
 
 my $locations = { map { ( $_->{authorised_value} => $_->{lib} ) } Koha::AuthorisedValues->get_descriptions_by_koha_field( { frameworkcode => '', kohafield => 'items.location' }, { order_by => ['description'] } ) };
 my $ccodes = { map { ( $_->{authorised_value} => $_->{lib} ) } Koha::AuthorisedValues->get_descriptions_by_koha_field( { frameworkcode => '', kohafield => 'items.ccode' }, { order_by => ['description'] } ) };
@@ -325,7 +325,7 @@ sub display_value {
         }
     }
     elsif ( $crit =~ /category/ ) {
-        my @patron_categories = Koha::Patron::Categories->search_with_library_limits({}, {order_by => ['description']});
+        my @patron_categories = Koha::Patron::Categories->search_with_library_limits({}, {order_by => ['description']})->as_list;
         foreach my $patron_category ( @patron_categories ) {
             ( $value eq $patron_category->categorycode ) or next;
             $display_value = $patron_category->description and last;
index 792eb97..ec5d034 100755 (executable)
@@ -682,7 +682,7 @@ if (   ( $findborrower && $borrowernumber_hold || $findclub && $club_hold )
         $template->param( always_show_holds => $always_show_holds );
         my $show_holds_now = $input->param('show_holds_now');
         unless( (defined $always_show_holds && $always_show_holds eq 'DONT') && !$show_holds_now ){
-            my @reserves = Koha::Holds->search( { biblionumber => $biblionumber }, { order_by => 'priority' } );
+            my @reserves = Koha::Holds->search( { biblionumber => $biblionumber }, { order_by => 'priority' } )->as_list;
             foreach my $res (
                 sort {
                     my $a_found = $a->found() || '';
index 1a82075..a2d1ae5 100755 (executable)
@@ -60,7 +60,7 @@ my ($template, $loggedinuser, $cookie)
 my $supplier=$query->param('supplier');
 my @suppliers = Koha::Acquisition::Booksellers->search(
                     { name     => { -like => "%$supplier%" } },
-                    { order_by => { -asc => 'name' } } );
+                    { order_by => { -asc => 'name' } } )->as_list;
 
 #build result page
 my $loop_suppliers = [];
index f988a6c..a4ef35f 100755 (executable)
@@ -96,7 +96,7 @@ $template->param(
         supplierid => $supplierid,
         claimletter => $claimletter,
         additional_fields_for_subscription => $additional_fields,
-        csv_profiles => [ Koha::CsvProfiles->search({ type => 'sql', used_for => 'late_issues' }) ],
+        csv_profiles => [ Koha::CsvProfiles->search({ type => 'sql', used_for => 'late_issues' })->as_list ],
         letters => $letters,
         (uc(C4::Context->preference("marcflavour"))) => 1
         );
index 56a16e6..52d9cdf 100755 (executable)
@@ -76,7 +76,7 @@ if ( $op and $op eq "close" ) {
 }
 
 
-my @additional_fields = Koha::AdditionalFields->search( { tablename => 'subscription', searchable => 1 } );
+my @additional_fields = Koha::AdditionalFields->search( { tablename => 'subscription', searchable => 1 } )->as_list;
 my @additional_field_filters;
 for my $field ( @additional_fields ) {
     my $value = $query->param( 'additional_field_' . $field->id );
@@ -163,7 +163,7 @@ else
         }
     }
 
-    my @branches = Koha::Libraries->search( {}, { order_by => ['branchcode'] } );
+    my @branches = Koha::Libraries->search( {}, { order_by => ['branchcode'] } )->as_list;
     my @branches_loop;
     foreach my $b ( @branches ) {
         my $selected = 0;
index 39426a6..d10c20c 100755 (executable)
@@ -130,7 +130,7 @@ $template->param(
     locations_loop=>$locations_loop,
 );
 
-my @additional_fields = Koha::AdditionalFields->search({ tablename => 'subscription' });
+my @additional_fields = Koha::AdditionalFields->search({ tablename => 'subscription' })->as_list;
 my %additional_field_values;
 if ($subscriptionid) {
     my $subscription = Koha::Subscriptions->find($subscriptionid);
index 4e069b9..556f81e 100755 (executable)
@@ -47,7 +47,7 @@ foreach my $subscriptionid (@subscriptionids) {
     push @subscriptions, $subscription if $subscription;
 }
 
-my @additional_fields = Koha::AdditionalFields->search({tablename => 'subscription'});
+my @additional_fields = Koha::AdditionalFields->search({tablename => 'subscription'})->as_list;
 
 my $batchedit = $cgi->param('batchedit');
 if ($batchedit) {
@@ -98,7 +98,7 @@ if ($batchedit) {
 
 $template->param(
     subscriptions => \@subscriptions,
-    booksellers => [ Koha::Acquisition::Booksellers->search() ],
+    booksellers => [ Koha::Acquisition::Booksellers->search->as_list ],
     additional_fields => \@additional_fields,
     referrer => scalar $cgi->param('referrer'),
 );
index 6e82048..bd59970 100755 (executable)
@@ -126,7 +126,7 @@ my $default_bib_view = get_default_view();
 
 my $subscription_object = Koha::Subscriptions->find( $subscriptionid );
 $template->param(
-    available_additional_fields => [ Koha::AdditionalFields->search( { tablename => 'subscription' } ) ],
+    available_additional_fields => [ Koha::AdditionalFields->search( { tablename => 'subscription' } )->as_list ],
     additional_field_values => {
         map { $_->field->name => $_->value }
           $subscription_object->additional_field_values->as_list
index 5f69087..feb8dc4 100755 (executable)
@@ -456,7 +456,7 @@ if( $suggestion_ref->{STATUS} ) {
     );
 }
 
-my @currencies = Koha::Acquisition::Currencies->search;
+my @currencies = Koha::Acquisition::Currencies->search->as_list;
 $template->param(
     currencies   => \@currencies,
     suggestion   => $suggestion_ref,
index 4f43b3c..5b616e5 100755 (executable)
@@ -27,7 +27,7 @@ BEGIN {
 my $schema = Koha::Database->new()->schema();
 $schema->storage->txn_begin();
 
-map { $_->delete() } Koha::AudioAlerts->search();
+map { $_->delete() } Koha::AudioAlerts->search->as_list;
 
 ## Check the basics
 # Creating 3 audio alerts named a, b and c
@@ -97,7 +97,7 @@ is( $c->precedence, 3, "Alert C has a precedence of 3" );
 $a->move('bottom');
 # Changed precedence order from database insert order
 # Insert order was a, b, c. Precedence order is now b, c, a.
-( $b, $c, $a ) = Koha::AudioAlerts->search();
+( $b, $c, $a ) = Koha::AudioAlerts->search->as_list;
 
 is( $b->selector,   'B', 'First sound is indeed B' );
 is( $b->precedence, 1,   "Alert B has a precedence of 1" );
index d39d131..e9f64ed 100755 (executable)
@@ -111,7 +111,7 @@ $av3->lib_opac('');
 is( $av3->opac_description, 'display value 3', 'Got correction opac description if lib_opac is *not* set' );
 
 my @authorised_values =
-  Koha::AuthorisedValues->new()->search( { category => 'av_for_testing' } );
+  Koha::AuthorisedValues->new()->search( { category => 'av_for_testing' } )->as_list;
 is( @authorised_values, 3, "Get correct number of values" );
 
 my $branchcode1 = $builder->build({ source => 'Branch' })->{branchcode};
@@ -119,14 +119,14 @@ my $branchcode2 = $builder->build({ source => 'Branch' })->{branchcode};
 
 $av1->add_library_limit( $branchcode1 );
 
-@authorised_values = Koha::AuthorisedValues->search_with_library_limits( { category => 'av_for_testing' }, {}, $branchcode1 );
+@authorised_values = Koha::AuthorisedValues->search_with_library_limits( { category => 'av_for_testing' }, {}, $branchcode1 )->as_list;
 is( @authorised_values, 3, "Search including value with a branch limit ( branch can use the limited value ) gives correct number of results" );
 
-@authorised_values = Koha::AuthorisedValues->search_with_library_limits( { category => 'av_for_testing' }, {}, $branchcode2 );
+@authorised_values = Koha::AuthorisedValues->search_with_library_limits( { category => 'av_for_testing' }, {}, $branchcode2 )->as_list;
 is( @authorised_values, 2, "Search including value with a branch limit ( branch *cannot* use the limited value ) gives correct number of results" );
 
 $av1->del_library_limit( $branchcode1 );
-@authorised_values = Koha::AuthorisedValues->search_with_library_limits( { category => 'av_for_testing' }, {}, $branchcode2 );
+@authorised_values = Koha::AuthorisedValues->search_with_library_limits( { category => 'av_for_testing' }, {}, $branchcode2 )->as_list;
 is( @authorised_values, 3, "Branch limitation deleted successfully" );
 
 $av1->add_library_limit( $branchcode1 );
index e31753f..0db0928 100755 (executable)
@@ -516,7 +516,7 @@ is ( GetBudgetOrdered( $fund ), '20', "total ordered price is 20");
 
 # CloneBudgetPeriod
 # Let's make sure our timestamp is old
-my @orig_funds = Koha::Acquisition::Funds->search({ budget_period_id => $budget_period_id });
+my @orig_funds = Koha::Acquisition::Funds->search({ budget_period_id => $budget_period_id })->as_list;
 foreach my $fund (@orig_funds){
     $fund->timestamp('1999-12-31 23:59:59')->store;
 }
index ca80723..f2d5ad6 100755 (executable)
@@ -202,10 +202,10 @@ subtest 'GetItemTypesCategorized test' => sub{
     $insertSth->execute('BKghjklo3', 'Yet another type of book', 'Qwertyware', 0);
 
     # Azertyware should not exist.
-    my @itemtypes = Koha::ItemTypes->search({ searchcategory => 'Azertyware' });
+    my @itemtypes = Koha::ItemTypes->search({ searchcategory => 'Azertyware' })->as_list;
     is( @itemtypes, 0, 'Search item types by searchcategory: Invalid category returns nothing');
 
-    @itemtypes = Koha::ItemTypes->search({ searchcategory => 'Qwertyware' });
+    @itemtypes = Koha::ItemTypes->search({ searchcategory => 'Qwertyware' })->as_list;
     my @got = map { $_->itemtype } @itemtypes;
     my @expected = ( 'BKghjklo2', 'BKghjklo3' );
     is_deeply(\@got,\@expected,'Search item types by searchcategory: valid category returns itemtypes');
index e7e97c1..301a40f 100755 (executable)
@@ -88,7 +88,7 @@ my @baskets = Koha::Acquisition::Baskets->filter_by_additional_fields([
         id => $foo->id,
         value => 'foo value for basket1',
     },
-]);
+])->as_list;
 
 is(scalar @baskets, 1, 'search returns only one result');
 is($baskets[0]->basketno, $basket1->basketno, 'result is basket1');
@@ -98,7 +98,7 @@ is($baskets[0]->basketno, $basket1->basketno, 'result is basket1');
         id => $foo->id,
         value => 'foo value for basket2',
     },
-]);
+])->as_list;
 
 is(scalar @baskets, 1, 'search returns only one result');
 is($baskets[0]->basketno, $basket2->basketno, 'result is basket2');
@@ -112,7 +112,7 @@ is($baskets[0]->basketno, $basket2->basketno, 'result is basket2');
         id => $bar->id,
         value => 'bar value for basket1',
     },
-]);
+])->as_list;
 
 is(scalar @baskets, 1, 'search returns only one result');
 is($baskets[0]->basketno, $basket1->basketno, 'result is basket1');
@@ -126,7 +126,7 @@ is($baskets[0]->basketno, $basket1->basketno, 'result is basket1');
         id => $bar->id,
         value => 'bar value for basket2',
     },
-]);
+])->as_list;
 
 is(scalar @baskets, 0, 'search returns no result');
 
@@ -135,7 +135,7 @@ is(scalar @baskets, 0, 'search returns no result');
         id => $foo->id,
         value => 'foo',
     },
-]);
+])->as_list;
 
 is(scalar @baskets, 2, 'search returns two results');
 
@@ -148,7 +148,7 @@ is(scalar @baskets, 2, 'search returns two results');
         id => $foo->id,
         value => 'basket1',
     },
-]);
+])->as_list;
 
 is(scalar @baskets, 1, 'search returns only one result');
 is($baskets[0]->basketno, $basket1->basketno, 'result is basket1');
index f9ecabf..00e699b 100755 (executable)
@@ -36,7 +36,7 @@ my $library7 = $builder->build( { source => 'Branch' } );
 my $root_group =
   Koha::Library::Group->new( { title => "Test root group" } )->store();
 
-my @root_groups = Koha::Library::Groups->get_root_groups();
+my @root_groups = Koha::Library::Groups->get_root_groups->as_list;
 my $in_list = any { $_->id eq $root_group->id } @root_groups;
 ok( $in_list, 'New root group is in the list returned by the get_root_groups method');
 
@@ -66,7 +66,7 @@ my $library = $groupA_library1->library();
 is( ref( $library ), 'Koha::Library', 'Method library returns a Koha::Library object' );
 is( $library->id, $groupA_library1->branchcode, 'Branchcode for fetched library matches' );
 
-my @libraries_not_direct_children = $groupA->libraries_not_direct_children();
+my @libraries_not_direct_children = $groupA->libraries_not_direct_children->as_list;
 $in_list = any { $_->id eq $groupA_library1->branchcode } @libraries_not_direct_children;
 ok( !$in_list, 'Method libraries_not_direct_children returns all libraries not direct descendants of group, library 1 is not in the list');
 $in_list = any { $_->id eq $groupA1_library2->branchcode } @libraries_not_direct_children;
@@ -119,9 +119,9 @@ subtest 'Koha::Library::Group->get_search_groups' => sub {
     $groupA = Koha::Library::Groups->find( $groupA->id );
     $groupB = Koha::Library::Groups->find( $groupB->id );
 
-    my @groups = Koha::Library::Groups->get_search_groups({ interface => 'opac' });
+    my @groups = Koha::Library::Groups->get_search_groups({ interface => 'opac' })->as_list;
     is_deeply( $groups[0]->unblessed, $groupA->unblessed, 'Get search groups opac should return enabled group' );
-    @groups = Koha::Library::Groups->get_search_groups({ interface => 'staff' });
+    @groups = Koha::Library::Groups->get_search_groups({ interface => 'staff' })->as_list;
     is_deeply( $groups[0]->unblessed, $groupB->unblessed, 'Get search groups staff should return enabled group' );
 };
 
index 55a5db6..13da09b 100755 (executable)
@@ -91,7 +91,7 @@ $dbh->do(q|
         ( '', '', 1, 'LETTER_CODE1', 1, 5, 'LETTER_CODE2', 1, 10, 'LETTER_CODE3', 1 )
 |);
 
-my @branchcodes = map { $_->branchcode } Koha::Libraries->search;
+my @branchcodes = map { $_->branchcode } Koha::Libraries->search->as_list;
 
 my @overdue_branches = C4::Overdues::GetBranchcodesWithOverdueRules();
 is_deeply( [ sort @overdue_branches ], [ sort @branchcodes ], 'If a default rule exists, all branches should be returned' );
index 5fde056..8c90f7e 100755 (executable)
@@ -81,7 +81,7 @@ $b3_new->set({ firstname => 'Some first name for Test 3' })->store();
 $b3_new = Koha::Patrons->find( $b3->borrowernumber() );
 is( t::lib::Dates::compare( $b3_new->updated_on, $now), 0, "borrowers.updated_on should have been set to now on updating" );
 
-my @patrons = Koha::Patrons->search( { branchcode => $branchcode } );
+my @patrons = Koha::Patrons->search( { branchcode => $branchcode } )->as_list;
 is( @patrons, 3, "Found 3 patrons with Search" );
 
 my $unexistent = Koha::Patrons->find( '1234567890' );
index 11f1895..9616d8f 100755 (executable)
@@ -272,7 +272,7 @@ is($holds->next->priority, 0, 'Item is correctly waiting');
 is($holds->next->priority, 1, 'Item is correctly priority 1');
 is($holds->next->priority, 2, 'Item is correctly priority 2');
 
-my @reserves = Koha::Holds->search({ borrowernumber => $requesters{$branch_3} })->waiting();
+my @reserves = Koha::Holds->search({ borrowernumber => $requesters{$branch_3} })->waiting->as_list;
 is( @reserves, 1, 'GetWaiting got only the waiting reserve' );
 is( $reserves[0]->borrowernumber(), $requesters{$branch_3}, 'GetWaiting got the reserve for the correct borrower' );
 
index 8c672ea..69506c0 100755 (executable)
@@ -217,7 +217,7 @@ subtest 'Test delete_missing' => sub {
 subtest 'Call search_term with[out] private flag' => sub {
     plan tests => 3;
 
-    my @recs = Koha::UploadedFiles->search_term({ term => 'file' });
+    my @recs = Koha::UploadedFiles->search_term({ term => 'file' })->as_list;
     is( @recs, 1, 'Returns only one public result' );
     is( $recs[0]->filename, 'file3', 'Should be file3' );
 
@@ -289,10 +289,10 @@ subtest 'Testing delete_temporary' => sub {
     my $today = dt_from_string;
     $today->subtract( minutes => 2 ); # should be enough :)
     my $dt = $today->clone->subtract( days => 1 );
-    foreach my $rec ( Koha::UploadedFiles->search({ permanent => 1 }) ) {
+    foreach my $rec ( Koha::UploadedFiles->search({ permanent => 1 })->as_list ) {
         $rec->dtcreated($dt)->store;
     }
-    my @recs = Koha::UploadedFiles->search({ permanent => 0 });
+    my @recs = Koha::UploadedFiles->search({ permanent => 0 })->as_list;
     $dt = $today->clone->subtract( days => 3 );
     $recs[0]->dtcreated($dt)->store;
     $dt = $today->clone->subtract( days => 5 );
index ac384a8..cead55e 100755 (executable)
@@ -69,7 +69,7 @@ if ( $op eq 'add_form' ) {
                     location   => $additional_content->location,
                     branchcode => $additional_content->branchcode,
                 }
-            )
+            )->as_list
         };
         $category = $additional_content->category;
     }
index 11c412d..b09f781 100755 (executable)
@@ -54,7 +54,7 @@ if ( $op eq 'form' ) {
     # Display the form
     $template->param(
         op => 'form',
-        lists => scalar Koha::Virtualshelves->search(
+        lists => Koha::Virtualshelves->search(
             [
                 { public => 0, owner => $loggedinuser },
                 { public => 1 }
index 1aa7df3..dab8910 100755 (executable)
@@ -82,7 +82,7 @@ if ( $op eq 'form' ) {
     # Display the form
     $template->param(
         view => 'form',
-        lists => scalar Koha::Virtualshelves->search(
+        lists => Koha::Virtualshelves->search(
             [
                 { public => 0, owner => $loggedinuser },
                 { public => 1 }
index 7b96861..4fe6ce5 100755 (executable)
@@ -301,7 +301,7 @@ else {
         itemtypes                => $itemtypes,
         authority_types          => $authority_types,
         export_remove_fields     => C4::Context->preference("ExportRemoveFields"),
-        csv_profiles             => [ Koha::CsvProfiles->search({ type => 'marc', used_for => 'export_records' }) ],
+        csv_profiles             => [ Koha::CsvProfiles->search({ type => 'marc', used_for => 'export_records' })->as_list ],
         messages                 => \@messages,
     );
 
index 949f402..d02d671 100755 (executable)
@@ -76,7 +76,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
 );
 
 # get the patron categories and pass them to the template
-my @patron_categories = Koha::Patron::Categories->search_with_library_limits({}, {order_by => ['description']});
+my @patron_categories = Koha::Patron::Categories->search_with_library_limits({}, {order_by => ['description']})->as_list;
 $template->param( categories => \@patron_categories );
 my $columns = C4::Templates::GetColumnDefs( $input )->{borrowers};
 $columns = [ grep { $_->{field} ne 'borrowernumber' ? $_ : () } @$columns ];
index 52b0599..48de7e9 100755 (executable)
@@ -122,10 +122,10 @@ for my $authvfield (@$statuses) {
 # the full set.
 @notforloans = @{$staton->{'items.notforloan'}} if defined $staton->{'items.notforloan'} and scalar @{$staton->{'items.notforloan'}} > 0;
 
-my @class_sources = Koha::ClassSources->search({ used => 1 });
+my @class_sources = Koha::ClassSources->search({ used => 1 })->as_list;
 my $pref_class = C4::Context->preference("DefaultClassificationSource");
 
-my @itemtypes = Koha::ItemTypes->search;
+my @itemtypes = Koha::ItemTypes->search->as_list;
 my @selected_itemtypes;
 foreach my $itemtype ( @itemtypes ) {
     if ( defined $input->param('itemtype-' . $itemtype->itemtype) ) {
index 4ff7dfe..769c9a4 100755 (executable)
@@ -130,7 +130,7 @@ if ( $op eq 'show' ) {
     my @patron_attributes_codes;
     my $library_id = C4::Context->userenv ? C4::Context->userenv->{'branch'} : undef;
     my $patron_attribute_types = Koha::Patron::Attribute::Types->search_with_library_limits({}, {}, $library_id);
-    my @patron_categories = Koha::Patron::Categories->search_with_library_limits({}, {order_by => ['description']});
+    my @patron_categories = Koha::Patron::Categories->search_with_library_limits({}, {order_by => ['description']})->as_list;
     while ( my $attr_type = $patron_attribute_types->next ) {
         # TODO Repeatable attributes are not correctly managed and can cause data lost.
         # This should be implemented.
index 5cab5a8..1e5d920 100755 (executable)
@@ -32,7 +32,7 @@ use Koha::Patron::Categories;
 our $input = CGI->new;
 my $dbh = C4::Context->dbh;
 
-my @patron_categories = Koha::Patron::Categories->search( { overduenoticerequired => { '>' => 0 } } );
+my @patron_categories = Koha::Patron::Categories->search( { overduenoticerequired => { '>' => 0 } } )->as_list;
 my @category_codes  = map { $_->categorycode } @patron_categories;
 our @rule_params     = qw(delay letter debarred);
 
index 5909cb3..2d9b56e 100755 (executable)
@@ -139,7 +139,7 @@ if ($do_it) {
         $search_params{object} = $object if $object;
     }
 
-    my @logs = Koha::ActionLogs->search(\%search_params);
+    my @logs = Koha::ActionLogs->search(\%search_params)->as_list;
 
     my @data;
     foreach my $log (@logs) {
index 07b2682..e922e9b 100755 (executable)
@@ -100,7 +100,7 @@ if ($shelfid && $format) {
     }
 }
 else {
-    $template->param(csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc', used_for => 'export_records' }) ]);
+    $template->param(csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc', used_for => 'export_records' })->as_list ]);
     $template->param(shelfid => $shelfid); 
 }
 $template->param( messages => \@messages );
index 2cc0976..0ff8d9d 100755 (executable)
@@ -358,7 +358,7 @@ $template->param(
     messages => \@messages,
     public   => $public,
     print    => scalar $query->param('print') || 0,
-    csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc', used_for => 'export_records' }) ],
+    csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc', used_for => 'export_records' })->as_list ],
 );
 
 output_html_with_http_headers $query, $cookie, $template->output;