diff options
| author | Luc Donnet | 2017-10-14 18:22:45 +0200 |
|---|---|---|
| committer | Luc Donnet | 2017-10-14 18:23:16 +0200 |
| commit | 584bc2b59ecf95ee1021596e8f3583d9af97a5a7 (patch) | |
| tree | d68bc9fefb0102c92e501f9b541987125dc94f29 /app/controllers | |
| parent | 16e9fe5e4e75f2df98f0da371062d572fa45a48b (diff) | |
| download | chouette-core-584bc2b59ecf95ee1021596e8f3583d9af97a5a7.tar.bz2 | |
Fix translations for compliance_control type translation, compliance_control validation, compliance_control module
Diffstat (limited to 'app/controllers')
| -rw-r--r-- | app/controllers/compliance_controls_controller.rb | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/app/controllers/compliance_controls_controller.rb b/app/controllers/compliance_controls_controller.rb index d7d84afb3..6fe799267 100644 --- a/app/controllers/compliance_controls_controller.rb +++ b/app/controllers/compliance_controls_controller.rb @@ -7,26 +7,42 @@ class ComplianceControlsController < BreadcrumbController end def new - if params[:sti_class] - @compliance_control_set = parent - @compliance_control = params[:sti_class].constantize.new - else + if params[:sti_class].blank? + flash[:notice] = I18n.t("compliance_controls.errors.mandatory_control_type") redirect_to(action: :select_type) end + new! end def create - create! { compliance_control_set_path(parent) } + create! do |success, failure| + success.html { redirect_to compliance_control_set_path(parent) } + failure.html { render( :action => 'new' ) } + end + end + + protected + + alias_method :compliance_control_set, :parent + alias_method :compliance_control, :resource + + def build_resource + @compliance_control ||= compliance_control_class.new compliance_control_set: parent end private + + def compliance_control_class + (params[:sti_class] || params[:compliance_control][:type]).constantize + end + def dynamic_attributes_params - params.require(:compliance_control).permit(:type).values[0].constantize.dynamic_attributes + compliance_control_class.dynamic_attributes end def compliance_control_params base = [:name, :code, :origin_code, :criticity, :comment, :control_attributes, :type, :compliance_control_block_id] - permited = base + dynamic_attributes_params - params.require(:compliance_control).permit(permited) + permitted = base + dynamic_attributes_params + params.require(:compliance_control).permit(permitted) end end |
