scinote-web/app/services/reports/docx/draw_experiment.rb

33 lines
1.3 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
2019-09-17 16:50:01 +08:00
module Reports::Docx::DrawExperiment
def draw_experiment(subject)
color = @color
link_style = @link_style
scinote_url = @scinote_url
experiment = Experiment.find_by(id: subject['id']['experiment_id'])
return unless experiment && can_read_experiment?(@user, experiment)
@docx.h2 experiment.name, size: Constants::REPORT_DOCX_EXPERIMENT_TITLE_SIZE
@docx.p do
text I18n.t('projects.reports.elements.experiment.user_time',
timestamp: I18n.l(experiment.created_at, format: :full)), color: color[:gray]
if experiment.archived?
text ' | '
text I18n.t('search.index.archived'), color: color[:gray]
end
text ' | '
link I18n.t('projects.reports.elements.all.scinote_link'),
scinote_url + Rails.application.routes.url_helpers.canvas_experiment_path(experiment),
link_style
end
html = custom_auto_link(experiment.description, team: @report_team)
Reports::HtmlToWordConverter.new(@docx, { scinote_url: scinote_url,
link_style: link_style }).html_to_word_converter(html)
@docx.p
subject['children'].each do |child|
public_send("draw_#{child['type_of']}", child, experiment)
end
end
end