Browse Source

Bug 29844: Fix ->search occurrences

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>
master
Jonathan Druart 4 months ago
committed by Fridolin Somers
parent
commit
e53667105d
  1. 2
      C4/Acquisition.pm
  2. 8
      C4/Auth.pm
  3. 2
      C4/Circulation.pm
  4. 2
      C4/HoldsQueue.pm
  5. 2
      C4/ILSDI/Services.pm
  6. 4
      C4/ItemCirculationAlertPreference.pm
  7. 2
      C4/Members.pm
  8. 2
      C4/Overdues.pm
  9. 8
      C4/Reserves.pm
  10. 2
      C4/SIP/ILS/Patron.pm
  11. 4
      C4/Search.pm
  12. 2
      C4/Serials.pm
  13. 2
      C4/XSLT.pm
  14. 6
      Koha/AudioAlerts.pm
  15. 2
      Koha/AuthorisedValues.pm
  16. 2
      Koha/BackgroundJob/BatchUpdateBiblio.pm
  17. 2
      Koha/Club.pm
  18. 2
      Koha/Clubs.pm
  19. 6
      Koha/Library/Group.pm
  20. 2
      Koha/Library/Groups.pm
  21. 2
      Koha/Objects/Mixin/AdditionalFields.pm
  22. 8
      Koha/Patron.pm
  23. 2
      Koha/Patron/Modification.pm
  24. 4
      Koha/REST/V1/Biblios.pm
  25. 2
      Koha/REST/V1/Patrons.pm
  26. 4
      Koha/SearchEngine/Elasticsearch.pm
  27. 2
      Koha/Template/Plugin/Branches.pm
  28. 2
      Koha/Template/Plugin/Desks.pm
  29. 4
      Koha/Uploader.pm
  30. 4
      acqui/addorderiso2709.pl
  31. 4
      acqui/basket.pl
  32. 4
      acqui/basketheader.pl
  33. 2
      acqui/booksellers.pl
  34. 2
      acqui/duplicate_orders.pl
  35. 2
      acqui/histsearch.pl
  36. 2
      acqui/invoices.pl
  37. 2
      acqui/lateorders.pl
  38. 4
      acqui/neworderempty.pl
  39. 2
      acqui/orderreceive.pl
  40. 2
      acqui/supplier.pl
  41. 2
      acqui/transferorder.pl
  42. 2
      admin/audio_alerts.pl
  43. 2
      admin/auth_subfields_structure.pl
  44. 4
      admin/authorised_values.pl
  45. 2
      admin/branches.pl
  46. 4
      admin/classsources.pl
  47. 4
      admin/item_circulation_alerts.pl
  48. 2
      admin/koha2marclinks.pl
  49. 4
      admin/marc_subfields_structure.pl
  50. 2
      admin/overdrive.pl
  51. 2
      admin/preferences.pl
  52. 2
      admin/sms_providers.pl
  53. 2
      admin/transport-cost-matrix.pl
  54. 2
      basket/basket.pl
  55. 2
      basket/downloadcart.pl
  56. 4
      catalogue/issuehistory.pl
  57. 2
      catalogue/item-export.pl
  58. 4
      catalogue/itemsearch.pl
  59. 2
      catalogue/search.pl
  60. 2
      cataloguing/editor.pl
  61. 2
      cataloguing/value_builder/cn_browser.pl
  62. 2
      cataloguing/value_builder/marc21_linking_section.pl
  63. 2
      cataloguing/value_builder/unimarc_field_4XX.pl
  64. 6
      circ/article-requests.pl
  65. 8
      circ/circulation.pl
  66. 2
      circ/transfers_to_send.pl
  67. 4
      clubs/clubs.pl
  68. 4
      clubs/patron-clubs-tab.pl
  69. 2
      ill/ill-requests.pl
  70. 4
      members/apikeys.pl
  71. 2
      members/boraccount.pl
  72. 2
      members/mancredit.pl
  73. 2
      members/maninvoice.pl
  74. 4
      members/memberentry.pl
  75. 2
      members/members-home.pl
  76. 2
      members/members-update.pl
  77. 8
      members/moremember.pl
  78. 2
      members/paycollect.pl
  79. 2
      members/print_overdues.pl
  80. 2
      members/update-child.pl
  81. 2
      misc/cronjobs/delete_records_via_leader.pl
  82. 2
      misc/cronjobs/reconcile_balances.pl
  83. 4
      opac/clubs/clubs-tab.pl
  84. 2
      opac/opac-account.pl
  85. 2
      opac/opac-basket.pl
  86. 2
      opac/opac-downloadcart.pl
  87. 2
      opac/opac-downloadshelf.pl
  88. 4
      opac/opac-memberentry.pl
  89. 2
      opac/opac-messaging.pl
  90. 2
      opac/opac-search.pl
  91. 2
      opac/opac-shelves.pl
  92. 4
      opac/opac-user.pl
  93. 2
      reports/acquisitions_stats.pl
  94. 2
      reports/borrowers_stats.pl
  95. 2
      reports/issues_stats.pl
  96. 4
      reports/reserves_stats.pl
  97. 2
      reserve/request.pl
  98. 2
      serials/acqui-search-result.pl
  99. 2
      serials/claims.pl
  100. 4
      serials/serials-search.pl

2
C4/Acquisition.pm

@ -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;

8
C4/Auth.pm

@ -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

2
C4/Circulation.pm

@ -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;

2
C4/HoldsQueue.pm

@ -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;

2
C4/ILSDI/Services.pm

@ -548,7 +548,7 @@ sub GetPatronInfo {
value_description => $_->description, # Awkward retro-compability...
}
: ()
} $patron->extended_attributes->search
} $patron->extended_attributes->search->as_list
];
}

4
C4/ItemCirculationAlertPreference.pm

@ -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;

2
C4/Members.pm

@ -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;

2
C4/Overdues.pm

@ -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;
}

8
C4/Reserves.pm

@ -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');

2
C4/SIP/ILS/Patron.pm

@ -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();

4
C4/Search.pm

@ -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.

2
C4/Serials.pm

@ -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;

2
C4/XSLT.pm

@ -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 = '';

6
Koha/AudioAlerts.pm

@ -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;

2
Koha/AuthorisedValues.pm

@ -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,

2
Koha/BackgroundJob/BatchUpdateBiblio.pm

@ -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 }

2
Koha/Club.pm

@ -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

2
Koha/Clubs.pm

@ -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 ] };
}

6
Koha/Library/Group.pm

@ -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

2
Koha/Library/Groups.pm

@ -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.

2
Koha/Objects/Mixin/AdditionalFields.pm

@ -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',

8
Koha/Patron.pm

@ -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,

2
Koha/Patron/Modification.pm

@ -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};

4
Koha/REST/V1/Biblios.pm

@ -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,

2
Koha/REST/V1/Patrons.pm

@ -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(

4
Koha/SearchEngine/Elasticsearch.pm

@ -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 );
}

2
Koha/Template/Plugin/Branches.pm

@ -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;
}

2
Koha/Template/Plugin/Desks.pm

@ -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' } }
);

4
Koha/Uploader.pm

@ -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 );

4
acqui/addorderiso2709.pl

@ -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,

4
acqui/basket.pl

@ -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 },

4
acqui/basketheader.pl

@ -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'},

2
acqui/booksellers.pl

@ -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;

2
acqui/duplicate_orders.pl

@ -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,

2
acqui/histsearch.pl

@ -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) {

2
acqui/invoices.pl

@ -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) {

2
acqui/lateorders.pl

@ -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;

4
acqui/neworderempty.pl

@ -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

2
acqui/orderreceive.pl

@ -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,

2
acqui/supplier.pl

@ -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 {

2
acqui/transferorder.pl

@ -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,

2
admin/audio_alerts.pl

@ -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;

2
admin/auth_subfields_structure.pl

@ -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=('');

4
admin/authorised_values.pl

@ -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 ) {

2
admin/branches.pl

@ -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,

4
admin/classsources.pl

@ -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" ) {

4
admin/item_circulation_alerts.pl

@ -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' });

2
admin/koha2marclinks.pl

@ -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,

4
admin/marc_subfields_structure.pl

@ -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 = ('');

2
admin/overdrive.pl

@ -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);

2
admin/preferences.pl

@ -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'};

2
admin/sms_providers.pl

@ -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 );

2
admin/transport-cost-matrix.pl

@ -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};

2
basket/basket.pl

@ -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,
);

2
basket/downloadcart.pl

@ -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;
}

4
catalogue/issuehistory.pl

@ -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 );

2
catalogue/item-export.pl

@ -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({

4
catalogue/itemsearch.pl

@ -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,

2
catalogue/search.pl

@ -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(

2
cataloguing/editor.pl

@ -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(

2
cataloguing/value_builder/cn_browser.pl

@ -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;

2
cataloguing/value_builder/marc21_linking_section.pl

@ -297,7 +297,7 @@ my $launcher = sub {
}
);
my @itemtypes = Koha::ItemTypes->search;
my @itemtypes = Koha::ItemTypes->search->as_list;
$template->param(
itypeloop => \@itemtypes,

2
cataloguing/value_builder/unimarc_field_4XX.pl

@ -484,7 +484,7 @@ sub plugin {
}
);
my @itemtypes = Koha::ItemTypes->search;
my @itemtypes = Koha::ItemTypes->search->as_list;
$template->param( #classlist => $classlist,
itypeloop => \@itemtypes,

6
circ/article-requests.pl

@ -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;

8
circ/circulation.pl

@ -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;

2
circ/transfers_to_send.pl

@ -53,7 +53,7 @@ my @transfers = Koha::Libraries->search(
prefetch => 'branchtransfers_tobranches',
order_by => 'branchtransfers_tobranches.tobranch'
}
);
)->as_list;
$template->param(
libraries => \@transfers,

4
clubs/clubs.pl

@ -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,

4
clubs/patron-clubs-tab.pl

@ -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,

2
ill/ill-requests.pl

@ -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 );

4
members/apikeys.pl

@ -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,

2
members/boraccount.pl

@ -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){

2
members/mancredit.pl

@ -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,

2
members/maninvoice.pl

@ -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,