diff --git a/app/models/team_zip_export.rb b/app/models/team_zip_export.rb index 4e9beb1c6..265723840 100644 --- a/app/models/team_zip_export.rb +++ b/app/models/team_zip_export.rb @@ -115,14 +115,27 @@ class TeamZipExport < ZipExport ) # Export results - obj_filenames[:result_asset].merge!( - export_assets(ResultAsset.where(result: my_module.results), - :result, result_path) - ) - obj_filenames[:result_table].merge!( - export_tables(ResultTable.where(result: my_module.results), - :result, result_path) - ) + [false, true].each do |archived| + obj_filenames[:result_asset].merge!( + export_assets( + ResultAsset.where(result: my_module.results.where(archived: archived)), + :result, + result_path, + archived + ) + ) + end + + [false, true].each do |archived| + obj_filenames[:result_table].merge!( + export_tables( + ResultTable.where(result: my_module.results.where(archived: archived)), + :result, + result_path, + archived + ) + ) + end end end @@ -183,10 +196,17 @@ class TeamZipExport < ZipExport File.basename(file_name, ext) + suffix + ext end - # Helper method to extract given assets to the directory - def export_assets(elements, type, directory) - asset_indexes = {} + def create_archived_results_folder(result_path) + path = "#{result_path}/Archived attachments" + FileUtils.mkdir_p(path) unless File.directory?(path) + path + end + # Helper method to extract given assets to the directory + def export_assets(elements, type, directory, archived = false) + directory = create_archived_results_folder(directory) if archived && elements.present? + + asset_indexes = {} elements.each_with_index do |element, i| asset = element.asset @@ -206,9 +226,10 @@ class TeamZipExport < ZipExport end # Helper method to extract given tables to the directory - def export_tables(elements, type, directory) - table_indexes = {} + def export_tables(elements, type, directory, archived = false) + directory = create_archived_results_folder(directory) if archived && elements.present? + table_indexes = {} elements.each_with_index do |element, i| table = element.table table_name = table.name.presence || 'Table' 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 62cc048c3..ca24d4f9a 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 @@ -12,6 +12,9 @@
<%= result.name %> + <% if result.archived? %> + <%=t 'search.index.archived' %> + <% end %>
<% if defined? export_all and export_all %> 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 3921dcfdd..2d89ba2d8 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 @@ -11,12 +11,16 @@
<%= result.name %> + <% if result.archived? %> + <%=t 'search.index.archived' %> + <% end %>
<% if defined? export_all and export_all %>
<%=t "projects.reports.elements.result_table.table_name", name: filename %> +
<% end %> diff --git a/app/views/reports/elements/_my_module_result_text_element.html.erb b/app/views/reports/elements/_my_module_result_text_element.html.erb index 9159f7c78..ecb34e878 100644 --- a/app/views/reports/elements/_my_module_result_text_element.html.erb +++ b/app/views/reports/elements/_my_module_result_text_element.html.erb @@ -12,6 +12,9 @@
<%= name %> + <% if result.archived? %> + <%=t 'search.index.archived' %> + <% end %>
<%=t "projects.reports.elements.result_text.user_time", user: result.user.full_name, timestamp: l(timestamp, format: :full) %>