[Koha-bugs] [Bug 16335] Refactor OpacHiddenItems
bugzilla-daemon at bugs.koha-community.org
bugzilla-daemon at bugs.koha-community.org
Fri Apr 23 21:29:56 CEST 2021
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=16335
Tomás Cohen Arazi <tomascohen at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |WORKSFORME
CC| |tomascohen at gmail.com
--- Comment #6 from Tomás Cohen Arazi <tomascohen at gmail.com> ---
I don't think this is required anymore.
We now pivot on the Koha::Biblio and Koha::Item classes instead of MARC::Record
objects, and we have high level methods to deal with this things:
Koha::Biblio->hidden_in_opac
Koha::Item->hidden_in_opac
and notably
Koha::Items->filter_by_visible_in_opac
They are all aware of OpacHiddenItems and more hiding options as well.
We also have
Koha::Item->as_marc_field
which makes a MARC::Field object out of an item.
So if we wanted to (say) do something with a MARC record, that includes items,
in the OPAC, we could (just a mock, but you get the idea):
my $biblio = Koha::Biblios->find( $biblio_id, { prefetch => [ 'metadata',
'items' ] } );
my $items = $biblio->items;
unless ( $patron and $patron->category->override_hidden_items ) {
$items = $items->filter_by_visible_in_opac({ patron => $patron });
}
my $record = $biblio->metadata->record;
my $processor = Koha::RecordProcessor->new(
{
filters => ('EmbedItems', 'ViewPolicy'),
options => {
interface => 'opac',
framework => $biblio->frameworkcode,
items => $items->as_list
}
}
);
$processor->process( $record );
As you can see, any further hiding of things in the MARC record, should already
be covered by the ViewPolicy filter, applied after the items embedding.
I think Mark will be happy to know we followed his path of fixing this mess!
--
You are receiving this mail because:
You are watching all bug changes.
More information about the Koha-bugs
mailing list