From 4d88dfa88facab8ca4ac367288c4987cde131827 Mon Sep 17 00:00:00 2001 From: jpl Date: Tue, 25 Apr 2017 16:05:38 +0200 Subject: Refs #3172: fix bouding_dates filter on tt#index --- app/controllers/time_tables_controller.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'app/controllers') diff --git a/app/controllers/time_tables_controller.rb b/app/controllers/time_tables_controller.rb index eedfef07c..b23345607 100644 --- a/app/controllers/time_tables_controller.rb +++ b/app/controllers/time_tables_controller.rb @@ -99,6 +99,7 @@ class TimeTablesController < ChouetteController params[:q].delete("tag_search") scope = select_time_tables.tagged_with(tags, :wild => true, :any => true) if tags.any? end + scope = ransack_periode(scope) @q = scope.search(params[:q]) if sort_column && sort_direction @@ -126,6 +127,24 @@ class TimeTablesController < ChouetteController end private + # Fake ransack filter + def ransack_periode scope + return scope unless params[:q] + periode = params[:q] + return scope if periode['end_date_lteq(1i)'].empty? || periode['start_date_gteq(1i)'].empty? + + begin_range = Date.civil(periode["start_date_gteq(1i)"].to_i, periode["start_date_gteq(2i)"].to_i, periode["start_date_gteq(3i)"].to_i) + end_range = Date.civil(periode["end_date_lteq(1i)"].to_i, periode["end_date_lteq(2i)"].to_i, periode["end_date_lteq(3i)"].to_i) + + if begin_range > end_range + flash.now[:error] = t('referentials.errors.validity_period') + else + @begin_range = begin_range + @end_range = end_range + end + scope + end + def sort_column referential.time_tables.column_names.include?(params[:sort]) ? params[:sort] : 'comment' end -- cgit v1.2.3