Skip to content

Commit 94fba09

Browse files
authored
Merge pull request opf#18464 from opf/bug/62556-long-text-cf-not-displayed-when-empty
[#62556] Long text CF not displayed when empty
2 parents 60493b1 + 26bb68e commit 94fba09

File tree

2 files changed

+19
-13
lines changed

2 files changed

+19
-13
lines changed

app/models/work_package/pdf_export/export/wp/attributes.rb

+1-5
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,10 @@ def write_attributes!(work_package)
4646
def write_long_text_field!(work_package, field_id)
4747
custom_value = work_package.custom_field_values
4848
.find { |cv| cv.custom_field.id == field_id && cv.custom_field.formattable? }
49-
if custom_value&.value
50-
write_long_text_custom_field!(work_package, custom_value.value, custom_value.custom_field.name)
51-
end
49+
write_long_text_custom_field!(work_package, custom_value.value || "", custom_value.custom_field.name)
5250
end
5351

5452
def write_long_text_custom_field!(work_package, markdown, label)
55-
return if markdown.blank?
56-
5753
write_optional_page_break
5854
write_long_text_custom_field_label(label)
5955
write_markdown_field_value(work_package, markdown)

spec/models/work_packages/pdf_export/work_package_to_pdf_spec.rb

+18-8
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
include Redmine::I18n
3535
include PDFExportSpecUtils
3636
let(:type) do
37-
create(:type_bug, custom_fields: [cf_long_text, cf_disabled_in_project, cf_global_bool])
37+
create(:type_bug, custom_fields: [cf_long_text, cf_empty_long_text, cf_disabled_in_project, cf_global_bool])
3838
end
3939
let(:parent_project) do
4040
create(:project, name: "Parent project")
@@ -65,8 +65,10 @@
6565
project_custom_field_bool.id => true,
6666
project_custom_field_long_text.id => "foo"
6767
},
68-
work_package_custom_fields: [cf_long_text, cf_disabled_in_project, cf_global_bool],
69-
work_package_custom_field_ids: [cf_long_text.id, cf_global_bool.id]) # cf_disabled_in_project.id is disabled
68+
work_package_custom_fields: [cf_long_text, cf_empty_long_text, cf_disabled_in_project, cf_global_bool],
69+
70+
# cf_disabled_in_project.id not included == disabled
71+
work_package_custom_field_ids: [cf_long_text.id, cf_empty_long_text.id, cf_global_bool.id])
7072
end
7173
let(:forbidden_project) do
7274
create(:project,
@@ -78,8 +80,10 @@
7880
status_code: "on_track",
7981
active: true,
8082
parent: parent_project,
81-
work_package_custom_fields: [cf_long_text, cf_disabled_in_project, cf_global_bool],
82-
work_package_custom_field_ids: [cf_long_text.id, cf_global_bool.id]) # cf_disabled_in_project.id is disabled
83+
work_package_custom_fields: [cf_long_text, cf_empty_long_text, cf_disabled_in_project, cf_global_bool],
84+
85+
# cf_disabled_in_project.id not included == disabled
86+
work_package_custom_field_ids: [cf_long_text.id, cf_empty_long_text.id, cf_global_bool.id])
8387
end
8488
let(:user) do
8589
create(:user,
@@ -97,9 +101,12 @@
97101
let(:image_attachment) { Attachment.new author: user, file: File.open(image_path) }
98102
let(:attachments) { [image_attachment] }
99103
let(:cf_long_text_description) { "**foo** *faa*" }
104+
let(:cf_empty_long_text_description) { "" }
100105
let(:cf_long_text) do
101-
create(:issue_custom_field, :text,
102-
name: "Work Package Custom Field Long Text")
106+
create(:issue_custom_field, :text, name: "Work Package Custom Field Long Text")
107+
end
108+
let(:cf_empty_long_text) do
109+
create(:issue_custom_field, :text, name: "Empty Work Package Custom Field Long Text")
103110
end
104111
let!(:cf_disabled_in_project) do
105112
# NOT enabled by project.work_package_custom_field_ids => NOT in PDF
@@ -157,6 +164,7 @@
157164
description:,
158165
custom_values: {
159166
cf_long_text.id => cf_long_text_description,
167+
cf_empty_long_text.id => cf_empty_long_text_description,
160168
cf_disabled_in_project.id => "6.25",
161169
cf_global_bool.id => true
162170
}).tap do |wp|
@@ -219,6 +227,7 @@
219227
"Date", "05/30/2024 - 03/13/2025",
220228
"Other",
221229
"Work Package Custom Field Boolean", "Yes",
230+
"Empty Work Package Custom Field Long Text",
222231
"Work Package Custom Field Long Text", "foo faa",
223232
"Costs",
224233
"Spent units", "Labor costs", "Unit costs", "Overall costs", "Budget"
@@ -439,9 +448,10 @@ def get_column_value(column_name)
439448
end,
440449
"Custom field boolean", I18n.t(:general_text_Yes),
441450
"Custom field rich text", "[#{I18n.t('export.macro.rich_text_unsupported')}]",
442-
"Custom field hidden",
451+
443452
"1", export_time_formatted, project.name,
444453

454+
"Custom field hidden",
445455
"No replacement of:",
446456
"projectValue:1:status",
447457
"projectLabel:status",

0 commit comments

Comments
 (0)