aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZog2018-04-30 14:40:04 +0200
committerZog2018-05-07 15:03:07 +0200
commitd041b6b07cc2b9c2b48e6da929c8d7f1e0ec8bca (patch)
tree478d23c89c857c38b009604ef4fcbf1193eb8f2f
parentaf49fd1021ee6b22fd8ca6c6592c5f7d64c23aa0 (diff)
downloadchouette-core-d041b6b07cc2b9c2b48e6da929c8d7f1e0ec8bca.tar.bz2
Add import_compliance_control_sets to Workgroups
And rename resource methods for better consistency
-rw-r--r--app/models/import/resource.rb23
-rw-r--r--app/models/workgroup.rb9
-rw-r--r--app/views/imports/import/_workbench.html.slim22
-rw-r--r--db/migrate/20180430122530_add_import_compliance_control_sets_to_workgroups.rb5
-rw-r--r--db/schema.rb15
5 files changed, 41 insertions, 33 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
diff --git a/db/migrate/20180430122530_add_import_compliance_control_sets_to_workgroups.rb b/db/migrate/20180430122530_add_import_compliance_control_sets_to_workgroups.rb
new file mode 100644
index 000000000..2fc7c8e3f
--- /dev/null
+++ b/db/migrate/20180430122530_add_import_compliance_control_sets_to_workgroups.rb
@@ -0,0 +1,5 @@
+class AddImportComplianceControlSetsToWorkgroups < ActiveRecord::Migration
+ def change
+ add_column :workgroups, :import_compliance_control_set_ids, :integer, array: true, default: []
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index b97af8f5c..4a049d7ae 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 20180425160730) do
+ActiveRecord::Schema.define(version: 20180430122530) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -1088,12 +1088,13 @@ ActiveRecord::Schema.define(version: 20180425160730) do
create_table "workgroups", id: :bigserial, force: :cascade do |t|
t.string "name"
- t.integer "line_referential_id", limit: 8
- t.integer "stop_area_referential_id", limit: 8
- t.datetime "created_at", null: false
- t.datetime "updated_at", null: false
- t.string "import_types", default: [], array: true
- t.string "export_types", default: [], array: true
+ t.integer "line_referential_id", limit: 8
+ t.integer "stop_area_referential_id", limit: 8
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ t.string "import_types", default: [], array: true
+ t.string "export_types", default: [], array: true
+ t.integer "import_compliance_control_set_ids", default: [], array: true
end
add_foreign_key "access_links", "access_points", name: "aclk_acpt_fkey"