[Koha-patches] [PATCH] [SIGNED-OFF] Bug 4265: Fix padding of short callnumbers and Bib-1 attribute for sorting
Jared Camins-Esakov
jcamins at bywatersolutions.com
Mon Mar 28 17:42:11 CEST 2011
From: Magnus Enger <magnus at enger.priv.no>
1. The current C4::ClassSortRoutine::Dewey turns "306 Les" into "306_Les" for items.cn_sort and MARC-field 952$6, which results in "306.46 Les" being sorted before "306 Les" in the OPAC. With this patch, "306 Les" is turned into "306_000000000000000_Les".
2. Currently, call_number_asc and call_number_desc are set up to sort by 1=20, but this is mapped to Local-classification in ccl.properties, which is mapped to 952$o in record.abs.
This patch changes these sorts to use 1=8007, which is mapped to cn-sort and 952$6.
---
C4/ClassSortRoutine/Dewey.pm | 4 ++++
C4/Search.pm | 4 ++--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/C4/ClassSortRoutine/Dewey.pm b/C4/ClassSortRoutine/Dewey.pm
index b4ba921..62a68b9 100644
--- a/C4/ClassSortRoutine/Dewey.pm
+++ b/C4/ClassSortRoutine/Dewey.pm
@@ -76,6 +76,10 @@ sub get_class_sort_key {
}
}
}
+ # Pad the first digit_group if there was only one
+ if (1 == $digit_group_count) {
+ $tokens[0] .= '_000000000000000'
+ }
my $key = join("_", @tokens);
$key =~ s/[^\p{IsAlnum}_]//g;
diff --git a/C4/Search.pm b/C4/Search.pm
index cd970b7..aab1864 100644
--- a/C4/Search.pm
+++ b/C4/Search.pm
@@ -364,10 +364,10 @@ sub getRecords {
$sort_by .= "1=9003 >i ";
}
elsif ( $sort eq "call_number_asc" ) {
- $sort_by .= "1=20 <i ";
+ $sort_by .= "1=8007 <i ";
}
elsif ( $sort eq "call_number_dsc" ) {
- $sort_by .= "1=20 >i ";
+ $sort_by .= "1=8007 >i ";
}
elsif ( $sort eq "pubdate_asc" ) {
$sort_by .= "1=31 <i ";
--
1.7.2.3
More information about the Koha-patches
mailing list