From 88bb0cdcf12e7c6a683d887a5461d8633868843e Mon Sep 17 00:00:00 2001 From: Hammat Wele Date: Mon, 23 Jan 2023 22:38:01 +0000 Subject: [PATCH] Bug 32706: User search problem caused by branchcode errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Searching users alphabetically fails when there are two similar branchcode types for the same value in the database: one written in uppercase and the second in lowercase. Prerequisites 1. Create a new library with library code written in uppercase 1.1. Go to Administration > Libraries 1.2. Click on New library 1.3. Fill in the form Library code = uppercase code (for example TST ) Name = type a name (for example Test category ) 1.4. Save 2. Create several patrons in the TST library 2.1. Go to the patron module 2.2. Click on “new patron” 2.3 Fill the form Surname, First name, Card number, Library (Choose the same 'TST' library for all users that will be created) 2.4. Save Create other users (~10 ) 3. Export users 3.1. Go to the Report module 3.2. Click on Create from SQL 3.3. Type a Report name and paste the following query to the SQL field: SELECT borrowers.cardnumber, borrowers.surname, borrowers.firstname, borrowers.categorycode, borrowers.branchcode, borrowers.dateexpiry FROM borrowers WHERE borrowers.branchcode= <> ORDER BY borrowers.cardnumber asc 4. Click on Save report then on 'Run report' 5. Choose the branch from step 1.3 and Click on Run the report 5. Download report results 6. Import user folders with lowercase branchcode 6.1. Open the file from step 5 6.2. Edit data 6.3. Remove half of the users from the file 6.4. In the 'branchcode' column, replace each value with a lowercase branchcode (for example 'tst') 6.5. Save the file in .csv format 6.6. Go to Tools > Patron imports 6.7. upload the file 6.8. Click on Overwrite the existing one with this 6.9. Click on Replace only included patron attributes 6.10. Click on “Import” Test plan 1. Go to the Patron module 2. Click on a letter of the alphabet 'different' from the users created in step 2.2 --> Koha opens the results 3. Choose a last name letter from one of the users created in step 2.2 --> Koha freezes and it leaves the message 'Processing' 4. Apply the patch 5. Repeat step 1,2,3 --> the results are displayed correctly Signed-off-by: David Nind --- koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc index b4589b1201..10b73082fe 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc @@ -222,7 +222,7 @@ return map; }, {}); let libraries = [% To.json(libraries) | $raw %].map(e => { - e['_id'] = e.branchcode; + e['_id'] = e.branchcode.toLowerCase(); e['_str'] = e.branchname; return e; }); @@ -466,7 +466,7 @@ let r = '
    '; r += $format_address(row, { no_line_break: 1 }); r += '
'; - r += " " + escape_str(libraries_map[row.library_id].branchname); + r += " " + escape_str(libraries_map[row.library_id.toLowerCase()].branchname); return r; } } @@ -540,7 +540,7 @@ "searchable": true, "orderable": true, "render": function( data, type, row, meta ) { - let library_name = libraries_map[data].branchname + let library_name = libraries_map[data.toLowerCase()].branchname if( !singleBranchMode && data == logged_in_library_id ) { return "" + escape_str(library_name) + ""; } else { -- 2.30.2