Bug 39900: Preparation: Refactor public_query_search_params for reusability
Ensure no regressions are introduced, run: prove t/db_dependent/Koha/AdditionalContents.t Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
This commit is contained in:
parent
46eb21993c
commit
224945dc60
|
|
@ -38,6 +38,26 @@ Koha::AdditionalContents - Koha Additional content object set class
|
|||
|
||||
=cut
|
||||
|
||||
=head3 get_public_query_search_params
|
||||
|
||||
my $public_query_search_params = $self->get_public_query_search_params($params);
|
||||
|
||||
=cut
|
||||
|
||||
sub get_public_query_search_params {
|
||||
my ($params) = @_;
|
||||
|
||||
my $search_params;
|
||||
$search_params->{'additional_content.id'} = $params->{id} if $params->{id};
|
||||
$search_params->{location} = $params->{location};
|
||||
$search_params->{branchcode} = $params->{library_id} ? [ $params->{library_id}, undef ] : undef;
|
||||
$search_params->{published_on} = { '<=' => \'CAST(NOW() AS DATE)' } unless $params->{id};
|
||||
$search_params->{expirationdate} = [ '-or', { '>=' => \'CAST(NOW() AS DATE)' }, undef ] unless $params->{id};
|
||||
$search_params->{category} = $params->{category} if $params->{category};
|
||||
|
||||
return $search_params;
|
||||
}
|
||||
|
||||
=head3 search_for_display
|
||||
|
||||
my $contents = Koha::AdditionalContents->search_for_display({
|
||||
|
|
@ -80,15 +100,9 @@ sub search_for_display {
|
|||
my $subquery =
|
||||
qq|(SELECT COUNT(*) FROM additional_contents_localizations WHERE lang='$lang' AND additional_content_id=me.additional_content_id)=0|;
|
||||
|
||||
my $search_params;
|
||||
$search_params->{'additional_content.id'} = $params->{id} if $params->{id};
|
||||
$search_params->{location} = $params->{location};
|
||||
$search_params->{branchcode} = $params->{library_id} ? [ $params->{library_id}, undef ] : undef;
|
||||
$search_params->{published_on} = { '<=' => \'CAST(NOW() AS DATE)' } unless $params->{id};
|
||||
$search_params->{expirationdate} = [ '-or', { '>=' => \'CAST(NOW() AS DATE)' }, undef ] unless $params->{id};
|
||||
$search_params->{category} = $params->{category} if $params->{category};
|
||||
$search_params->{lang} = 'default' if !$lang || $lang eq 'default';
|
||||
$search_params->{-or} = [ { 'lang' => $lang }, '-and' => [ 'lang', 'default', \$subquery ] ]
|
||||
my $search_params = get_public_query_search_params($params);
|
||||
$search_params->{lang} = 'default' if !$lang || $lang eq 'default';
|
||||
$search_params->{-or} = [ { 'lang' => $lang }, '-and' => [ 'lang', 'default', \$subquery ] ]
|
||||
if !$search_params->{lang};
|
||||
|
||||
my $attribs = { prefetch => 'additional_content', order_by => 'additional_content.number' };
|
||||
|
|
|
|||
Loading…
Reference in New Issue