diff options
| author | Zog | 2018-04-30 14:40:04 +0200 |
|---|---|---|
| committer | Zog | 2018-05-07 15:03:07 +0200 |
| commit | d041b6b07cc2b9c2b48e6da929c8d7f1e0ec8bca (patch) | |
| tree | 478d23c89c857c38b009604ef4fcbf1193eb8f2f /app | |
| parent | af49fd1021ee6b22fd8ca6c6592c5f7d64c23aa0 (diff) | |
| download | chouette-core-d041b6b07cc2b9c2b48e6da929c8d7f1e0ec8bca.tar.bz2 | |
Add import_compliance_control_sets to Workgroups
And rename resource methods for better consistency
Diffstat (limited to 'app')
| -rw-r--r-- | app/models/import/resource.rb | 23 | ||||
| -rw-r--r-- | app/models/workgroup.rb | 9 | ||||
| -rw-r--r-- | app/views/imports/import/_workbench.html.slim | 22 |
3 files changed, 28 insertions, 26 deletions
diff --git a/app/models/import/resource.rb b/app/models/import/resource.rb index 2c7889240..e88f03088 100644 --- a/app/models/import/resource.rb +++ b/app/models/import/resource.rb @@ -20,15 +20,18 @@ class Import::Resource < ApplicationModel return unless netex_import&.successful? - if workbench.import_compliance_control_set_id.present? && workbench_import_control_set.nil? + if workbench.import_compliance_control_set_id.present? && workbench_import_check_set.nil? ComplianceControlSetCopyWorker.perform_async workbench.import_compliance_control_set_id, referential_id return end - return if workbench_import_control_set && !workbench_import_control_set.successful? - - if workgroup.import_compliance_control_set_id.present? && workgroup_import_control_set.nil? - ComplianceControlSetCopyWorker.perform_async workgroup.import_compliance_control_set_id, referential_id + return if workbench_import_check_set && !workbench_import_control_set.successful? + workgroup.import_compliance_control_set_ids.each_with_index do |id, index| + compliance_check_set = workgroup_import_check_set[index] + return if compliance_check_set && !compliance_check_set.successful? + if compliance_check_set.nil? + ComplianceControlSetCopyWorker.perform_async id, referential_id + end end end end @@ -46,15 +49,17 @@ class Import::Resource < ApplicationModel import.children.where(name: self.reference).last end - def workbench_import_control_set + def workbench_import_check_set return unless referential.present? return unless referential.workbench.import_compliance_control_set_id.present? referential.compliance_check_sets.where(compliance_control_set_id: referential.workbench.import_compliance_control_set_id, referential_id: referential_id).last end - def workgroup_import_control_set + def workgroup_import_check_set(index) return unless referential.present? - return unless referential.workbench.workgroup.import_compliance_control_set_id.present? - referential.compliance_check_sets.where(compliance_control_set_id: referential.workbench.workgroup.import_compliance_control_set_id, referential_id: referential_id).last + return unless referential.workbench.workgroup.import_compliance_control_set_ids.present? + cs = referential.workbench.workgroup.import_compliance_control_sets[index] + return unless cs + referential.compliance_check_sets.where(compliance_control_set_id: cs.id, referential_id: referential_id).last end end diff --git a/app/models/workgroup.rb b/app/models/workgroup.rb index 6a1746eb8..247873869 100644 --- a/app/models/workgroup.rb +++ b/app/models/workgroup.rb @@ -24,12 +24,7 @@ class Workgroup < ApplicationModel export_types.include? export_name end - def import_compliance_control_set_id - # XXX - nil - end - - def import_compliance_control_set - import_compliance_control_set_id && ComplianceControlSet.find(import_compliance_control_set_id) + def import_compliance_control_sets + @import_compliance_control_sets ||= import_compliance_control_set_ids.map{|id| ComplianceControlSet.find(id)} end end diff --git a/app/views/imports/import/_workbench.html.slim b/app/views/imports/import/_workbench.html.slim index 0b6cc5945..4dcf949b0 100644 --- a/app/views/imports/import/_workbench.html.slim +++ b/app/views/imports/import/_workbench.html.slim @@ -12,20 +12,22 @@ ruby: controls = [] controls << TableBuilderHelper::Column.new( name: t('.stif_control'), - attribute: Proc.new { |n| import_status(n.workbench_import_control_set&.status, verbose: true, default_status: :pending) }, + attribute: Proc.new { |n| import_status(n.workbench_import_check_set&.status, verbose: true, default_status: :pending) }, sortable: false, link_to: lambda do |item| - item.workbench_import_control_set.present? && [@import.workbench, item.workbench_import_control_set] + item.workbench_import_check_set.present? && [@import.workbench, item.workbench_import_check_set] end ) if @workbench.import_compliance_control_set.present? - controls << TableBuilderHelper::Column.new( - name: t('.stif_control'), - attribute: Proc.new { |n| import_status(n.workgroup_import_control_set&.status, verbose: true, default_status: :pending) }, - sortable: false, - link_to: lambda do |item| - item.workbench_import_control_set.present? && [@import.workbench, item.workgroup_import_control_set] - end - ) if @workbench.workgroup.import_compliance_control_set.present? + controls += @workbench.workgroup.import_compliance_control_sets.each_with_index.map do |cs, i| + TableBuilderHelper::Column.new( + name: t('.organisation_control'), + attribute: Proc.new { |n| import_status(n.workgroup_import_check_set(i)&.status, verbose: true, default_status: :pending) }, + sortable: false, + link_to: lambda do |item| + item.workgroup_import_check_set(i).present? && [@import.workbench, item.workgroup_import_check_set(i)] + end + ) + end - if @import.resources.any? .col-lg-12 |
