From 503d19fb9078b57def1312aa66f105d2a616082a Mon Sep 17 00:00:00 2001 From: aignatov-bio Date: Wed, 3 Jun 2020 17:02:33 +0200 Subject: [PATCH 1/2] Add snapshots to team export/import --- app/services/model_exporters/team_exporter.rb | 6 +++- app/services/team_importer.rb | 32 +++++++++++-------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/app/services/model_exporters/team_exporter.rb b/app/services/model_exporters/team_exporter.rb index 52523236d..fcaf0f840 100644 --- a/app/services/model_exporters/team_exporter.rb +++ b/app/services/model_exporters/team_exporter.rb @@ -115,7 +115,7 @@ module ModelExporters end def repository(repository) - { + repositories = { repository: repository, repository_columns: repository.repository_columns.map do |c| repository_column(c) @@ -124,6 +124,10 @@ module ModelExporters repository_row(r) end } + unless repository.is_a?(RepositorySnapshot) + repositories[:repository_snapshots] = repository.repository_snapshots.map { |r| repository(r) } + end + repositories end def repository_row(repository_row) diff --git a/app/services/team_importer.rb b/app/services/team_importer.rb index da4e96910..badc1f8de 100644 --- a/app/services/team_importer.rb +++ b/app/services/team_importer.rb @@ -121,6 +121,11 @@ class TeamImporter repository_json['repository_rows'].each do |repository_row_json| create_repository_cells(repository_row_json['repository_cells'], team) end + repository_json['repository_snapshots'].each do |repository_snapshot_json| + repository_snapshot_json['repository_rows'].each do |repository_snapshot_row_json| + create_repository_cells(repository_snapshot_row_json['repository_cells'], team) + end + end end create_activities(team_json['activities'], team) @@ -415,10 +420,16 @@ class TeamImporter end end - def create_repositories(repositories_json, team) + def create_repositories(repositories_json, team, snapshots = false) puts 'Creating repositories...' repositories_json.each do |repository_json| - repository = Repository.new(repository_json['repository']) + if snapshots + repository = RepositorySnapshot.new(repository_json['repository']) + repository.my_module_id = @my_module_mappings[repository.my_module_id] + repository.parent_id = @repository_mappings[repository.parent_id] + else + repository = Repository.new(repository_json['repository']) + end orig_repository_id = repository.id repository.id = nil repository.team = team @@ -443,7 +454,6 @@ class TeamImporter created_by_id = find_user(repository_column.created_by_id) repository_list_item = RepositoryListItem.new(data: list_item['data']) repository_list_item.repository_column = repository_column - repository_list_item.repository = repository repository_list_item.created_by_id = created_by_id repository_list_item.last_modified_by_id = created_by_id repository_list_item.save! @@ -455,7 +465,6 @@ class TeamImporter created_by_id = find_user(repository_column.created_by_id) repository_checklist_item = RepositoryChecklistItem.new(data: checklist_item['data']) repository_checklist_item.repository_column = repository_column - repository_checklist_item.repository = repository repository_checklist_item.created_by_id = created_by_id repository_checklist_item.last_modified_by_id = created_by_id repository_checklist_item.save! @@ -470,7 +479,6 @@ class TeamImporter icon: status_item['icon'] ) repository_status_item.repository_column = repository_column - repository_status_item.repository = repository repository_status_item.created_by_id = created_by_id repository_status_item.last_modified_by_id = created_by_id repository_status_item.save! @@ -480,6 +488,8 @@ class TeamImporter end end create_repository_rows(repository_json['repository_rows'], repository) + + create_repositories(repository_json['repository_snapshots'], team, true) unless snapshots end end @@ -986,6 +996,10 @@ class TeamImporter repository_value = RepositoryAssetValue.new(asset: asset) when 'RepositoryChecklistValue' repository_value = RepositoryChecklistValue.new(cell_json) + value_json['repository_value_checklist'].each do |item| + item_id = find_checklist_item_id(item['repository_checklist_item_id']).to_i + repository_value.repository_checklist_items << RepositoryChecklistItem.find(item_id) + end when 'RepositoryStatusValue' list_item_id = find_status_item_id(cell_json['repository_status_item_id']) repository_value = RepositoryStatusValue.new( @@ -1002,13 +1016,5 @@ class TeamImporter repository_value.repository_cell = repository_cell repository_cell.value = repository_value repository_value.save! - - if repository_cell.value_type == 'RepositoryChecklistValue' - value_json['repository_value_checklist'].each do |item| - item_id = find_checklist_item_id(item['repository_checklist_item_id']).to_i - RepositoryChecklistItemsValue.create!(repository_checklist_value: repository_value, - repository_checklist_item_id: item_id) - end - end end end From 4886d95ad5bc9e967e7fb1a33c3bb6d87e21a70c Mon Sep 17 00:00:00 2001 From: aignatov-bio Date: Wed, 3 Jun 2020 17:07:11 +0200 Subject: [PATCH 2/2] Fix variable naming --- app/services/model_exporters/team_exporter.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/services/model_exporters/team_exporter.rb b/app/services/model_exporters/team_exporter.rb index fcaf0f840..befa48ecf 100644 --- a/app/services/model_exporters/team_exporter.rb +++ b/app/services/model_exporters/team_exporter.rb @@ -115,7 +115,7 @@ module ModelExporters end def repository(repository) - repositories = { + result = { repository: repository, repository_columns: repository.repository_columns.map do |c| repository_column(c) @@ -125,9 +125,9 @@ module ModelExporters end } unless repository.is_a?(RepositorySnapshot) - repositories[:repository_snapshots] = repository.repository_snapshots.map { |r| repository(r) } + result[:repository_snapshots] = repository.repository_snapshots.map { |r| repository(r) } end - repositories + result end def repository_row(repository_row)