Bug 36025: Incorrect clause in patron search
This patch removes the search clause for
extended_attributes when there is no patron
attribute types which are searchable by default.
The clause was incorrectly added because the array
extended_attribute_types was rendered as [""]
This seems to be an issue with get_columns from DBIX Class and how that is cast when forcing an array
in the template. It returns an empty string for nothing, a scalar for a single value, and an array for multiple
values.
This patch now checks if the variable is set and has content, and wraps as an array if so. In the case of two attributes,
we do double the array, but this was true before as we always cast the return as an array.
Test plan:
* Make sure that no borrower attribute type is set to "searched by default"
in Koha administration -> Patron attribute types.
* Enable the network monitring in the developer tools in your web browser
(Ctrl + Shift + E in firefox or Ctrl + Shift + I and select the "Network"
tab).
* Go to the patrons view members-home.pl (click patrons in top menu bar).
* Search for a string that will match multiple borrowers (to not be automatically
redirected)
* Examine the ajax-request and make sure that "extended_attributes.code" is NOT
part of the query.
* Also, in koha-testing-docker with selenium enabled,
run 'perl t/db_dependent/selenium/patrons_search.t'
* Now set one patro attribute to searchable and searched by default and add a value for a patron, confirm search works
* Set a second patron attribute to searchable and searched by default and confirm searching works
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Magnus Enger <magnus@libriotech.no>
Works as advertised. Did not run the selenium tests, as they have
been obsoleted.
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 208a7cc3a4)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
This commit is contained in:
parent
779d89df0e
commit
4bb59ec348
|
|
@ -33,7 +33,9 @@ sub all {
|
|||
|
||||
sub codes {
|
||||
my ( $self, $params ) = @_;
|
||||
|
||||
return Koha::Patron::Attribute::Types->search($params)->get_column('code');
|
||||
|
||||
}
|
||||
|
||||
1;
|
||||
|
|
|
|||
|
|
@ -280,7 +280,8 @@
|
|||
}, {});
|
||||
|
||||
[% IF Koha.Preference('ExtendedPatronAttributes') %]
|
||||
[% SET extended_attribute_types = [ ExtendedAttributeTypes.codes( staff_searchable => 1, searched_by_default => 1 ) ] %]
|
||||
[% SET extended_attribute_types = ExtendedAttributeTypes.codes( staff_searchable => 1, searched_by_default => 1 ) %]
|
||||
[% IF ( extended_attribute_types ) %][% extended_attribute_types = [ extended_attribute_types ] %][% END %]
|
||||
var extended_attribute_types = [% To.json(extended_attribute_types || []) | $raw %];
|
||||
[% END %]
|
||||
|
||||
|
|
|
|||
|
|
@ -860,7 +860,7 @@ function buildPatronSearchQuery(term, options) {
|
|||
if (
|
||||
typeof options !== "undefined" &&
|
||||
((options.search_fields == "standard" &&
|
||||
options.extended_attribute_types) ||
|
||||
options.extended_attribute_types.length > 0) ||
|
||||
searched_attribute_fields.length > 0) &&
|
||||
extendedPatronAttributes
|
||||
) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue