From 094d0f0f7126f0de95bde357d4d86c3eda483719 Mon Sep 17 00:00:00 2001 From: Oleksii Kriuchykhin Date: Wed, 11 Jan 2017 13:21:38 +0100 Subject: [PATCH] Fixes sorting of custom columns in samples datatable [SCI-846] --- app/datatables/sample_datatable.rb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/datatables/sample_datatable.rb b/app/datatables/sample_datatable.rb index 90af5ec62..9a7b97ea4 100644 --- a/app/datatables/sample_datatable.rb +++ b/app/datatables/sample_datatable.rb @@ -93,7 +93,7 @@ class SampleDatatable < AjaxDatatablesRails::Base num_cf = CustomField.where(organization_id: @organization).count array = [] - for _ in 0..num_cf + num_cf.times do array << 'SampleCustomField.value' end array @@ -305,7 +305,10 @@ class SampleDatatable < AjaxDatatablesRails::Base records = records.where("samples.id IN (#{filter_query})") end - cf_id = all_custom_fields[params[:order].values[0]["column"].to_i - 7].id + ci = sortable_displayed_columns[ + params[:order].values[0][:column].to_i - 1 + ] + cf_id = @cf_mappings.key((ci.to_i + 1).to_s) dir = sort_direction(params[:order].values[0]) # Because samples can have multiple sample custom fields, we first group @@ -365,7 +368,7 @@ class SampleDatatable < AjaxDatatablesRails::Base end def sorting_by_custom_column - sort_column(params[:order].values[0]) == 'SampleCustomField.value' + sort_column(params[:order].values[0]) == 'sample_custom_fields.value' end # Escapes special characters in search query