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/compliance_controls_controller.rb | |
| 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/compliance_controls_controller.rb')
| -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 | 
