diff options
| author | Xinhui | 2017-09-26 11:42:47 +0200 |
|---|---|---|
| committer | Xinhui | 2017-09-26 11:42:47 +0200 |
| commit | 4944a2c820356eb038aa5131eb825493008fb984 (patch) | |
| tree | da13300703f1be36cff835a158633b276d3624f5 | |
| parent | 3a1db2a4df900d8ea5aed74bdb8dd4086c3fa551 (diff) | |
| download | chouette-core-4944a2c820356eb038aa5131eb825493008fb984.tar.bz2 | |
Nested form for compliance control block
Refs #4585
| -rw-r--r-- | app/controllers/compliance_controls_controller.rb | 8 | ||||
| -rw-r--r-- | app/models/compliance_control.rb | 10 | ||||
| -rw-r--r-- | app/models/compliance_control_block.rb | 2 | ||||
| -rw-r--r-- | app/views/compliance_controls/_form.html.slim | 3 | ||||
| -rw-r--r-- | app/views/compliance_controls/edit.html.slim | 9 | ||||
| -rw-r--r-- | app/views/compliance_controls/show.html.slim | 2 |
6 files changed, 31 insertions, 3 deletions
diff --git a/app/controllers/compliance_controls_controller.rb b/app/controllers/compliance_controls_controller.rb index bfa7cbefa..0f4ca3481 100644 --- a/app/controllers/compliance_controls_controller.rb +++ b/app/controllers/compliance_controls_controller.rb @@ -3,6 +3,12 @@ class ComplianceControlsController < BreadcrumbController defaults resource_class: ComplianceControl belongs_to :compliance_control_set + def new + @compliance_control_set = parent + @compliance_control = ComplianceControl.new + @compliance_control.build_compliance_control_block + end + def create create!(notice: t('notice.compliance_control.created')) end @@ -18,6 +24,6 @@ class ComplianceControlsController < BreadcrumbController private def compliance_control_params - params.require(:compliance_control).permit(:name, :code, :criticity, :comment, :control_attributes, :type, compliance_control_block_attributes: [:name]) + params.require(:compliance_control).permit(:name, :code, :criticity, :comment, :control_attributes, :type, compliance_control_block_attributes: [:name, :transport_mode]) end end diff --git a/app/models/compliance_control.rb b/app/models/compliance_control.rb index 73b6be8e5..763a42029 100644 --- a/app/models/compliance_control.rb +++ b/app/models/compliance_control.rb @@ -1,7 +1,6 @@ class ComplianceControl < ActiveRecord::Base extend Enumerize belongs_to :compliance_control_set - has_one :compliance_control_block, dependent: :destroy accepts_nested_attributes_for :compliance_control_block @@ -15,6 +14,15 @@ class ComplianceControl < ActiveRecord::Base def self.policy_class ComplianceControlPolicy end + + def self.inherited(child) + child.instance_eval do + def model_name + ComplianceControl.model_name + end + end + super + end end # Ensure STI subclasses are loaded diff --git a/app/models/compliance_control_block.rb b/app/models/compliance_control_block.rb index 7fda998eb..12b10ab2a 100644 --- a/app/models/compliance_control_block.rb +++ b/app/models/compliance_control_block.rb @@ -4,6 +4,8 @@ class ComplianceControlBlock < ActiveRecord::Base before_save :set_compliance_control_set + hstore_accessor :condition_attributes, transport_mode: :string + def set_compliance_control_set self.compliance_control_set = self.compliance_control.compliance_control_set end diff --git a/app/views/compliance_controls/_form.html.slim b/app/views/compliance_controls/_form.html.slim index cc0310620..9ee2dec69 100644 --- a/app/views/compliance_controls/_form.html.slim +++ b/app/views/compliance_controls/_form.html.slim @@ -7,8 +7,9 @@ = f.input :criticity = f.input :comment - = f.fields_for :compliance_control_block, ComplianceControlBlock.new do |c| + = f.simple_fields_for :compliance_control_block do |c| = c.input :name + = c.input :transport_mode, as: :select, collection:StifTransportModeEnumerations.transport_mode.options end .separator diff --git a/app/views/compliance_controls/edit.html.slim b/app/views/compliance_controls/edit.html.slim index e69de29bb..6824c7e40 100644 --- a/app/views/compliance_controls/edit.html.slim +++ b/app/views/compliance_controls/edit.html.slim @@ -0,0 +1,9 @@ += pageheader 'compliance-control', + t('compliance_control.index.edit') + + +.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 + = render 'form' diff --git a/app/views/compliance_controls/show.html.slim b/app/views/compliance_controls/show.html.slim index 9e197695d..a665f1ab1 100644 --- a/app/views/compliance_controls/show.html.slim +++ b/app/views/compliance_controls/show.html.slim @@ -1 +1,3 @@ = @compliance_control.inspect +br += @compliance_control.compliance_control_block.inspect |
