LP#1743639: opac_visible on acplg is not what it seems
authorMike Rylander <mrylander@gmail.com>
Tue, 16 Jan 2018 19:39:08 +0000 (14:39 -0500)
committerKathy Lussier <klussier@masslnc.org>
Wed, 17 Jan 2018 18:12:47 +0000 (13:12 -0500)
The asset.copy_location_group table has a column called opac_visible.
However, unlike other tables with a column of that name, it controls the
visibility of the location group itself, not the visibility of the copies
within the group.  This is regretable because the 3.0+ search code thinks
that it should hide copies.

This commit adjusts the default location group filter applied to patron
searches so that they act as expected.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Open-ILS/src/sql/Pg/300.schema.staged_search.sql
Open-ILS/src/sql/Pg/upgrade/XXXX.function.copy_location_group_visible.sql [new file with mode: 0644]

index c6cfdf4..5735263 100644 (file)
@@ -755,9 +755,12 @@ $f$ LANGUAGE SQL STABLE;
 
 -- Copy-oriented defaults for search
 CREATE OR REPLACE FUNCTION asset.location_group_default () RETURNS TEXT AS $f$
+    SELECT '!()'::TEXT; -- For now, as there's no way to cause a location group to hide all copies.
+/*
     SELECT  '!(' || ARRAY_TO_STRING(ARRAY_AGG(search.calculate_visibility_attribute(id, 'location_group')),'|') || ')'
       FROM  asset.copy_location_group
       WHERE NOT opac_visible;
+*/
 $f$ LANGUAGE SQL STABLE;
 
 CREATE OR REPLACE FUNCTION asset.location_default () RETURNS TEXT AS $f$
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.function.copy_location_group_visible.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.function.copy_location_group_visible.sql
new file mode 100644 (file)
index 0000000..7b457c6
--- /dev/null
@@ -0,0 +1,13 @@
+BEGIN;
+
+CREATE OR REPLACE FUNCTION asset.location_group_default () RETURNS TEXT AS $f$
+    SELECT '!()'::TEXT; -- For now, as there's no way to cause a location group to hide all copies.
+/*
+    SELECT  '!(' || ARRAY_TO_STRING(ARRAY_AGG(search.calculate_visibility_attribute(id, 'location_group')),'|') || ')'
+      FROM  asset.copy_location_group
+      WHERE NOT opac_visible;
+*/
+$f$ LANGUAGE SQL STABLE;
+
+COMMIT;
+