Bug 37953: (bug 35138 follow-up) Fix DisplayLibraryFacets - facet order

Before bug 35138:
DisplayLibraryFacets had priority over the settings in the mappings page.
If you had DisplayLibraryFacets set to "holding library" (only) then only the holding library facet was displayed.

On 231200036 we were not adjusting the facet order/appearance, but the
label, which was wrong. The label must be adjusted for both facets and
the order depending on DisplayLibraryFacets.
Note that bug 37446 is adding a new db rev to adjust the label for
installations that have been updated already.

Test plan:
0. checkout c120975b78 (the commit right before 35138 has been pushed)
1. reset_all
2. holding library is set in DisplayLibraryFacets by default
3. checkout main (so without this patch)
4. updatedatabase
=> ES search result display both facets

5. Repeat 0,1,2 and checkout main + this patch, updatedatabase
=> ES search result display only the holding library facet

Feel free to try with another value in DisplayLibraryFacets

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 80d4d3a586)
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
This commit is contained in:
Jonathan Druart 2024-09-18 10:40:32 +02:00 committed by Lucas Gass
parent c61e3e9d11
commit 7482d093a7
1 changed files with 19 additions and 2 deletions

View File

@ -30,6 +30,8 @@ return {
}
$sth->execute( 'Collections', 'ccode', 'collection-code' );
$sth->execute( 'Holding libraries', 'holdingbranch', 'holdinglibrary' );
$sth->execute( 'Home libraries', 'homebranch', 'homelibrary' );
# Deal with DisplayLibraryFacets
my ($DisplayLibraryFacets) = $dbh->selectrow_array(
@ -45,9 +47,24 @@ return {
$holdingbranch = 1;
} elsif ( $DisplayLibraryFacets eq 'home' ) {
$homebranch = 1;
}
my $faceted_search_field = $dbh->selectall_arrayref(
q{SELECT * FROM search_field WHERE facet_order IS NOT NULL ORDER BY facet_order},
{ Slice => {} }
);
my $facet_order = 1;
$dbh->do(q{UPDATE search_field SET facet_order = NULL});
for my $f (@$faceted_search_field) {
next
if $f->{name} eq 'homebranch' && !$homebranch;
next
if $f->{name} eq 'holdingbranch' && !$holdingbranch;
$dbh->do( q{UPDATE search_field SET facet_order = ? WHERE name = ?}, undef, $facet_order, $f->{name} );
$facet_order++;
}
$sth->execute( 'Holding libraries', 'holdingbranch', 'holdinglibrary' ) if $holdingbranch;
$sth->execute( 'Home libraries', 'homebranch', 'homelibrary' ) if $homebranch;
say $out "Updated DisplayLibraryFacets and search field configuration";
},