Bug 13822: Patron autocomplete search is severly limited

The script that returns data for the patron autocomplete does not use C4::Members::Search. Instead it uses bespoke code that does not behave like the traditional search and is very limited in how it can search.

If, for example, I search for "Kyle Hall" in the standard search, I would get "Kyle Hall" back as a result. For the autocomplete search, I will not.

This script should use C4::Members::Search to provide better searching and to keep the code base DRY.

Test Plan:
1) Enable the system preference CircAutocompl
2) Create a user with the first name "Test" and the surname "User"
3) Perform a checkout autocomplete search for "Test User"
4) Note you do not get the user as a result
5) Apply this patch
6) Try different combinations of "Test" and "User" such as
   Test User
   User Test
   U Test
   Test U
   etc.
7) Note these searches now work

Works as expected.
Signed-off-by: Marc Véron <veron@veron.ch>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
This commit is contained in:
Kyle Hall 2015-03-27 11:21:39 -04:00 committed by Tomas Cohen Arazi
parent dedd059ac0
commit 1871d9a6e7

View file

@ -51,14 +51,23 @@ if ( C4::Context->preference("IndependentBranches")
$limit_on_branch = 1;
}
my @parts = split( / /, $query );
my @params;
foreach my $p (@parts) {
push(
@params,
-or => [
surname => { -like => "$p%" },
firstname => { -like => "$p%" },
cardnumber => { -like => "$p%" },
]
);
}
push( @params, { branchcode => C4::Context->userenv->{branch} } ) if $limit_on_branch;
my $borrowers_rs = Koha::Borrowers->search(
{ -or => {
surname => { -like => "$query%" },
firstname => { -like => "$query%" },
cardnumber => { -like => "$query%" },
( $limit_on_branch ? { branchcode => C4::Context->userenv->{branch} } : () ),
},
},
{ -and => \@params },
{
# Get the first 10 results
page => 1,