From 61aa4a4ab420ff3caf9c8ea634465ca4e404f546 Mon Sep 17 00:00:00 2001
From: Demian Katz <demian.katz@villanova.edu>
Date: Fri, 20 Mar 2015 11:01:49 -0400
Subject: [PATCH] Fixed call number sort configuration.

---
 config/vufind/searches.ini                          |  2 +-
 module/VuFind/src/VuFind/Config/Upgrade.php         | 13 +++++++++++++
 .../src/VuFindTest/Config/UpgradeTest.php           |  8 ++++++++
 3 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/config/vufind/searches.ini b/config/vufind/searches.ini
index f0576f491e2..b855252ebec 100644
--- a/config/vufind/searches.ini
+++ b/config/vufind/searches.ini
@@ -151,7 +151,7 @@ title = sort_title
 ; [Sorting] section above.  Any search type that is not listed here will be sorted
 ; using the default_sort setting in the [General] section above.
 [DefaultSortingByType]
-CallNumber = callnumber
+CallNumber = callnumber-sort
 
 ; Each search type defined in searchspecs.yaml can have one or more "recommendations
 ; modules" associated with it in the following sections.  These plug-ins will cause
diff --git a/module/VuFind/src/VuFind/Config/Upgrade.php b/module/VuFind/src/VuFind/Config/Upgrade.php
index 29baac43769..1a1b6631c36 100644
--- a/module/VuFind/src/VuFind/Config/Upgrade.php
+++ b/module/VuFind/src/VuFind/Config/Upgrade.php
@@ -742,6 +742,19 @@ class Upgrade
             }
         }
 
+        // fix call number sort settings:
+        if (isset($newConfig['Sorting']['callnumber'])) {
+            $newConfig['Sorting']['callnumber-sort']
+                = $newConfig['Sorting']['callnumber'];
+            unset($newConfig['Sorting']['callnumber']);
+        }
+        if (isset($newConfig['DefaultSortingByType'])) {
+            foreach ($newConfig['DefaultSortingByType'] as & $v) {
+                if ($v === 'callnumber') {
+                    $v = 'callnumber-sort';
+                }
+            }
+        }
         $this->upgradeSpellingSettings('searches.ini', ['CallNumber']);
 
         // save the file
diff --git a/module/VuFind/tests/unit-tests/src/VuFindTest/Config/UpgradeTest.php b/module/VuFind/tests/unit-tests/src/VuFindTest/Config/UpgradeTest.php
index 3600da0f165..3de75198fdf 100644
--- a/module/VuFind/tests/unit-tests/src/VuFindTest/Config/UpgradeTest.php
+++ b/module/VuFind/tests/unit-tests/src/VuFindTest/Config/UpgradeTest.php
@@ -137,6 +137,14 @@ class UpgradeTest extends \VuFindTest\Unit\TestCase
             ],
             $results['searches.ini']['TopRecommendations']
         );
+        $this->assertEquals(
+            ['CallNumber' => 'callnumber-sort'],
+            $results['searches.ini']['DefaultSortingByType']
+        );
+        $this->assertEquals(
+            'sort_callnumber',
+            $results['searches.ini']['Sorting']['callnumber-sort']
+        );
         $this->assertEquals(
             ['SummonDatabases', 'SpellingSuggestions'],
             $results['Summon.ini']['General']['default_top_recommend']
-- 
GitLab