Bug 22874: Use false instead of 0 value for limiting on availability
authorAlex Arnaud <alex.arnaud@biblibre.com>
Thu, 9 May 2019 12:39:51 +0000 (12:39 +0000)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Mon, 28 Oct 2019 12:24:34 +0000 (12:24 +0000)
Test plan

  - Set up a elasticsearch 6 instance to work with Koha,
  - you may need to make koha works with ES 6 (see bug 20589),
  - make a search and limit it to available items only,
  => no result

  - Apply this patch,
  - make a search and limit it to available items only,
  - you should get some results

  - Do the same with ES 5.x

Signed-off-by: Séverine QUEUNE <severine.queune@bulac.fr>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Koha/SearchEngine/Elasticsearch/QueryBuilder.pm
t/db_dependent/Koha/SearchEngine/Elasticsearch/QueryBuilder.t

index 3e63086..b418739 100644 (file)
@@ -965,7 +965,7 @@ sub _fix_limit_special_cases {
             push @new_lim, "copydate:$date";
         }
         elsif ( $l =~ /^available$/ ) {
-            push @new_lim, 'onloan:0';
+            push @new_lim, 'onloan:false';
         }
         else {
             push @new_lim, $l;
index fd98349..0f8ed2e 100644 (file)
@@ -346,10 +346,10 @@ subtest 'build_query tests' => sub {
         "query of just '*' is unaltered when QueryAutoTruncate is enabled"
     );
 
-    ( undef, $query ) = $qb->build_query_compat( undef, ['"donald duck"'] );
+    ( undef, $query ) = $qb->build_query_compat( undef, ['"donald duck"'], undef, ['available'] );
     is(
         $query->{query}{query_string}{query},
-        '("donald duck")',
+        '("donald duck") AND onloan:false',
         "query with quotes is unaltered when QueryAutoTruncate is enabled"
     );