Browse Source

Refactor dpo_user method and use association to get requestor information

pull/2565/head
Manny Dinssa 2 years ago
parent
commit
0c983b0e67
  1. 7
      app/models/merge_request.rb
  2. 2
      app/views/merge_requests/show.html.erb
  3. 2
      spec/views/merge_requests/details.html.erb_spec.rb

7
app/models/merge_request.rb

@ -3,6 +3,7 @@ class MergeRequest < ApplicationRecord
has_many :merge_request_organisations
belongs_to :absorbing_organisation, class_name: "Organisation", optional: true
has_many :merging_organisations, through: :merge_request_organisations, source: :merging_organisation
belongs_to :requestor, class_name: "User", foreign_key: "requester_id"
validate :organisation_name_uniqueness, if: :new_organisation_name
validates :new_telephone_number, presence: true, if: -> { telephone_number_correct == false }
@ -32,11 +33,7 @@ class MergeRequest < ApplicationRecord
absorbing_organisation&.name || ""
end
def requesting_user
User.find(requester_id) if requester_id
end
def dpo_user
absorbing_organisation.users.filter_by_active.find_by(is_dpo: true) if absorbing_organisation
absorbing_organisation.data_protection_officers.filter_by_active.first
end
end

2
app/views/merge_requests/show.html.erb

@ -37,7 +37,7 @@
<% end %>
<% request_details = [
{ label: "Requester", value: display_value_or_placeholder(@merge_request.requesting_user&.name) },
{ label: "Requester", value: display_value_or_placeholder(@merge_request.requestor&.name) },
{ label: "Helpdesk ticket", value: @merge_request.helpdesk_ticket.present? ? link_to("#{@merge_request.helpdesk_ticket} (opens in a new tab)", "https://dluhcdigital.atlassian.net/browse/#{@merge_request.helpdesk_ticket}", target: "_blank", rel: "noopener noreferrer") : display_value_or_placeholder(nil), action: @merge_request.status == "request_merged" ? nil : { text: "Change", href: "#", visually_hidden_text: "helpdesk ticket" } },
{ label: "Status", value: status_tag(@merge_request.status) },
] %>

2
spec/views/merge_requests/details.html.erb_spec.rb

@ -24,7 +24,7 @@ RSpec.describe "merge_requests/details.html.erb", type: :view do
it "displays the requester details" do
expect(rendered).to have_selector("dt", text: "Requester")
expect(rendered).to have_selector("dd", text: merge_request.requesting_user&.name || "You didn't answer this question")
expect(rendered).to have_selector("dd", text: merge_request.requestor&.name || "You didn't answer this question")
end
it "displays the helpdesk ticket details" do

Loading…
Cancel
Save