diff options
Diffstat (limited to 'app/controllers')
| -rw-r--r-- | app/controllers/compliance_check_sets_controller.rb | 5 | ||||
| -rw-r--r-- | app/controllers/compliance_control_sets_controller.rb | 5 | ||||
| -rw-r--r-- | app/controllers/concerns/ransack_date_filter.rb | 27 | ||||
| -rw-r--r-- | app/controllers/imports_controller.rb | 33 | ||||
| -rw-r--r-- | app/controllers/time_tables_controller.rb | 27 | ||||
| -rw-r--r-- | app/controllers/workbenches_controller.rb | 6 |
6 files changed, 20 insertions, 83 deletions
diff --git a/app/controllers/compliance_check_sets_controller.rb b/app/controllers/compliance_check_sets_controller.rb index 3e093deab..fce8dcc56 100644 --- a/app/controllers/compliance_check_sets_controller.rb +++ b/app/controllers/compliance_check_sets_controller.rb @@ -1,15 +1,14 @@ class ComplianceCheckSetsController < BreadcrumbController defaults resource_class: ComplianceCheckSet include RansackDateFilter - set_date_param "created_at", DateTime - before_action :set_date_time_params, only: [:index] + before_action only: [:index] { set_date_time_params("created_at", DateTime) } respond_to :html belongs_to :workbench def index index! do |format| - scope = ransack_period_range(scope: @compliance_check_sets, error_message: t('compliance_check_sets.filters.error_period_filter'), query: :where_created_at_between) + scope = self.ransack_period_range(scope: @compliance_check_sets, error_message: t('compliance_check_sets.filters.error_period_filter'), query: :where_created_at_between) @q_for_form = scope.ransack(params[:q]) format.html { @compliance_check_sets = ModelDecorator.decorate( diff --git a/app/controllers/compliance_control_sets_controller.rb b/app/controllers/compliance_control_sets_controller.rb index 5371c65f5..9de90c21c 100644 --- a/app/controllers/compliance_control_sets_controller.rb +++ b/app/controllers/compliance_control_sets_controller.rb @@ -1,13 +1,12 @@ class ComplianceControlSetsController < BreadcrumbController defaults resource_class: ComplianceControlSet include RansackDateFilter - set_date_param "updated_at", DateTime - before_action :set_date_time_params, only: [:index] + before_action only: [:index] { set_date_time_params("updated_at", DateTime) } respond_to :html def index index! do |format| - scope = ransack_period_range(scope: @compliance_control_sets, error_message: t('imports.filters.error_period_filter'), query: :where_updated_at_between) + scope = self.ransack_period_range(scope: @compliance_control_sets, error_message: t('imports.filters.error_period_filter'), query: :where_updated_at_between) @q_for_form = scope.ransack(params[:q]) format.html { @compliance_control_sets = decorate_compliance_control_sets(@q_for_form.result) diff --git a/app/controllers/concerns/ransack_date_filter.rb b/app/controllers/concerns/ransack_date_filter.rb index 361c26c98..225fd91ee 100644 --- a/app/controllers/concerns/ransack_date_filter.rb +++ b/app/controllers/concerns/ransack_date_filter.rb @@ -4,23 +4,23 @@ module RansackDateFilter included do - def set_date_time_params + def set_date_time_params(param_name, klass) start_date = [] end_date = [] - if params[:q] && params[:q][@@date_param] && !params[:q][@@date_param].has_value?(nil) && !params[:q][@@date_param].has_value?("") + if params[:q] && params[:q][param_name] && !params[:q][param_name].has_value?(nil) && !params[:q][param_name].has_value?("") [1, 2, 3].each do |key| - start_date << params[:q][@@date_param]["start_date(#{key}i)"].to_i - end_date << params[:q][@@date_param]["end_date(#{key}i)"].to_i + start_date << params[:q][param_name]["start_date(#{key}i)"].to_i + end_date << params[:q][param_name]["end_date(#{key}i)"].to_i end - params[:q].delete([@@date_param]) + params[:q].delete([param_name]) - if @@klass == DateTime - @begin_range = @@klass.new(*start_date,0,0,0) rescue nil - @end_range = @@klass.new(*end_date,23,59,59) rescue nil + if klass == DateTime + @begin_range = klass.new(*start_date,0,0,0) rescue nil + @end_range = klass.new(*end_date,23,59,59) rescue nil else - @begin_range = @@klass.new(*start_date) rescue nil - @end_range = @@klass.new(*end_date) rescue nil + @begin_range = klass.new(*start_date) rescue nil + @end_range = klass.new(*end_date) rescue nil end end @@ -37,12 +37,5 @@ module RansackDateFilter end end - def self.set_date_param(param_name, klass) - @@date_param = param_name - @@klass = klass - end - - private_class_method :set_date_param - end end
\ No newline at end of file diff --git a/app/controllers/imports_controller.rb b/app/controllers/imports_controller.rb index 4a12706bc..3c52dc935 100644 --- a/app/controllers/imports_controller.rb +++ b/app/controllers/imports_controller.rb @@ -1,9 +1,7 @@ class ImportsController < BreadcrumbController include PolicyChecker include RansackDateFilter - set_date_param "started_at", DateTime - before_action :set_date_time_params, only: [:index] - + before_action only: [:index] { set_date_time_params("started_at", DateTime) } skip_before_action :authenticate_user!, only: [:download] defaults resource_class: Import, collection_name: 'imports', instance_name: 'import' before_action :ransack_status_params, only: [:index] @@ -52,7 +50,7 @@ class ImportsController < BreadcrumbController def collection scope = parent.imports.where(type: "WorkbenchImport") - scope = ransack_period_range(scope: scope, error_message: t('imports.filters.error_period_filter'), query: :where_started_at_in) + scope = self.ransack_period_range(scope: scope, error_message: t('imports.filters.error_period_filter'), query: :where_started_at_in) @q = scope.search(params[:q]) @@ -65,33 +63,6 @@ class ImportsController < BreadcrumbController private - def ransack_started_at_params - start_date = [] - end_date = [] - - if params[:q] && params[:q][:started_at] && !params[:q][:started_at].has_value?(nil) && !params[:q][:started_at].has_value?("") - [1, 2, 3].each do |key| - start_date << params[:q][:started_at]["begin(#{key}i)"].to_i - end_date << params[:q][:started_at]["end(#{key}i)"].to_i - end - params[:q].delete([:started_at]) - @begin_range = DateTime.new(*start_date,0,0,0) rescue nil - @end_range = DateTime.new(*end_date,23,59,59) rescue nil - end - end - - # Fake ransack filter - # def ransack_period scope - # return scope unless !!@begin_range && !!@end_range - - # if @begin_range > @end_range - # flash.now[:error] = t('imports.filters.error_period_filter') - # else - # scope = scope.where_started_at_between(@begin_range..@end_range) - # end - # scope - # end - def ransack_status_params if params[:q] return params[:q].delete(:status_eq_any) if params[:q][:status_eq_any].empty? || ( (Import.status.values & params[:q][:status_eq_any]).length >= 4 ) diff --git a/app/controllers/time_tables_controller.rb b/app/controllers/time_tables_controller.rb index 12dc26367..2d24d5aa6 100644 --- a/app/controllers/time_tables_controller.rb +++ b/app/controllers/time_tables_controller.rb @@ -1,8 +1,7 @@ class TimeTablesController < ChouetteController include TimeTablesHelper include RansackDateFilter - set_date_param "bounding_dates", Date - before_action :set_date_time_params, only: [:index] + before_action only: [:index] { set_date_time_params("bounding_dates", Date) } defaults :resource_class => Chouette::TimeTable respond_to :html respond_to :xml @@ -134,7 +133,7 @@ class TimeTablesController < ChouetteController params[:q].delete("tag_search") scope = select_time_tables.tagged_with(tags, :any => true) if tags.any? end - scope = ransack_period_range(scope: scope, error_message: t('referentials.errors.validity_period'), query: :overlapping) + scope = self.ransack_period_range(scope: scope, error_message: t('referentials.errors.validity_period'), query: :overlapping) @q = scope.search(params[:q]) if sort_column && sort_direction @@ -162,28 +161,6 @@ 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 sort_column referential.time_tables.column_names.include?(params[:sort]) ? params[:sort] : 'comment' diff --git a/app/controllers/workbenches_controller.rb b/app/controllers/workbenches_controller.rb index 68b6e176c..e271007d6 100644 --- a/app/controllers/workbenches_controller.rb +++ b/app/controllers/workbenches_controller.rb @@ -1,9 +1,7 @@ class WorkbenchesController < BreadcrumbController before_action :query_params, only: [:show] include RansackDateFilter - set_date_param "validity_period", Date - before_action :set_date_time_params, only: [:show] - + before_action only: [:show] { set_date_time_params("validity_period", Date) } defaults resource_class: Workbench respond_to :html, only: [:show, :index] @@ -14,7 +12,7 @@ class WorkbenchesController < BreadcrumbController def show scope = resource.all_referentials scope = ransack_associated_lines(scope) - scope = ransack_period_range(scope: scope, error_message: t('referentials.errors.validity_period'), query: :in_periode) + scope = self.ransack_period_range(scope: scope, error_message: t('referentials.errors.validity_period'), query: :in_periode) scope = ransack_status(scope) @q_for_form = scope.ransack(params[:q]) |
