Skip to content

Commit e4c0568

Browse files
WIP
1 parent cba8239 commit e4c0568

2 files changed

Lines changed: 13 additions & 5 deletions

File tree

app/models/attachment_data.rb

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -173,16 +173,22 @@ def attachable_url
173173
return nil if significant_attachable.blank?
174174

175175
if significant_attachable.is_a?(Edition)
176-
attachable_in_pre_publication_state = Edition::PRE_PUBLICATION_STATES.include?(significant_attachable.state)
177-
attachable_in_pre_publication_state ? significant_attachable.public_url(draft: true) : significant_attachable.public_url
176+
url_for(significant_attachable)
178177
elsif significant_attachable.respond_to?(:parent_attachable) && significant_attachable.parent_attachable.is_a?(Edition)
179-
parent_attachable_in_pre_publication_state = Edition::PRE_PUBLICATION_STATES.include?(significant_attachable.parent_attachable.state)
180-
parent_attachable_in_pre_publication_state ? significant_attachable.parent_attachable.public_url(draft: true) : significant_attachable.parent_attachable.public_url
178+
url_for(significant_attachable.parent_attachable)
181179
elsif significant_attachable.is_a?(PolicyGroup)
182180
significant_attachable.public_url
183181
end
184182
end
185183

184+
def url_for(edition)
185+
if Edition::PRE_PUBLICATION_STATES.include?(edition.state)
186+
edition.public_url(draft: true)
187+
elsif edition.publicly_visible?
188+
edition.public_url
189+
end
190+
end
191+
186192
def access_limitation
187193
return [] unless access_limited?
188194

@@ -193,7 +199,7 @@ def keep_existing_file?
193199
to_replace_id.present? && keep_or_replace != "replace"
194200
end
195201

196-
private
202+
private
197203

198204
def filtered_attachments(include_deleted_attachables: false)
199205
if include_deleted_attachables

test/unit/app/models/attachment_data_test.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,7 @@ class AttachmentDataTest < ActiveSupport::TestCase
475475
assert_equal edition.public_url(draft: true), attachment_data.attachable_url
476476
end
477477

478+
# TODO - This is for published and withdrawn
478479
it "returns live url for published edition" do
479480
# Works because visible_to?(user) returns true because !draft
480481
edition = create(:published_standard_edition, :with_file_attachment)
@@ -483,6 +484,7 @@ class AttachmentDataTest < ActiveSupport::TestCase
483484
assert_equal edition.public_url, attachment_data.attachable_url
484485
end
485486

487+
# Cover unpublished edition?
486488
it "returns nil for deleted edition" do
487489
edition = create(:draft_standard_edition, :with_file_attachment)
488490
attachment_data = edition.attachments.first.attachment_data

0 commit comments

Comments
 (0)