diff options
| author | Xinhui | 2017-09-22 14:36:13 +0200 | 
|---|---|---|
| committer | Xinhui | 2017-09-27 15:38:04 +0200 | 
| commit | 15e75e3505194171df43d69096e94f65f032f9e5 (patch) | |
| tree | 2972355e04944472055037fc98685a306cec6783 | |
| parent | 8d2db4fd3553596fff8eecf357bdd9e75f158c3a (diff) | |
| download | chouette-core-15e75e3505194171df43d69096e94f65f032f9e5.tar.bz2 | |
Nested compliance control block
Refs #4585
| -rw-r--r-- | app/controllers/compliance_controls_controller.rb | 2 | ||||
| -rw-r--r-- | app/models/compliance_control.rb | 6 | ||||
| -rw-r--r-- | app/models/compliance_control_block.rb | 7 | ||||
| -rw-r--r-- | app/views/compliance_controls/_form.html.slim | 3 | ||||
| -rw-r--r-- | db/migrate/20170922121609_add_compliance_control_id_to_compliance_control_blocks.rb | 5 | ||||
| -rw-r--r-- | db/schema.rb | 3 | 
6 files changed, 23 insertions, 3 deletions
| diff --git a/app/controllers/compliance_controls_controller.rb b/app/controllers/compliance_controls_controller.rb index c5c76fd58..bfa7cbefa 100644 --- a/app/controllers/compliance_controls_controller.rb +++ b/app/controllers/compliance_controls_controller.rb @@ -18,6 +18,6 @@ class ComplianceControlsController < BreadcrumbController    private    def compliance_control_params -    params.require(:compliance_control).permit(:name, :code, :criticity, :comment, :control_attributes, :type) +    params.require(:compliance_control).permit(:name, :code, :criticity, :comment, :control_attributes, :type, compliance_control_block_attributes: [:name])    end  end diff --git a/app/models/compliance_control.rb b/app/models/compliance_control.rb index 7a09a176c..73b6be8e5 100644 --- a/app/models/compliance_control.rb +++ b/app/models/compliance_control.rb @@ -1,8 +1,10 @@  class ComplianceControl < ActiveRecord::Base +  extend Enumerize    belongs_to :compliance_control_set -  belongs_to :compliance_control_block -  extend Enumerize +  has_one :compliance_control_block, dependent: :destroy +  accepts_nested_attributes_for :compliance_control_block +    enumerize :criticity, in: %i(info warning error), scope: true, default: :info    validates :criticity, presence: true diff --git a/app/models/compliance_control_block.rb b/app/models/compliance_control_block.rb index cf5a9d72b..7fda998eb 100644 --- a/app/models/compliance_control_block.rb +++ b/app/models/compliance_control_block.rb @@ -1,3 +1,10 @@  class ComplianceControlBlock < ActiveRecord::Base    belongs_to :compliance_control_set +  belongs_to :compliance_control + +  before_save :set_compliance_control_set + +  def set_compliance_control_set +    self.compliance_control_set = self.compliance_control.compliance_control_set +  end  end diff --git a/app/views/compliance_controls/_form.html.slim b/app/views/compliance_controls/_form.html.slim index b4298c5fd..cc0310620 100644 --- a/app/views/compliance_controls/_form.html.slim +++ b/app/views/compliance_controls/_form.html.slim @@ -7,6 +7,9 @@        = f.input :criticity        = f.input :comment +      = f.fields_for :compliance_control_block, ComplianceControlBlock.new do |c| +        = c.input :name +      end    .separator    = f.button :submit, t('actions.submit'), class: 'btn btn-default formSubmitr', form: 'compliance_control_form' diff --git a/db/migrate/20170922121609_add_compliance_control_id_to_compliance_control_blocks.rb b/db/migrate/20170922121609_add_compliance_control_id_to_compliance_control_blocks.rb new file mode 100644 index 000000000..18a6b12cf --- /dev/null +++ b/db/migrate/20170922121609_add_compliance_control_id_to_compliance_control_blocks.rb @@ -0,0 +1,5 @@ +class AddComplianceControlIdToComplianceControlBlocks < ActiveRecord::Migration +  def change +    add_reference :compliance_control_blocks, :compliance_control, index: true, foreign_key: true +  end +end diff --git a/db/schema.rb b/db/schema.rb index c95280051..45bc74d07 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -217,8 +217,10 @@ ActiveRecord::Schema.define(version: 20170925154017) do      t.integer  "compliance_control_set_id"      t.datetime "created_at",                null: false      t.datetime "updated_at",                null: false +    t.integer  "compliance_control_id"    end +  add_index "compliance_control_blocks", ["compliance_control_id"], name: "index_compliance_control_blocks_on_compliance_control_id", using: :btree    add_index "compliance_control_blocks", ["compliance_control_set_id"], name: "index_compliance_control_blocks_on_compliance_control_set_id", using: :btree    create_table "compliance_control_sets", id: :bigserial, force: :cascade do |t| @@ -987,6 +989,7 @@ ActiveRecord::Schema.define(version: 20170925154017) do    add_foreign_key "compliance_checks", "compliance_check_blocks"    add_foreign_key "compliance_checks", "compliance_check_sets"    add_foreign_key "compliance_control_blocks", "compliance_control_sets" +  add_foreign_key "compliance_control_blocks", "compliance_controls"    add_foreign_key "compliance_control_sets", "organisations"    add_foreign_key "compliance_controls", "compliance_control_blocks"    add_foreign_key "compliance_controls", "compliance_control_sets" | 
