summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/redmine/export/pdf/issues_pdf_helper.rb28
1 files changed, 16 insertions, 12 deletions
diff --git a/lib/redmine/export/pdf/issues_pdf_helper.rb b/lib/redmine/export/pdf/issues_pdf_helper.rb
index 81f1a8174..652622755 100644
--- a/lib/redmine/export/pdf/issues_pdf_helper.rb
+++ b/lib/redmine/export/pdf/issues_pdf_helper.rb
@@ -279,8 +279,8 @@ module Redmine
table_width = col_width.inject(0, :+)
end
- # use full width if the description or last_notes are displayed
- if table_width > 0 && (query.has_column?(:description) || query.has_column?(:last_notes))
+ # use full width if the query has block columns (description, last_notes or full width custom fieds)
+ if table_width > 0 && query.block_columns.any?
col_width = col_width.map {|w| w * (page_width - right_margin - left_margin) / table_width}
table_width = col_width.inject(0, :+)
end
@@ -336,18 +336,22 @@ module Redmine
issues_to_pdf_write_cells(pdf, col_values, col_width, max_height)
pdf.set_y(base_y + max_height)
- if query.has_column?(:description) && issue.description?
- pdf.set_x(10)
- pdf.set_auto_page_break(true, bottom_margin)
- pdf.RDMwriteHTMLCell(0, 5, 10, '', issue.description.to_s, issue.attachments, "LRBT")
- pdf.set_auto_page_break(false)
+ query.block_columns.each do |column|
+ if column.is_a?(QueryCustomFieldColumn)
+ cv = issue.visible_custom_field_values.detect {|v| v.custom_field_id == column.custom_field.id}
+ text = show_value(cv, false)
+ else
+ text = issue.send(column.name)
end
+ next if text.blank?
- if query.has_column?(:last_notes) && issue.last_notes.present?
- pdf.set_x(10)
- pdf.set_auto_page_break(true, bottom_margin)
- pdf.RDMwriteHTMLCell(0, 5, 10, '', issue.last_notes.to_s, [], "LRBT")
- pdf.set_auto_page_break(false)
+ pdf.set_x(10)
+ pdf.set_auto_page_break(true, bottom_margin)
+ pdf.SetFontStyle('B',9)
+ pdf.RDMCell(0, 5, column.caption, "LRT", 1)
+ pdf.SetFontStyle('',9)
+ pdf.RDMwriteHTMLCell(0, 5, '', '', text, [], "LRB")
+ pdf.set_auto_page_break(false)
end
end