From c8f879dfbb209edfdaf0eb3e7f5acfb204c294f4 Mon Sep 17 00:00:00 2001 From: Andy Sellick Date: Mon, 15 Jan 2024 14:09:31 +0000 Subject: [PATCH] Change forms pages to use different data - rework the list of documents on the forms pages to use the content item data in `details->attachments` to render the required content, in place of the data in `details->documents`, which is pre-rendered - will make putting tracking onto these elements easier --- app/presenters/publication_presenter.rb | 4 ++-- app/views/content_items/_attachments.html.erb | 19 +++++++++++-------- app/views/content_items/publication.html.erb | 3 ++- test/presenters/publication_presenter_test.rb | 2 +- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/app/presenters/publication_presenter.rb b/app/presenters/publication_presenter.rb index 7514029e9b..0839dfef41 100644 --- a/app/presenters/publication_presenter.rb +++ b/app/presenters/publication_presenter.rb @@ -10,8 +10,8 @@ def details content_item["details"]["body"] end - def documents - content_item["details"]["documents"].to_a.join("") + def documents_attachments + content_item["details"]["attachments"] end def featured_attachments diff --git a/app/views/content_items/_attachments.html.erb b/app/views/content_items/_attachments.html.erb index ee8f901a6c..73dfa6444b 100644 --- a/app/views/content_items/_attachments.html.erb +++ b/app/views/content_items/_attachments.html.erb @@ -1,17 +1,20 @@ -<% attachments ||= [] %> -<% attachment_details = attachments.filter_map { |id| @content_item&.attachment_details(id) } %> +<% featured_attachments ||= [] %> +<% attachment_details = featured_attachments.filter_map { |id| @content_item&.attachment_details(id) } %> <% if legacy_pre_rendered_documents.present? || attachment_details.any? %>
<%= render 'govuk_publishing_components/components/heading', text: title, mobile_top_margin: true %> - <% if legacy_pre_rendered_documents.present? %> - <%= render 'govuk_publishing_components/components/govspeak', { - direction: page_text_direction, - } do %> - <% add_gem_component_stylesheet("details") if legacy_pre_rendered_documents.include? "govuk\-details" %> - <%= raw(legacy_pre_rendered_documents) %> + <% add_gem_component_stylesheet("details") %> + <% if attachments.present? %> + <% attachments.each do |details| %> +
+ <%= render 'govuk_publishing_components/components/attachment', { + heading_level: 3, + attachment: details + } %> +
<% end %> <% else %> <% attachment_details.each do |details| %> diff --git a/app/views/content_items/publication.html.erb b/app/views/content_items/publication.html.erb index 66b40dd807..e86774a20d 100644 --- a/app/views/content_items/publication.html.erb +++ b/app/views/content_items/publication.html.erb @@ -52,7 +52,8 @@ <%= render "attachments", title: t("publication.documents", count: 5), # This should always be pluralised. legacy_pre_rendered_documents: @content_item.documents, - attachments: @content_item.featured_attachments + attachments: @content_item.documents_attachments, + featured_attachments: @content_item.featured_attachments %>
diff --git a/test/presenters/publication_presenter_test.rb b/test/presenters/publication_presenter_test.rb index ad11cba5d3..da7fd3989e 100644 --- a/test/presenters/publication_presenter_test.rb +++ b/test/presenters/publication_presenter_test.rb @@ -10,7 +10,7 @@ def schema_name assert_equal schema_item["schema_name"], presented_item.schema_name assert_equal schema_item["title"], presented_item.title assert_equal schema_item["details"]["body"], presented_item.details - assert_equal schema_item["details"]["documents"].join(""), presented_item.documents + assert_equal schema_item["details"]["documents"], presented_item.documents_attachments end test "#published returns a formatted date of the day the content item became public" do