From 7319e93ca989f2abccd15b1aff70ab5904aa3cab Mon Sep 17 00:00:00 2001 From: Mike Rylander Date: Wed, 19 Jul 2017 14:07:39 -0400 Subject: [PATCH] LP#1698206: Make use of current search library in autosuggest Here we teach autosuggest how to check the opac search scope. Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton Signed-off-by: Kathy Lussier --- Open-ILS/src/sql/Pg/030.schema.metabib.sql | 21 ++++++++++++++----- .../XXXX.schema.copy_vis_attr_cache.sql | 16 ++++++++++++-- 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/Open-ILS/src/sql/Pg/030.schema.metabib.sql b/Open-ILS/src/sql/Pg/030.schema.metabib.sql index f79d09e3a8..fb9a83f212 100644 --- a/Open-ILS/src/sql/Pg/030.schema.metabib.sql +++ b/Open-ILS/src/sql/Pg/030.schema.metabib.sql @@ -1826,11 +1826,22 @@ BEGIN visibility_org := NULLIF(visibility_org,-1); IF visibility_org IS NOT NULL THEN - opac_visibility_join := ' - JOIN asset.opac_visible_copies aovc ON ( - aovc.record = x.source AND - aovc.circ_lib IN (SELECT id FROM actor.org_unit_descendants($4)) - )'; + PERFORM FROM actor.org_unit WHERE id = visibility_org AND parent_ou IS NULL; + IF FOUND THEN + opac_visibility_join := ''; + ELSE + opac_visibility_join := ' + JOIN asset.copy_vis_attr_cache acvac ON (acvac.record = x.source) + JOIN vm ON (acvac.vis_attr_vector @@ + (vm.c_attrs || $$&$$ || + search.calculate_visibility_attribute_test( + $$circ_lib$$, + (SELECT ARRAY_AGG(id) FROM actor.org_unit_descendants($4)) + ) + )::query_int + ) +'; + END IF; ELSE opac_visibility_join := ''; END IF; diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.copy_vis_attr_cache.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.copy_vis_attr_cache.sql index 906c82a2b2..c554f247a3 100644 --- a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.copy_vis_attr_cache.sql +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.copy_vis_attr_cache.sql @@ -437,10 +437,22 @@ BEGIN visibility_org := NULLIF(visibility_org,-1); IF visibility_org IS NOT NULL THEN - opac_visibility_join := ' + PERFORM FROM actor.org_unit WHERE id = visibility_org AND parent_ou IS NULL; + IF FOUND THEN + opac_visibility_join := ''; + ELSE + opac_visibility_join := ' JOIN asset.copy_vis_attr_cache acvac ON (acvac.record = x.source) - JOIN vm ON (acvac.vis_attr_vector @@ vm.c_attrs::query_int) + JOIN vm ON (acvac.vis_attr_vector @@ + (vm.c_attrs || $$&$$ || + search.calculate_visibility_attribute_test( + $$circ_lib$$, + (SELECT ARRAY_AGG(id) FROM actor.org_unit_descendants($4)) + ) + )::query_int + ) '; + END IF; ELSE opac_visibility_join := ''; END IF; -- 2.43.2