diff options
| author | cedricnjanga | 2017-10-03 15:32:26 +0200 |
|---|---|---|
| committer | cedricnjanga | 2017-10-03 16:33:49 +0200 |
| commit | 9ea95b98c52f99494a13befa54cfd8cd298ab0c4 (patch) | |
| tree | 11a795187148a63551b702fb2aecf502975eb9ef | |
| parent | 983f5953d6df7166e91f52ba5eccaf27b8841f76 (diff) | |
| download | chouette-core-9ea95b98c52f99494a13befa54cfd8cd298ab0c4.tar.bz2 | |
Refs #4665
Adapt date filters helpers according to this new concern
Try to correct build error : "ransack period range undefined"
All tests pass on my machine
Refs #4661
Remove string column from ComplianceCheckSet
| -rw-r--r-- | app/assets/javascripts/filters/compliance_control_set.js | 6 | ||||
| -rw-r--r-- | app/assets/javascripts/filters/import.js | 2 | ||||
| -rw-r--r-- | app/assets/javascripts/filters/time_table.js | 2 | ||||
| -rw-r--r-- | app/assets/javascripts/filters/workbench.js | 2 | ||||
| -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 | ||||
| -rw-r--r-- | app/views/compliance_control_sets/_filters.html.slim | 2 | ||||
| -rw-r--r-- | app/views/compliance_control_sets/index.html.slim | 1 |
12 files changed, 31 insertions, 87 deletions
diff --git a/app/assets/javascripts/filters/compliance_control_set.js b/app/assets/javascripts/filters/compliance_control_set.js new file mode 100644 index 000000000..b0b00dea5 --- /dev/null +++ b/app/assets/javascripts/filters/compliance_control_set.js @@ -0,0 +1,6 @@ +const DateFilter = require('../helpers/date_filters') + +$(document).ready(function () { + const complianceControlSetDF = new DateFilter("#compliance_control_set_filter_btn", "Tous les champs du filtre de date doivent être remplis", "#q_updated_at_start_date_NUMi", "#q_updated_at_end_date_NUMi") + complianceControlSetDF() +}) diff --git a/app/assets/javascripts/filters/import.js b/app/assets/javascripts/filters/import.js index bb665d5ad..d437dc7ed 100644 --- a/app/assets/javascripts/filters/import.js +++ b/app/assets/javascripts/filters/import.js @@ -1,6 +1,6 @@ const DateFilter = require('../helpers/date_filters') $(document).ready(function(){ - const importDF = new DateFilter("#import_filter_btn", "Tous les champs du filtre de date doivent être remplis", "#q_started_at_begin_NUMi", "#q_started_at_end_NUMi") + const importDF = new DateFilter("#import_filter_btn", "Tous les champs du filtre de date doivent être remplis", "#q_started_at_start_date_NUMi", "#q_started_at_end_date_NUMi") importDF() }) diff --git a/app/assets/javascripts/filters/time_table.js b/app/assets/javascripts/filters/time_table.js index 9e24d03fe..a336d2664 100644 --- a/app/assets/javascripts/filters/time_table.js +++ b/app/assets/javascripts/filters/time_table.js @@ -1,7 +1,7 @@ $(document).ready(function(){ const DateFilter = require('../helpers/date_filters') - const timetableDF = new DateFilter("#time_table_filter_btn", window.I18n.fr.time_tables.error_period_filter, "#q_start_date_gteq_NUMi", "#q_end_date_lteq_NUMi") + const timetableDF = new DateFilter("#time_table_filter_btn", window.I18n.fr.time_tables.error_period_filter, "#q_bounding_dates_start_date_NUMi", "#q_bounding_dates_end_date_NUMi") timetableDF() }) diff --git a/app/assets/javascripts/filters/workbench.js b/app/assets/javascripts/filters/workbench.js index af3e13c59..dc5ac8487 100644 --- a/app/assets/javascripts/filters/workbench.js +++ b/app/assets/javascripts/filters/workbench.js @@ -1,6 +1,6 @@ const DateFilter = require('../helpers/date_filters') $(document).ready(function(){ - const workbenchDF = new DateFilter("#referential_filter_btn", window.I18n.fr.referentials.error_period_filter, "#q_validity_period_begin_gteq_NUMi", "#q_validity_period_end_lteq_NUMi") + const workbenchDF = new DateFilter("#referential_filter_btn", window.I18n.fr.referentials.error_period_filter, "#q_validity_period_start_date_NUMi", "#q_validity_period_end_date_NUMi") workbenchDF() }) 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]) diff --git a/app/views/compliance_control_sets/_filters.html.slim b/app/views/compliance_control_sets/_filters.html.slim index f70a997f5..6a5d3ac44 100644 --- a/app/views/compliance_control_sets/_filters.html.slim +++ b/app/views/compliance_control_sets/_filters.html.slim @@ -19,4 +19,4 @@ .actions = link_to t('actions.erase'), @compliance_control_set, class: 'btn btn-link' - = f.submit t('actions.filter'), class: 'btn btn-default', id: 'referential_filter_btn'
\ No newline at end of file + = f.submit t('actions.filter'), class: 'btn btn-default', id: 'compliance_control_set_filter_btn'
\ No newline at end of file diff --git a/app/views/compliance_control_sets/index.html.slim b/app/views/compliance_control_sets/index.html.slim index ecb4eb75b..22c65dabc 100644 --- a/app/views/compliance_control_sets/index.html.slim +++ b/app/views/compliance_control_sets/index.html.slim @@ -53,3 +53,4 @@ = replacement_msg t('compliance_control_sets.search_no_results') += javascript_include_tag 'filters/compliance_control_set.js'
\ No newline at end of file |
