diff options
| author | Zog | 2018-04-30 09:15:54 +0200 |
|---|---|---|
| committer | Zog | 2018-05-07 15:03:07 +0200 |
| commit | 7b336d1e47164a15c273f0899e8710e4fee273f8 (patch) | |
| tree | 2fe44c50cf876fa150f9a97c6d4f64389a79c6bb /app/models/import/resource.rb | |
| parent | 657fea85b193fb9908dcaa42391bec230e93d857 (diff) | |
| download | chouette-core-7b336d1e47164a15c273f0899e8710e4fee273f8.tar.bz2 | |
Trigger compliance checks after imports
Diffstat (limited to 'app/models/import/resource.rb')
| -rw-r--r-- | app/models/import/resource.rb | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/app/models/import/resource.rb b/app/models/import/resource.rb index e6de935ae..27dc367a8 100644 --- a/app/models/import/resource.rb +++ b/app/models/import/resource.rb @@ -7,14 +7,56 @@ class Import::Resource < ApplicationModel belongs_to :referential has_many :messages, class_name: "Import::Message", foreign_key: :resource_id + scope :main_resources, ->{ where(resource_type: "referential") } + def root_import import = self.import import = import.parent while import.parent import end + def next_step + if root_import.class == Import::Workbench + + # XXX + # return unless netex_import&.successful? + + if workbench.import_compliance_control_set_id.present? && workbench_import_control_set.nil? + ComplianceControlSetCopyWorker.perform_async workbench.import_compliance_control_set_id, referential_id + return + end + + # XXX + # 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 + end + end + end + + def workbench + import.workbench + end + + def workgroup + workbench.workgroup + end + def netex_import return unless self.resource_type == "referential" import.children.where(name: self.reference).last end + + def workbench_import_control_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 + 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 + end end |
