From: Galen Charlton Date: Mon, 22 Jan 2018 23:01:00 +0000 (-0500) Subject: LP#1745207: tie together copy_tag() and site() search filters X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=d8de66599444d919e854eb511403165cc258ace0;p=evergreen%2Fpines.git LP#1745207: tie together copy_tag() and site() search filters The copy_tag() filter will now restrict itself to records that have copies that both have matching copy tags and a circ_lib within the site() scope. To test ------- [1] Define two digital bookplate copy tags at two difference org units, e.g., "BR1 Smith" at BR1 and "BR4 Smith" at "BR4". [2] Arrange that a record has items in both BR1 and BR4, and assign the "BR4 Smith" copy tag to one of the BR4 items. [3] On a separate record, set up a similar situation, but use BR1 instead. [4] Enable the digital bookplate search option and do a bookplate search for "Smith" with the scope limited to BR1. [5] Note that both of the records set up in #2 and #3 are included in the results set. [6] Apply the patch and repeat step 5. This time, only the record set up in #3 should be included. Signed-off-by: Galen Charlton Signed-off-by: Garry Collum Signed-off-by: Chris Sharp --- diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm index 6141d664ed..0d3c4118e6 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm @@ -1598,6 +1598,7 @@ sub flatten { $with .= " JOIN asset.copy cp ON (acptcm.copy = cp.id)\n"; $with .= " JOIN asset.call_number cn ON (cp.call_number = cn.id)\n"; $with .= " WHERE 1 = 1 \n"; + $with .= " AND cp.circ_lib IN (" . join(',', @$dorgs) . ")\n"; if ($copy_tag_type ne '*') { $with .= " AND cctt.code = " . $self->QueryParser->quote_value($copy_tag_type) . "\n"; }