From 85a5cca98acb46a52289147e4fc46183777049fe Mon Sep 17 00:00:00 2001 From: Oleksii Kriuchykhin Date: Wed, 16 Jun 2021 16:17:12 +0200 Subject: [PATCH] Fix repository snapshots for export all [SCI-5776] --- app/helpers/reports_helper.rb | 5 +---- app/models/report.rb | 2 +- app/models/repository_snapshot.rb | 4 ++-- app/services/report_actions/report_content.rb | 7 +++++-- .../elements/_my_module_repository_element.html.erb | 2 +- .../elements/_my_module_result_asset_element.html.erb | 2 +- .../elements/_my_module_result_table_element.html.erb | 2 +- app/views/reports/elements/_step_asset_element.html.erb | 2 +- app/views/reports/elements/_step_table_element.html.erb | 2 +- 9 files changed, 14 insertions(+), 14 deletions(-) diff --git a/app/helpers/reports_helper.rb b/app/helpers/reports_helper.rb index c84836ebb..2a37a040d 100644 --- a/app/helpers/reports_helper.rb +++ b/app/helpers/reports_helper.rb @@ -121,10 +121,7 @@ module ReportsHelper repository = Repository.accessible_by_teams(my_module.experiment.project.team).find_by(id: element_id) # Check for default set snapshots when repository still exists if repository - selected_snapshot = repository.repository_snapshots - .joins(repository_rows: { my_module_repository_rows: :my_module }) - .where(repository_rows: { my_module_repository_rows: { my_module: my_module } }) - .find_by(selected: true) + selected_snapshot = repository.repository_snapshots.where(my_module: my_module).find_by(selected: true) repository = selected_snapshot if selected_snapshot end repository ||= RepositorySnapshot.joins(my_module: { experiment: :project }) diff --git a/app/models/report.rb b/app/models/report.rb index e427d010a..dfef539e5 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -104,7 +104,7 @@ class Report < ApplicationRecord content = { 'experiments' => [], 'tasks' => {}, - 'repositories' => Repository.accessible_by_teams(project.team).pluck(:id) + 'repositories' => project.assigned_repositories_and_snapshots.pluck(:id) } project.experiments.includes(:my_modules).each do |experiment| content['experiments'].push(experiment.id) diff --git a/app/models/repository_snapshot.rb b/app/models/repository_snapshot.rb index eb0cf7eb4..620fc5aed 100644 --- a/app/models/repository_snapshot.rb +++ b/app/models/repository_snapshot.rb @@ -28,8 +28,8 @@ class RepositorySnapshot < RepositoryBase scope :assigned_to_project, lambda { |project| where(team: project.team) - .joins(repository_rows: { my_module_repository_rows: { my_module: { experiment: :project } } }) - .where(repository_rows: { my_module_repository_rows: { my_module: { experiments: { project: project } } } }) + .joins(my_module: { experiment: :project }) + .where(my_module: { experiments: { project: project } }) } def self.create_preliminary(repository, my_module, created_by = nil) diff --git a/app/services/report_actions/report_content.rb b/app/services/report_actions/report_content.rb index 4ac5e741f..543c46478 100644 --- a/app/services/report_actions/report_content.rb +++ b/app/services/report_actions/report_content.rb @@ -13,8 +13,9 @@ module ReportActions @element_position = 0 @report = report @template_values = template_values - @repositories = Repository.accessible_by_teams(report.project.team) - .where(id: @content['repositories']) + @repositories = report.project + .assigned_repositories_and_snapshots + .select { |repository| @content['repositories'].include?(repository.id) } end def save_with_content @@ -80,6 +81,8 @@ module ReportActions my_module_element = save_element!({ 'my_module_id' => my_module.id }, :my_module, experiment_element) @repositories.each do |repository| + next unless my_module.live_and_snapshot_repositories_list.pluck(:id).include?(repository.id) + save_element!( { 'my_module_id' => my_module.id, 'repository_id' => repository.id }, :my_module_repository, diff --git a/app/views/reports/elements/_my_module_repository_element.html.erb b/app/views/reports/elements/_my_module_repository_element.html.erb index fa260a3ee..fc8bc4800 100644 --- a/app/views/reports/elements/_my_module_repository_element.html.erb +++ b/app/views/reports/elements/_my_module_repository_element.html.erb @@ -26,7 +26,7 @@
<% file_link = @obj_filenames.dig(:repositories, repository.id, :file) %> - <%= t('projects.reports.elements.module_repository.table_name', name: file_link&.split('/').last) %> + <%= t('projects.reports.elements.module_repository.table_name', name: file_link&.split('/')&.last) %>
<% end %> diff --git a/app/views/reports/elements/_my_module_result_asset_element.html.erb b/app/views/reports/elements/_my_module_result_asset_element.html.erb index 45c428ad1..40677b2ac 100644 --- a/app/views/reports/elements/_my_module_result_asset_element.html.erb +++ b/app/views/reports/elements/_my_module_result_asset_element.html.erb @@ -26,7 +26,7 @@ <% if defined? export_all and export_all %> <% file_link = @obj_filenames.dig(:assets, asset.id, :file) %> - <%= t("projects.reports.elements.result_asset.file_name", file: file_link&.split('/').last) %> + <%= t("projects.reports.elements.result_asset.file_name", file: file_link&.split('/')&.last) %> <% else %> diff --git a/app/views/reports/elements/_my_module_result_table_element.html.erb b/app/views/reports/elements/_my_module_result_table_element.html.erb index bc0b45c0c..215864598 100644 --- a/app/views/reports/elements/_my_module_result_table_element.html.erb +++ b/app/views/reports/elements/_my_module_result_table_element.html.erb @@ -19,7 +19,7 @@ <% end %> diff --git a/app/views/reports/elements/_step_asset_element.html.erb b/app/views/reports/elements/_step_asset_element.html.erb index 51ed81e0d..5b5da43c0 100644 --- a/app/views/reports/elements/_step_asset_element.html.erb +++ b/app/views/reports/elements/_step_asset_element.html.erb @@ -11,7 +11,7 @@ <% if defined? export_all and export_all %> <% file_link = @obj_filenames.dig(:assets, asset.id, :file) %> - <%= t('projects.reports.elements.step_asset.file_name', file: file_link&.split('/').last) %> + <%= t('projects.reports.elements.step_asset.file_name', file: file_link&.split('/')&.last) %> <% else %> diff --git a/app/views/reports/elements/_step_table_element.html.erb b/app/views/reports/elements/_step_table_element.html.erb index 45d114210..bc1ada3cf 100644 --- a/app/views/reports/elements/_step_table_element.html.erb +++ b/app/views/reports/elements/_step_table_element.html.erb @@ -10,7 +10,7 @@ <% if defined? export_all and export_all %> <% file_link = @obj_filenames.dig(:tables, table.id, :file) %> - <%=t 'projects.reports.elements.step_table.table_name', name: file_link&.split('/').last %> + <%=t 'projects.reports.elements.step_table.table_name', name: file_link&.split('/')&.last %> <% else %> <% if table.try(:name) %>