diff --git a/app/views/submissions/_value.html.erb b/app/views/submissions/_value.html.erb
index 546ce26f..38ae36ea 100644
--- a/app/views/submissions/_value.html.erb
+++ b/app/views/submissions/_value.html.erb
@@ -28,9 +28,9 @@
<% end %>
- <% elsif field['type'].in?(['image', 'initials', 'stamp']) %>
+ <% elsif field['type'].in?(['image', 'initials', 'stamp']) && attachments_index[value].image? %>
- <% elsif field['type'].in?(['file', 'payment']) %>
+ <% elsif field['type'].in?(['file', 'payment', 'image']) %>
<% Array.wrap(value).each do |val| %>
diff --git a/app/views/submissions/show.html.erb b/app/views/submissions/show.html.erb
index 33f507ac..edadd1a7 100644
--- a/app/views/submissions/show.html.erb
+++ b/app/views/submissions/show.html.erb
@@ -244,9 +244,9 @@
- <% elsif field['type'].in?(['image', 'stamp']) %>
+ <% elsif field['type'].in?(['image', 'stamp']) && attachments_index[value].image? %>

- <% elsif field['type'] == 'file' || field['type'] == 'payment' %>
+ <% elsif field['type'].in?(['file', 'payment', 'image']) %>
<% Array.wrap(value).each do |val| %>
diff --git a/lib/submissions/generate_audit_trail.rb b/lib/submissions/generate_audit_trail.rb
index d15c242b..51d3e190 100644
--- a/lib/submissions/generate_audit_trail.rb
+++ b/lib/submissions/generate_audit_trail.rb
@@ -312,8 +312,9 @@ module Submissions
text_align: field_name.to_s.match?(RTL_REGEXP) ? :right : :left,
line_spacing: 1.3, padding: [0, 0, 2, 0]
),
- if field['type'].in?(%w[image signature initials stamp])
- attachment = submitter.attachments.find { |a| a.uuid == value }
+ if field['type'].in?(%w[image signature initials stamp]) &&
+ (attachment = submitter.attachments.find { |a| a.uuid == value }) &&
+ attachment.image?
image =
begin
@@ -340,7 +341,7 @@ module Submissions
composer.image(io, width:, height:, margin: [5, 0, 10, 0])
composer.formatted_text_box([{ text: '' }])
- elsif field['type'].in?(%w[file payment])
+ elsif field['type'].in?(%w[file payment image])
if field['type'] == 'payment'
unit = CURRENCY_SYMBOLS[field['preferences']['currency']] || field['preferences']['currency']
diff --git a/lib/submissions/generate_result_attachments.rb b/lib/submissions/generate_result_attachments.rb
index bdfff77b..6d690358 100644
--- a/lib/submissions/generate_result_attachments.rb
+++ b/lib/submissions/generate_result_attachments.rb
@@ -252,7 +252,11 @@ module Submissions
canvas = page.canvas(type: :overlay)
canvas.font(FONT_NAME, size: font_size)
- case field['type']
+ field_type = field['type']
+ field_type = 'file' if field_type == 'image' &&
+ !submitter.attachments.find { |a| a.uuid == value }.image?
+
+ case field_type
when ->(type) { type == 'signature' && (with_signature_id || field.dig('preferences', 'reason_field_uuid')) }
attachment = submitter.attachments.find { |a| a.uuid == value }