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: | Change sponsored?: | --- | |
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! |