From 410d8916189e70bae37294977ae8b1ea5e33652a Mon Sep 17 00:00:00 2001 From: Manny Dinssa <44172848+Dinssa@users.noreply.github.com> Date: Fri, 9 Aug 2024 19:33:26 +0100 Subject: [PATCH] Create merge requests details page --- app/controllers/merge_requests_controller.rb | 6 + app/helpers/merge_requests_helper.rb | 5 + app/views/merge_requests/details.html.erb | 158 ++++++++++++++++++ .../_merge_request_list.html.erb | 4 +- config/routes.rb | 1 + 5 files changed, 172 insertions(+), 2 deletions(-) create mode 100644 app/helpers/merge_requests_helper.rb create mode 100644 app/views/merge_requests/details.html.erb diff --git a/app/controllers/merge_requests_controller.rb b/app/controllers/merge_requests_controller.rb index 5d1e2550e..6e42e047f 100644 --- a/app/controllers/merge_requests_controller.rb +++ b/app/controllers/merge_requests_controller.rb @@ -11,6 +11,7 @@ class MergeRequestsController < ApplicationController new_organisation_telephone_number new_organisation_type merge_date + details ] before_action :authenticate_user! before_action :authenticate_scope!, except: [:create] @@ -47,6 +48,11 @@ class MergeRequestsController < ApplicationController end end + def details + @merge_request = MergeRequest.find(params[:id]) + render :details + end + def update_organisations merge_request_organisation = MergeRequestOrganisation.new(merge_request_organisation_params) @answer_options = organisations_answer_options diff --git a/app/helpers/merge_requests_helper.rb b/app/helpers/merge_requests_helper.rb new file mode 100644 index 000000000..e687dec4a --- /dev/null +++ b/app/helpers/merge_requests_helper.rb @@ -0,0 +1,5 @@ +module MergeRequestsHelper + def display_value_or_placeholder(value, placeholder = "You didn't answer this question") + value.presence || content_tag(:span, placeholder, class: "app-!-colour-muted") + end +end diff --git a/app/views/merge_requests/details.html.erb b/app/views/merge_requests/details.html.erb new file mode 100644 index 000000000..45d1cc6b9 --- /dev/null +++ b/app/views/merge_requests/details.html.erb @@ -0,0 +1,158 @@ +<% content_for :before_content do %> + <% title = "Merge details: #{@merge_request.absorbing_organisation_name}" %> + <% content_for :title, title %> + + <%= govuk_back_link href: "#{organisations_path}#merge-requests" %> +<% end %> +<% unless @merge_request.signed_dsa %> +
+
+

+ Important +

+
+
+ The absorbing organisation must accept the Data Sharing Agreement before merging. +

Contact the Data Protection Officer: + <% if @merge_request.dpo_user %> + <%= link_to @merge_request.dpo_user.name, user_path(@merge_request.dpo_user.id) %> + <% else %> + None belong to the organisation + <% end %> +

+
+
+<% end %> +

+ Merge details + <%= @merge_request.absorbing_organisation_name %> +

+
+ + +
+ + + + + + + + + + + + + + + + <% ticket_base_url = "https://dluhcdigital.atlassian.net/browse/" %> + + + + + + + + + +
Request details
Requester<%= display_value_or_placeholder(@merge_request.requesting_user&.name) %>
Helpdesk ticket + <% if @merge_request.helpdesk_ticket.blank? %> + <%= display_value_or_placeholder(nil) %> + <% else %> + + <%= @merge_request.helpdesk_ticket %> (opens in a new tab) + + <% end %> + Change
Status<%= status_tag(@merge_request.status) %>
+ + + + + + + + + + + + + + + + + + + + + + + + +
Merge details
Absorbing organisation<%= display_value_or_placeholder(@merge_request.absorbing_organisation_name) %>Change
Merging organisations + <% if @merge_request.other_merging_organisations.blank? %> + <%= display_value_or_placeholder(nil) %> + <% else %> + <% @merge_request.other_merging_organisations.split(',').each do |organisation| %> +

<%= organisation.strip %>

+ <% end %> + <% end %> +
Change
Merge date<%= display_value_or_placeholder(@merge_request.merge_date) %>Change
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Merge outcomes
Total users after merge<%= display_value_or_placeholder(@merge_request.total_users) %>View
Total schemes after merge<%= display_value_or_placeholder(@merge_request.total_schemes) %>View
Total logs after merge + <% if @merge_request.total_lettings_logs.blank? && @merge_request.total_sales_logs.blank? %> + <%= display_value_or_placeholder(nil) %> + <% else %> + <% unless @merge_request.total_lettings_logs.blank? %> + <%= @merge_request.total_lettings_logs %> lettings logs + <% end %> +
+ <% unless @merge_request.total_sales_logs.blank? %> + <%= @merge_request.total_sales_logs %> sales logs + <% end %> + <% end %> +
View
Total stock owners & managing agents after merge + <% if @merge_request.total_stock_owners.blank? && @merge_request.total_managing_agents.blank? %> + <%= display_value_or_placeholder(nil) %> + <% else %> + <% unless @merge_request.total_stock_owners.blank? %> + <%= @merge_request.total_stock_owners %> stock owners + <% end %> +
+ <% unless @merge_request.total_managing_agents.blank? %> + <%= @merge_request.total_managing_agents %> managing agents + <% end %> + <% end %> +
View
diff --git a/app/views/organisations/_merge_request_list.html.erb b/app/views/organisations/_merge_request_list.html.erb index 6e4bab9fa..066084f90 100644 --- a/app/views/organisations/_merge_request_list.html.erb +++ b/app/views/organisations/_merge_request_list.html.erb @@ -3,7 +3,7 @@

No merge requests

<% else %> <%= govuk_table do |table| %> - <%= table.with_caption(classes: %w[govuk-!-font-size-19 govuk-!-font-weight-regular]) do |caption| %> + <%= table.with_caption(classes: %w[govuk-!-font-size-19 govuk-!-font-weight-regular]) do %> <%= @merge_requests.where.not(status: 4).count %> unresolved merge requests <% end %> <%= table.with_head do |head| %> @@ -48,7 +48,7 @@ <% row.with_cell(html_attributes: { scope: "row", }) do %> - <%= govuk_link_to("View details", "/merge-request/#{merge_request.id}/organisations") %> + <%= govuk_link_to("View details", "/merge-request/#{merge_request.id}/details") %> <% end %> <% end %> <% end %> diff --git a/config/routes.rb b/config/routes.rb index e0d9631e9..fbb59a7d0 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -205,6 +205,7 @@ Rails.application.routes.draw do get "new-organisation-telephone-number" get "new-organisation-type" get "merge-date" + get "details", to: "merge_requests#details" end end