2024-08-09 18:01:05 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Reports::Docx::DrawResults
|
|
|
|
def draw_results(my_module)
|
|
|
|
color = @color
|
2024-08-14 16:52:16 +08:00
|
|
|
settings = @settings
|
2024-08-09 18:01:05 +08:00
|
|
|
return unless can_read_my_module?(@user, my_module)
|
|
|
|
|
|
|
|
if my_module.results.any? && (%w(file_results table_results text_results).any? { |k| @settings.dig('task', k) })
|
|
|
|
@docx.h4 I18n.t('Results')
|
|
|
|
order_results_for_report(my_module.results, @settings.dig('task', 'result_order')).each do |result|
|
|
|
|
@docx.p do
|
|
|
|
text result.name.presence || I18n.t('projects.reports.unnamed'), italic: true
|
|
|
|
text " #{I18n.t('search.index.archived')} ", bold: true if result.archived?
|
2024-09-05 19:41:35 +08:00
|
|
|
unless settings['exclude_timestamps']
|
2024-08-14 16:52:16 +08:00
|
|
|
text I18n.t('projects.reports.elements.result.user_time',
|
|
|
|
timestamp: I18n.l(result.created_at, format: :full),
|
|
|
|
user: result.user.full_name), color: color[:gray]
|
|
|
|
end
|
2024-08-09 18:01:05 +08:00
|
|
|
end
|
|
|
|
draw_result_asset(result, @settings) if @settings.dig('task', 'file_results')
|
|
|
|
result.result_orderable_elements.each do |element|
|
|
|
|
if @settings.dig('task', 'table_results') && element.orderable_type == 'ResultTable'
|
|
|
|
draw_result_table(element)
|
|
|
|
elsif @settings.dig('task', 'text_results') && element.orderable_type == 'ResultText'
|
|
|
|
draw_result_text(element)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
draw_result_comments(result) if @settings.dig('task', 'result_comments')
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|