From d69ab6ee9185d124e8d282608e279d8590a6180f Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Mon, 11 May 2020 10:10:39 -0300 Subject: [PATCH] Bug 24458: Use the ViewPolicy filter on search results This patch implements the use of the ViewPolicy record processor filter inside C4::Search::searchResults. The idea is that the $record_processor is instantiated once and reused inside the loop. This leaves options for further optimizations I will do on a follow-up bug. The filter is applied to the MARC data before it is passed to the XSLT processor. To test: 1. Apply the regression tests patch 2. Run: $ kshell k$ prove t/db_dependent/Search.t => FAIL: This is not implemented, tests fail 3. Apply this patch 4. Repeat 2 5. Feel the joy in your body from a long standing bug being solved 6. Sign off :-D Signed-off-by: Tomas Cohen Arazi Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Nick Clemens Signed-off-by: Martin Renvoize --- C4/Search.pm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/C4/Search.pm b/C4/Search.pm index 0ab24a5ff8..cd9b8923bd 100644 --- a/C4/Search.pm +++ b/C4/Search.pm @@ -33,6 +33,7 @@ use Koha::AuthorisedValues; use Koha::ItemTypes; use Koha::Libraries; use Koha::Patrons; +use Koha::RecordProcessor; use YAML; use URI::Escape; use Business::ISBN; @@ -1690,6 +1691,10 @@ sub searchResults { $is_opac = 1; } + my $record_processor = Koha::RecordProcessor->new({ + filters => 'ViewPolicy' + }); + #Build branchnames hash my %branches = map { $_->branchcode => $_->branchname } Koha::Libraries->search({}, { order_by => 'branchname' }); @@ -2087,6 +2092,12 @@ sub searchResults { # XSLT processing of some stuff # we fetched the sysprefs already before the loop through all retrieved record! if (!$scan && $xslfile) { + $record_processor->options({ + frameworkcode => $fw, + interface => $search_context->{'interface'} + }); + + $record_processor->process($marcrecord); $oldbiblio->{XSLTResultsRecord} = XSLTParse4Display($oldbiblio->{biblionumber}, $marcrecord, $xslsyspref, 1, \@hiddenitems, $sysxml, $xslfile, $lang, $xslt_variables); } -- 2.39.5