Bug 11923: fix option to sort contents of MARC record batches by citation descending

When the ability to stage authority records was added to Koha, sorting
record batches by citation ( i.e. title ) caused the addition of
"authorized_heading" to be added to the sort. When sorting by title
descending, this causes the order by clause to be "title,
authorized_heading DESC" which means sort by title ASC, then
authorized_heading DESC. This is incorrect and causes regular biblio
batches to always be sorted ascending.

Test plan:
1) Stage a batch of biblio records from a file
2) View the staged batch
3) Attempt to sort by title descending
4) Note it is still sorted by title ascending
5) Apply this patch
6) Note the sorting now works correctly

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Works as advertised. The code pertaining to sorting in routine
GetImportRecordsRange will probably not win beauty prizes.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
This commit is contained in:
Kyle M Hall 2014-03-11 10:34:40 -04:00 committed by Galen Charlton
parent e34508744d
commit 183d4a55ca
1 changed files with 2 additions and 1 deletions

View File

@ -1034,11 +1034,12 @@ sub GetImportRecordsRange {
my $order_by = $parameters->{order_by} || 'import_record_id';
( $order_by ) = grep( /^$order_by$/, qw( import_record_id title status overlay_status ) ) ? $order_by : 'import_record_id';
$order_by .= ",authorized_heading" if $order_by eq 'title';
my $order_by_direction =
uc( $parameters->{order_by_direction} ) eq 'DESC' ? 'DESC' : 'ASC';
$order_by .= " $order_by_direction, authorized_heading" if $order_by eq 'title';
my $query = "SELECT title, author, isbn, issn, authorized_heading, import_records.import_record_id,
record_sequence, status, overlay_status,
matched_biblionumber, matched_authid, record_type