From 21d119735b1eda634b4ca4760da247b960ae0c9c Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Tue, 20 Aug 2013 17:18:13 +0000 Subject: [PATCH] Bug 10656: (follow-up) handle OPAC sorting of authvals where lib_opac is NULL The OPAC description for an authorized value is not required to be populated. In particular, if it is NULL, the staff description is displayed instead. This patch makes sure that the sort order (in OPAC mode) uses either the staff description or the OPAC description as needed for each value. To test: [1] Make sure that AdvancedSearchTypes includes "ccode" [1] Arrange your CCODE values so the sort order for staff labels is different from the sort order for OPAC descriptions. Also, ensure that one of the OPAC descriptions is NULL. For example, authorised_value | lib | lib_opac -------------------------------------- ZZZ | A_STAFF | Z_PUBLIC DDD | D_STAFF | NULL AAA | Z_STAFF | A_PUBLIC [2] Prior to the patch, any CCODE values where the OPAC description is NULL will sort first in the OPAC advanced search page, even if the displayed label shouldn't come first. [3] Apply the patch. [4] Verify that the collection list on the OPAC advanced search page is now correct. [5] Verify that the sort order on the staff advanced search page has not changed. Signed-off-by: Galen Charlton Signed-off-by: Katrin Fischer Works nicely, tested in staff and OPAC. Signed-off-by: Kyle M Hall Signed-off-by: Galen Charlton (cherry picked from commit 0c67e94c8b8dbe1912fd5ba4b503cf53789b75a5) Signed-off-by: Tomas Cohen Arazi --- C4/Koha.pm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/C4/Koha.pm b/C4/Koha.pm index 33063d94b3..39f456c30a 100644 --- a/C4/Koha.pm +++ b/C4/Koha.pm @@ -1064,7 +1064,11 @@ sub GetAuthorisedValues { if(@where_strings > 0) { $query .= " WHERE " . join(" AND ", @where_strings); } - $query .= " GROUP BY lib ORDER BY category, " . ($opac ? "lib_opac, lib" : "lib, lib_opac"); + $query .= " GROUP BY lib"; + $query .= ' ORDER BY category, ' . ( + $opac ? 'COALESCE(lib_opac, lib)' + : 'lib, lib_opac' + ); my $sth = $dbh->prepare($query); -- 2.39.5