Bug 15198: Make OpacSuppression work even if there are no records suppressed
authorDavid Cook <dcook@prosentient.com.au>
Tue, 17 Nov 2015 02:03:59 +0000 (13:03 +1100)
committerTomas Cohen Arazi <tomascohen@theke.io>
Mon, 23 Nov 2015 14:26:08 +0000 (11:26 -0300)
This patch adds the Zebra special attribute 14 to ccl.properties and
opac-search.pl, so that we can turn on OpacSuppression and still return
results even if there are no records in Zebra for the Suppress index.

_TEST PLAN_

Before applying:

1) Make sure that you have no suppressed records indexed in Zebra
2) Turn on OpacSuppression system preference

3) Search using a keyword which should bring up records
4) Note that no records are returned in the results
5) Change UseQueryParser system preference to "Try"
6) Repeat steps 3-4

Apply the patch.

After applying:

7) Repeat step 3 (ie search using a keyword which should bring up records)
8) Confirm that records are appearing in the results!
9) Change UseQueryParser system preference to "Do not try"
10) Repeat step 3
11) Confirm that records are appearing in the results!

Signed-off-by: Hector Castro <hector.hecaxmmx@gmail.com>
Works as advertised. No more, won't need to have at least one record with the
value "1" in the field mapped with this index. All records in OPAC returned.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

etc/zebradb/ccl.properties
opac/opac-search.pl

index 58df11c..f65d269 100644 (file)
@@ -983,7 +983,7 @@ cn-class 1=9007
 cn-item 1=9008 
 cn-prefix 1=9009
 cn-suffix 1=9010
-Suppress 1=9011
+Suppress 1=9011 14=1
 id-other 1=9012
 date-entered-on-file 1=date-entered-on-file
 extent 1=Extent
index d53ba1c..efbbbb2 100755 (executable)
@@ -555,7 +555,7 @@ if (C4::Context->preference('OpacSuppression')) {
         my $IPRange = C4::Context->preference('OpacSuppressionByIPRange');
         if ($IPAddress !~ /^$IPRange/)  {
             if ( $query_type eq 'pqf' ) {
-                $query = '@not '.$query.' @attr 1=9011 1';
+                $query = '@not '.$query.' @attr 14=1 @attr 1=9011 1';
             } else {
                 $query = "($query) not Suppress=1";
             }
@@ -564,7 +564,7 @@ if (C4::Context->preference('OpacSuppression')) {
     else {
         if ( $query_type eq 'pqf' ) {
             #$query = "($query) && -(suppress:1)"; #QP syntax
-            $query = '@not '.$query.' @attr 1=9011 1'; #PQF syntax
+            $query = '@not '.$query.' @attr 14=1 @attr 1=9011 1'; #PQF syntax
         } else {
             $query = "($query) not Suppress=1";
         }