aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers/purchase_windows_controller.rb
diff options
context:
space:
mode:
authorcedricnjanga2017-12-21 18:25:18 +0100
committercedricnjanga2017-12-21 18:25:18 +0100
commit938dae71ae29a0c2934a1027046d61dd5dcaf135 (patch)
treed9d9a835e8e2cae3179ffa8aa4d555eb23dc2fd2 /app/controllers/purchase_windows_controller.rb
parent7874077b48a3912855c7b8912a03a68d859e4394 (diff)
downloadchouette-core-938dae71ae29a0c2934a1027046d61dd5dcaf135.tar.bz2
Refs #5301 Add ransackable scope to PurchaseWindow for date_ranges
Diffstat (limited to 'app/controllers/purchase_windows_controller.rb')
-rw-r--r--app/controllers/purchase_windows_controller.rb27
1 files changed, 21 insertions, 6 deletions
diff --git a/app/controllers/purchase_windows_controller.rb b/app/controllers/purchase_windows_controller.rb
index 4965b14c7..04b5736bb 100644
--- a/app/controllers/purchase_windows_controller.rb
+++ b/app/controllers/purchase_windows_controller.rb
@@ -10,9 +10,7 @@ class PurchaseWindowsController < ChouetteController
def index
index! do
- scope = self.ransack_period_range(scope: @purchase_windows, error_message: t('compliance_check_sets.filters.error_period_filter'), query: :overlapping)
- @q = scope.ransack(params[:q])
- @purchase_windows = decorate_purchase_windows(@q.result.paginate(page: params[:page], per_page: 30))
+ @purchase_windows = decorate_purchase_windows(@purchase_windows)
end
end
@@ -47,14 +45,31 @@ class PurchaseWindowsController < ChouetteController
)
end
+ def sort_column
+ Chouette::PurchaseWindow.column_names.include?(params[:sort]) ? params[:sort] : 'name'
+ end
+
+ def sort_direction
+ %w[asc desc].include?(params[:direction]) ? params[:direction] : 'asc'
+ end
+
+ def collection
+ return @purchase_windows if @purchase_windows
+ @q = Chouette::PurchaseWindow.ransack(params[:q])
+
+ purchase_windows = @q.result
+ purchase_windows = purchase_windows.order(sort_column + ' ' + sort_direction) if sort_column && sort_direction
+ @purchase_windows = purchase_windows.paginate(page: params[:page])
+ end
+
def ransack_contains_date
date =[]
- if params[:q] && params[:q]['date_ranges(1i)'].present?
- ['date_ranges(1i)', 'date_ranges(2i)', 'date_ranges(3i)'].each do |key|
+ if params[:q] && params[:q]['contains_date(1i)'].present?
+ ['contains_date(1i)', 'contains_date(2i)', 'contains_date(3i)'].each do |key|
date << params[:q][key].to_i
params[:q].delete(key)
end
- params[:q]['date_ranges'] = Date.new(*date) rescue nil
+ params[:q]['contains_date'] = @date = Date.new(*date) rescue nil
end
end
end