aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorGuillaume2017-10-03 17:36:29 +0200
committerGuillaume2017-10-03 17:36:29 +0200
commit35f35bab668e2ae23a490df799ee2cbc7cd651d4 (patch)
tree013caa7d7ba06556949b459651b36f75e4574792 /app
parent3a666be069195e9fc63a12d5f6001098dfd26c34 (diff)
parent9ea95b98c52f99494a13befa54cfd8cd298ab0c4 (diff)
downloadchouette-core-35f35bab668e2ae23a490df799ee2cbc7cd651d4.tar.bz2
Merge branch 'master' of https://github.com/af83/stif-boiv
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/filters/compliance_control_set.js6
-rw-r--r--app/assets/javascripts/filters/import.js2
-rw-r--r--app/assets/javascripts/filters/time_table.js2
-rw-r--r--app/assets/javascripts/filters/workbench.js2
-rw-r--r--app/controllers/compliance_check_sets_controller.rb5
-rw-r--r--app/controllers/compliance_control_sets_controller.rb5
-rw-r--r--app/controllers/concerns/ransack_date_filter.rb31
-rw-r--r--app/controllers/imports_controller.rb33
-rw-r--r--app/controllers/time_tables_controller.rb27
-rw-r--r--app/controllers/workbenches_controller.rb6
-rw-r--r--app/models/compliance_control_block.rb8
-rw-r--r--app/models/compliance_control_set.rb2
-rw-r--r--app/views/compliance_control_sets/_filters.html.slim2
-rw-r--r--app/views/compliance_control_sets/index.html.slim1
-rw-r--r--app/views/time_tables/_filter.html.slim4
15 files changed, 42 insertions, 94 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 20ab764b3..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])
-
- 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
+ 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
+ else
+ @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/models/compliance_control_block.rb b/app/models/compliance_control_block.rb
index 1cb98b7de..5721c00f4 100644
--- a/app/models/compliance_control_block.rb
+++ b/app/models/compliance_control_block.rb
@@ -5,9 +5,11 @@ class ComplianceControlBlock < ActiveRecord::Base
belongs_to :compliance_control_set
has_many :compliance_controls, dependent: :destroy
- hstore_accessor :condition_attributes,
- transport_mode: :string,
+ hstore_accessor :condition_attributes,
+ transport_mode: :string,
transport_submode: :string
- validates_presence_of :transport_mode
+ validates :transport_mode, presence: true
+ validates :compliance_control_set, presence: true
+
end
diff --git a/app/models/compliance_control_set.rb b/app/models/compliance_control_set.rb
index 1ab0fd6d2..deb46f5a1 100644
--- a/app/models/compliance_control_set.rb
+++ b/app/models/compliance_control_set.rb
@@ -4,6 +4,8 @@ class ComplianceControlSet < ActiveRecord::Base
has_many :compliance_controls, dependent: :destroy
validates :name, presence: true
+ validates :organisation, presence: true
+
scope :where_updated_at_between, ->(period_range) do
where('updated_at BETWEEN :begin AND :end', begin: period_range.begin, end: period_range.end)
end
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
diff --git a/app/views/time_tables/_filter.html.slim b/app/views/time_tables/_filter.html.slim
index a4d90d1cc..2672f7dfc 100644
--- a/app/views/time_tables/_filter.html.slim
+++ b/app/views/time_tables/_filter.html.slim
@@ -15,8 +15,8 @@
= f.label Chouette::TimeTable.human_attribute_name(:bounding_dates), required: false, class: 'control-label'
.filter_menu
= f.simple_fields_for :bounding_dates do |p|
- = f.input :start_date, as: :date, label: t('simple_form.from'), wrapper_html: { class: 'date smart_date filter_menu-item' }, default: @begin_range, include_blank: @begin_range ? false : true
- = f.input :end_date, as: :date, label: t('simple_form.to'), wrapper_html: { class: 'date smart_date filter_menu-item' }, default: @end_range, include_blank: @end_range ? false : true
+ = p.input :start_date, as: :date, label: t('simple_form.from'), wrapper_html: { class: 'date smart_date filter_menu-item' }, default: @begin_range, include_blank: @begin_range ? false : true
+ = p.input :end_date, as: :date, label: t('simple_form.to'), wrapper_html: { class: 'date smart_date filter_menu-item' }, default: @end_range, include_blank: @end_range ? false : true
.actions