aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/compliance_control_sets_controller.rb4
-rw-r--r--app/controllers/referentials_controller.rb10
-rw-r--r--app/decorators/referential_decorator.rb6
-rw-r--r--app/policies/referential_policy.rb6
-rw-r--r--app/views/compliance_control_sets/select_compliance_control_set.html.slim27
-rw-r--r--app/views/referentials/select_compliance_control_set.html.slim20
-rw-r--r--config/locales/referentials.en.yml1
-rw-r--r--config/locales/referentials.fr.yml3
-rw-r--r--config/routes.rb3
9 files changed, 42 insertions, 38 deletions
diff --git a/app/controllers/compliance_control_sets_controller.rb b/app/controllers/compliance_control_sets_controller.rb
index cff67d5cb..b45e85d49 100644
--- a/app/controllers/compliance_control_sets_controller.rb
+++ b/app/controllers/compliance_control_sets_controller.rb
@@ -33,10 +33,6 @@ class ComplianceControlSetsController < InheritedResources::Base
redirect_to(compliance_control_sets_path)
end
- def select_compliance_control_set
- @compliance_control_sets = ComplianceControlSet.all
- end
-
protected
def begin_of_association_chain
diff --git a/app/controllers/referentials_controller.rb b/app/controllers/referentials_controller.rb
index 6b479e938..b08f58514 100644
--- a/app/controllers/referentials_controller.rb
+++ b/app/controllers/referentials_controller.rb
@@ -54,6 +54,16 @@ class ReferentialsController < InheritedResources::Base
end
end
+ def select_compliance_control_set
+ @compliance_control_sets = ComplianceControlSet.all
+ end
+
+ def validate
+ ComplianceControlSetCopyWorker.perform_async(params[:compliance_control_set], params[:id])
+ flash[:notice] = I18n.t("referentials.operation_in_progress")
+ redirect_to(referential_path)
+ end
+
def destroy
workbench = referential.workbench_id
diff --git a/app/decorators/referential_decorator.rb b/app/decorators/referential_decorator.rb
index 3876d966d..4103790aa 100644
--- a/app/decorators/referential_decorator.rb
+++ b/app/decorators/referential_decorator.rb
@@ -17,12 +17,12 @@ class ReferentialDecorator < Draper::Decorator
)
end
- # if policy.validate?
+ if policy.validate?
links << Link.new(
content: h.t('actions.validate'),
- href: h.compliance_control_set_select_compliance_control_set_path(object.id, referential_id: context[:referential_id])
+ href: h.referential_select_compliance_control_set_path(object.id)
)
- # end
+ end
if policy.archive?
links << Link.new(
diff --git a/app/policies/referential_policy.rb b/app/policies/referential_policy.rb
index fdc80516c..bc8a3e24b 100644
--- a/app/policies/referential_policy.rb
+++ b/app/policies/referential_policy.rb
@@ -17,12 +17,14 @@ class ReferentialPolicy < ApplicationPolicy
!archived? && organisation_match? && user.has_permission?('referentials.update')
end
-
-
def clone?
!archived? && create?
end
+ def validate?
+ !archived? && create?
+ end
+
def archive?
record.archived_at.nil? && organisation_match? && user.has_permission?('referentials.update')
end
diff --git a/app/views/compliance_control_sets/select_compliance_control_set.html.slim b/app/views/compliance_control_sets/select_compliance_control_set.html.slim
deleted file mode 100644
index 4b76fdac2..000000000
--- a/app/views/compliance_control_sets/select_compliance_control_set.html.slim
+++ /dev/null
@@ -1,27 +0,0 @@
-/ PageHeader
-- header_params = ['jeux-de-controle',
- t('referentials.select_jdc.title'),
- '']
-= pageheader(*header_params) do
-
-/ PageContent
-.page_content
- .container-fluid
- .row
- .col-lg-8.col-lg-offset-2.col-md-8.col-md-offset-2.col-sm-10.col-sm-offset-1
- = form_tag '#', {class: 'form-horizontal', id: 'select_compliance_control_set', wrapper: :horizontal_form} do
- .row
- .col-lg-12
- .form-group
- = label_tag 'name', nil, class: 'string required col-sm-4 col-xs-5 control-label'
- .col-sm-8.col-xs-7
- = select_tag :name, options_from_collection_for_select(@compliance_control_sets, "id", "name"), class: 'select optional form-control'
- .separator
- = button_tag t('actions.submit'), class: 'btn btn-default formSubmitr'
-
-
- /= simple_form_for @compliance_control_sets, html: { class: 'form-horizontal', id: 'select_compliance_control_set' }, wrapper: :horizontal_form do |f|
- / .row
- / .col-lg-12
- / = f.association :compliance_control_set, collection: @compliance_control_sets, label_method: lambda {@compliance_control_sets.name}
- /= f.button :submit, t('actions.submit'), class: 'btn btn-default formSubmitr', form: 'select_compliance_control_set'
diff --git a/app/views/referentials/select_compliance_control_set.html.slim b/app/views/referentials/select_compliance_control_set.html.slim
new file mode 100644
index 000000000..2d3f2344c
--- /dev/null
+++ b/app/views/referentials/select_compliance_control_set.html.slim
@@ -0,0 +1,20 @@
+/ PageHeader
+- header_params = ['jeux-de-controle',
+ t('referentials.select_compliance_control_set.title'),
+ '']
+= pageheader(*header_params) do
+
+/ PageContent
+.page_content
+ .container-fluid
+ .row
+ .col-lg-8.col-lg-offset-2.col-md-8.col-md-offset-2.col-sm-10.col-sm-offset-1
+ = form_tag validate_referential_path(params[:referential_id]), {class: 'form-horizontal', id: 'select_compliance_control_set', wrapper: :horizontal_form} do
+ .row
+ .col-lg-12
+ .form-group
+ = label_tag 'name', nil, class: 'string required col-sm-4 col-xs-5 control-label'
+ .col-sm-8.col-xs-7
+ = select_tag :compliance_control_set, options_from_collection_for_select(@compliance_control_sets, "id", "name"), class: 'select optional form-control'
+ .separator
+ = button_tag t('actions.submit'), class: 'btn btn-default formSubmitr', form: 'select_compliance_control_set' \ No newline at end of file
diff --git a/config/locales/referentials.en.yml b/config/locales/referentials.en.yml
index 844e4a570..5b9f69072 100644
--- a/config/locales/referentials.en.yml
+++ b/config/locales/referentials.en.yml
@@ -5,6 +5,7 @@ en:
name: 'Search by name'
line: 'Seach by associated lines'
search_no_results: 'No data space matching your query'
+ operation_in_progress: The validation process is in progress
error_period_filter: "The period filter must have valid bounding dates"
index:
title: 'Data spaces'
diff --git a/config/locales/referentials.fr.yml b/config/locales/referentials.fr.yml
index 285db3d3f..b27bbcbfb 100644
--- a/config/locales/referentials.fr.yml
+++ b/config/locales/referentials.fr.yml
@@ -5,6 +5,7 @@ fr:
name: 'Indiquez un nom de référentiel...'
line: 'Indiquez une ligne...'
search_no_results: 'Aucun jeu de données ne correspond à votre recherche'
+ operation_in_progress: L'opération de validation est en cours
error_period_filter: "Le filtre par période doit contenir une date de début et de fin valides"
index:
title: 'Jeux de données'
@@ -31,7 +32,7 @@ fr:
duplicated:
title: 'Dupliquer un jeu de données'
submit: "Valider"
- select_jdc:
+ select_compliance_control_set:
title: "Sélection du jeu de contôle"
actions:
new: "Créer un jeu de données"
diff --git a/config/routes.rb b/config/routes.rb
index 30ba51358..2f332b2c9 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -76,7 +76,6 @@ ChouetteIhm::Application.routes.draw do
resources :compliance_control_sets do
get :simple, on: :member
get :clone, on: :member
- get :select_compliance_control_set
resources :compliance_controls, except: :index do
get :select_type, on: :collection
end
@@ -104,6 +103,8 @@ ChouetteIhm::Application.routes.draw do
resources :autocomplete_stop_areas, only: [:show, :index] do
get 'around', on: :member
end
+ get :select_compliance_control_set
+ post :validate, on: :member
resources :autocomplete_time_tables, only: [:index]
resources :autocomplete_route_sections
resources :autocomplete_timebands