2019-07-01 16:14:16 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module DrawMyModule
|
|
|
|
def draw_my_module(subject)
|
|
|
|
color = @color
|
|
|
|
link_style = @link_style
|
|
|
|
scinote_url = @scinote_url
|
|
|
|
my_module = MyModule.find_by_id(subject['id']['my_module_id'])
|
2019-07-12 19:48:14 +08:00
|
|
|
tags = my_module.tags
|
2019-07-01 16:14:16 +08:00
|
|
|
return unless my_module
|
|
|
|
|
2019-07-12 19:48:14 +08:00
|
|
|
@docx.h3 my_module.name, italic: false, size: Constants::REPORT_DOCX_MY_MODULE_TITLE_SIZE
|
2019-07-01 16:14:16 +08:00
|
|
|
@docx.p do
|
|
|
|
text I18n.t('projects.reports.elements.module.user_time',
|
|
|
|
timestamp: I18n.l(my_module.created_at, format: :full)), color: color[:gray]
|
|
|
|
text ' | '
|
|
|
|
if my_module.due_date.present?
|
|
|
|
text I18n.t('projects.reports.elements.module.due_date',
|
|
|
|
due_date: I18n.l(my_module.due_date, format: :full)), color: color[:gray]
|
|
|
|
else
|
|
|
|
text I18n.t('projects.reports.elements.module.no_due_date'), color: color[:gray]
|
|
|
|
end
|
|
|
|
if my_module.completed?
|
2019-07-12 19:48:14 +08:00
|
|
|
text " #{I18n.t('my_modules.states.completed')}", bold: true, color: color[:green]
|
|
|
|
text " #{I18n.l(my_module.completed_on, format: :full)}", color: color[:gray]
|
2019-07-01 16:14:16 +08:00
|
|
|
end
|
2019-07-12 17:38:48 +08:00
|
|
|
if my_module.archived?
|
|
|
|
text ' | '
|
|
|
|
text I18n.t('search.index.archived'), color: color[:gray]
|
|
|
|
end
|
2019-07-01 16:14:16 +08:00
|
|
|
text ' | '
|
2019-07-08 18:51:26 +08:00
|
|
|
link I18n.t('projects.reports.elements.all.scinote_link'),
|
2019-07-01 16:14:16 +08:00
|
|
|
scinote_url + Rails.application.routes.url_helpers.protocols_my_module_path(my_module),
|
|
|
|
link_style
|
|
|
|
end
|
|
|
|
if my_module.description.present?
|
|
|
|
html = custom_auto_link(my_module.description, team: @report_team)
|
|
|
|
html_to_word_converter(html)
|
|
|
|
else
|
|
|
|
@docx.p I18n.t 'projects.reports.elements.module.no_description'
|
|
|
|
end
|
|
|
|
|
|
|
|
@docx.p do
|
|
|
|
text I18n.t 'projects.reports.elements.module.tags_header'
|
2019-07-12 19:48:14 +08:00
|
|
|
if tags.any?
|
|
|
|
my_module.tags.each do |tag|
|
|
|
|
text ' '
|
|
|
|
text "[#{tag.name}]", color: tag.color.delete('#')
|
|
|
|
end
|
|
|
|
else
|
2019-07-01 16:14:16 +08:00
|
|
|
text ' '
|
2019-07-12 19:48:14 +08:00
|
|
|
text I18n.t 'projects.reports.elements.module.no_tags'
|
2019-07-01 16:14:16 +08:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
@docx.p
|
|
|
|
subject['children'].each do |child|
|
|
|
|
public_send("draw_#{child['type_of']}", child)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|