diff options
| author | cedricnjanga | 2017-10-02 17:34:49 +0200 |
|---|---|---|
| committer | cedricnjanga | 2017-10-02 17:36:41 +0200 |
| commit | cba31dc411ceb47f80202c1d3a32a2e031630b13 (patch) | |
| tree | 429718a617260f5013bb9d07b828e3d1bd26c738 /app/controllers/time_tables_controller.rb | |
| parent | 466dde61ed0cdf32c06cb3738e32f38c50c4558e (diff) | |
| download | chouette-core-cba31dc411ceb47f80202c1d3a32a2e031630b13.tar.bz2 | |
Refs #4665
Add a controller concern to deal with date filters
Diffstat (limited to 'app/controllers/time_tables_controller.rb')
| -rw-r--r-- | app/controllers/time_tables_controller.rb | 49 |
1 files changed, 26 insertions, 23 deletions
diff --git a/app/controllers/time_tables_controller.rb b/app/controllers/time_tables_controller.rb index 0054963c9..12dc26367 100644 --- a/app/controllers/time_tables_controller.rb +++ b/app/controllers/time_tables_controller.rb @@ -1,5 +1,8 @@ class TimeTablesController < ChouetteController include TimeTablesHelper + include RansackDateFilter + set_date_param "bounding_dates", Date + before_action :set_date_time_params, only: [:index] defaults :resource_class => Chouette::TimeTable respond_to :html respond_to :xml @@ -131,7 +134,7 @@ class TimeTablesController < ChouetteController params[:q].delete("tag_search") scope = select_time_tables.tagged_with(tags, :any => true) if tags.any? end - scope = ransack_periode(scope) + scope = ransack_period_range(scope: scope, error_message: t('referentials.errors.validity_period'), query: :overlapping) @q = scope.search(params[:q]) if sort_column && sort_direction @@ -159,28 +162,28 @@ class TimeTablesController < ChouetteController end private - def ransack_periode scope - return scope unless params[:q] - return scope unless params[:q]['end_date_lteq(1i)'].present? - - begin_range = flatten_date('start_date_gteq') - end_range = flatten_date('end_date_lteq') - - if begin_range > end_range - flash.now[:error] = t('referentials.errors.validity_period') - else - scope = scope.overlapping(begin_range, end_range) - params[:q] = params[:q].slice('comment_cont', 'color_cont_any') - @begin_range = begin_range - @end_range = end_range - end - scope - end - - def flatten_date key - date_int = %w(1 2 3).map {|e| params[:q]["#{key}(#{e}i)"].to_i } - Date.new(*date_int) - end + # def ransack_periode scope + # return scope unless params[:q] + # return scope unless params[:q]['end_date_lteq(1i)'].present? + + # begin_range = flatten_date('start_date_gteq') + # end_range = flatten_date('end_date_lteq') + + # if begin_range > end_range + # flash.now[:error] = t('referentials.errors.validity_period') + # else + # scope = scope.overlapping(begin_range, end_range) + # params[:q] = params[:q].slice('comment_cont', 'color_cont_any') + # @begin_range = begin_range + # @end_range = end_range + # end + # scope + # end + + # def flatten_date key + # date_int = %w(1 2 3).map {|e| params[:q]["#{key}(#{e}i)"].to_i } + # Date.new(*date_int) + # end def sort_column referential.time_tables.column_names.include?(params[:sort]) ? params[:sort] : 'comment' |
