| Summary: | Refactor OpacHiddenItems | ||
|---|---|---|---|
| Product: | Koha | Reporter: | Mark Tompsett <mtompset> |
| Component: | OPAC | Assignee: | Mark Tompsett <mtompset> |
| Status: | CLOSED WORKSFORME | QA Contact: | Testopia <testopia> |
| Severity: | enhancement | ||
| Priority: | P5 - low | CC: | tomascohen |
| Version: | Main | ||
| Hardware: | All | ||
| OS: | All | ||
| GIT URL: | Initiative type: | --- | |
| Sponsorship status: | --- | Comma delimited list of Sponsors: | |
| Crowdfunding goal: | 0 | Patch complexity: | --- |
| Documentation contact: | Documentation submission: | ||
| Text to go in the release notes: | Version(s) released in: | ||
| Circulation function: | |||
| Attachments: |
Bug 16335: Refactor OpacHiddenItems
Bug 16335: Refactor OpacHiddenItems Bug 16335: Refactor OpacHiddenItems Bug 16335: get_instance was changed to new? |
||
|
Description
Mark Tompsett
2016-04-25 13:08:04 UTC
Created attachment 52094 [details] [review] Bug 16335: Refactor OpacHiddenItems This creates a filter and adds a test file for that filter. TEST PLAN --------- 1) apply patch 2) prove t/db_dependent/Filter_MARC_OpacHiddenItems.t 3) run koha qa test tools NOTE: I'd ignore the only once warnings. https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=16104#c18 Created attachment 52102 [details] [review] Bug 16335: Refactor OpacHiddenItems This creates a filter and adds a test file for that filter. TEST PLAN --------- 1) apply patch 2) prove t/db_dependent/Filter_MARC_OpacHiddenItems.t 3) run koha qa test tools NOTE: I'd ignore the only once warnings. https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=16104#c18 Created attachment 52103 [details] [review] Bug 16335: Refactor OpacHiddenItems This creates a filter and adds a test file for that filter. TEST PLAN --------- 1) apply patch 2) prove t/db_dependent/Filter_MARC_OpacHiddenItems.t 3) run koha qa test tools NOTE: I'd ignore the only once warnings. https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=16104#c18 Created attachment 55608 [details] [review] Bug 16335: get_instance was changed to new? Hi Mark, are you still working in this? 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!
|