Defect #33103
Export to PDF fails when subject of parent task is included in issue list
Status: | Closed | Start date: | ||
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | % Done: | 0% | ||
Category: | PDF export | |||
Target version: | 4.1.1 | |||
Resolution: | Fixed | Affected version: | 4.1.0 |
Description
Description¶
When choosing the subject of parent tasks to be displayed in the issue list, the pdf export fails and the user get's the "internal error" site presented.
Log file output¶
ActionView::Template::Error (undefined method `parent.subject' for #<Issue:0x00000000069ba248> Did you mean? parent_issue_id): 1: <%= raw issues_to_pdf(@issues, @project, @query) %> lib/redmine/export/pdf/issues_pdf_helper.rb:378:in `block in fetch_row_values' lib/redmine/export/pdf/issues_pdf_helper.rb:372:in `collect' lib/redmine/export/pdf/issues_pdf_helper.rb:372:in `fetch_row_values' lib/redmine/export/pdf/issues_pdf_helper.rb:435:in `block in calc_col_width' app/helpers/issues_helper.rb:31:in `block in issue_list' app/helpers/issues_helper.rb:26:in `each' app/helpers/issues_helper.rb:26:in `issue_list' lib/redmine/export/pdf/issues_pdf_helper.rb:433:in `calc_col_width' lib/redmine/export/pdf/issues_pdf_helper.rb:278:in `issues_to_pdf' app/views/issues/index.pdf.erb:1:in `_26913a66e609d0514246c7dc3391de38' lib/redmine/sudo_mode.rb:65:in `sudo_mode' ActionView::Template::Error (undefined method `parent.subject' for #<Issue:0x0000000008b17468> Did you mean? parent_issue_id): 1: <%= raw issues_to_pdf(@issues, @project, @query) %> lib/redmine/export/pdf/issues_pdf_helper.rb:378:in `block in fetch_row_values' lib/redmine/export/pdf/issues_pdf_helper.rb:372:in `collect' lib/redmine/export/pdf/issues_pdf_helper.rb:372:in `fetch_row_values' lib/redmine/export/pdf/issues_pdf_helper.rb:435:in `block in calc_col_width' app/helpers/issues_helper.rb:31:in `block in issue_list' app/helpers/issues_helper.rb:26:in `each' app/helpers/issues_helper.rb:26:in `issue_list' lib/redmine/export/pdf/issues_pdf_helper.rb:433:in `calc_col_width' lib/redmine/export/pdf/issues_pdf_helper.rb:278:in `issues_to_pdf' app/views/issues/index.pdf.erb:1:in `_26913a66e609d0514246c7dc3391de38' lib/redmine/sudo_mode.rb:65:in `sudo_mode'
The csv export of the same list works fine.
Related issues
Associated revisions
Export to PDF fails when subject of parent task is included in issue list (#33103).
Patch by Marius BALTEANU and Yuichi HARADA.
History
#2
Updated by Go MAEDA 11 months ago
- Related to Feature #19371: Add a new query column for the parent task subject added
#3
Updated by Yuichi HARADA 10 months ago
- File 33103.patch
added
This will be resolved with the following patch.
diff --git a/lib/redmine/export/pdf/issues_pdf_helper.rb b/lib/redmine/export/pdf/issues_pdf_helper.rb
index 2f73e52a4..4b06fb87c 100644
--- a/lib/redmine/export/pdf/issues_pdf_helper.rb
+++ b/lib/redmine/export/pdf/issues_pdf_helper.rb
@@ -379,7 +379,11 @@ module Redmine
cv = issue.visible_custom_field_values.detect {|v| v.custom_field_id == column.custom_field.id}
show_value(cv, false)
else
- value = issue.send(column.name)
+ value = issue
+ column.name.to_s.split(/\./).each do |column_name|
+ value = value.__send__(column_name)
+ break unless value
+ end
case column.name
when :subject
value = " " * level + value
#4
Updated by Marius BALTEANU 10 months ago
- Target version set to 4.1.1
Yuichi HARADA, I think we can fix the issue by using the method column.value_object(issue)
instead of issue.send()
. What do you think?
diff --git a/lib/redmine/export/pdf/issues_pdf_helper.rb b/lib/redmine/export/pdf/issues_pdf_helper.rb
index 2f73e52a4..b49691695 100644
--- a/lib/redmine/export/pdf/issues_pdf_helper.rb
+++ b/lib/redmine/export/pdf/issues_pdf_helper.rb
@@ -379,7 +379,7 @@ module Redmine
cv = issue.visible_custom_field_values.detect {|v| v.custom_field_id == column.custom_field.id}
show_value(cv, false)
else
- value = issue.send(column.name)
+ value = column.value_object(issue)
case column.name
when :subject
value = " " * level + value
I've added your test to this fix and it looks good on CI: https://gitlab.com/redmine-org/redmine/pipelines/128961861
#5
Updated by Yuichi HARADA 10 months ago
Marius BALTEANU wrote:
Yuichi HARADA, I think we can fix the issue by using the method
column.value_object(issue)
instead ofissue.send()
. What do you think?[...]
I've added your test to this fix and it looks good on CI: https://gitlab.com/redmine-org/redmine/pipelines/128961861
I agree with you, I think it is correct. I didn't understand the method QueryColumn#value_object
.