Browse Source

Update view logs outcomes link

pull/2618/head
Kat 2 years ago
parent
commit
46dd9de795
  1. 1
      app/controllers/merge_requests_controller.rb
  2. 2
      app/helpers/merge_requests_helper.rb
  3. 16
      app/models/merge_request.rb
  4. 1
      config/routes.rb
  5. 22
      spec/requests/merge_requests_controller_spec.rb

1
app/controllers/merge_requests_controller.rb

@ -12,6 +12,7 @@ class MergeRequestsController < ApplicationController
def user_outcomes; end def user_outcomes; end
def relationship_outcomes; end def relationship_outcomes; end
def scheme_outcomes; end def scheme_outcomes; end
def logs_outcomes; end
def create def create
ActiveRecord::Base.transaction do ActiveRecord::Base.transaction do

2
app/helpers/merge_requests_helper.rb

@ -27,7 +27,7 @@ module MergeRequestsHelper
[ [
{ label: "Total users after merge", value: display_value_or_placeholder(merge_request.total_users_label), action: merge_outcome_action(merge_request, "user_outcomes") }, { label: "Total users after merge", value: display_value_or_placeholder(merge_request.total_users_label), action: merge_outcome_action(merge_request, "user_outcomes") },
{ label: "Total schemes after merge", value: display_value_or_placeholder(merge_request.total_schemes_label), action: merge_outcome_action(merge_request, "scheme_outcomes") }, { label: "Total schemes after merge", value: display_value_or_placeholder(merge_request.total_schemes_label), action: merge_outcome_action(merge_request, "scheme_outcomes") },
{ label: "Total logs after merge", value: merge_request.total_lettings_logs.present? || merge_request.total_sales_logs.present? ? "#{merge_request.total_lettings_logs} lettings logs<br>#{merge_request.total_sales_logs} sales logs".html_safe : display_value_or_placeholder(nil), action: { text: "View", href: "#", visually_hidden_text: "total logs after merge" } }, { label: "Total logs after merge", value: display_value_or_placeholder(merge_request.total_logs_label), action: merge_outcome_action(merge_request, "logs_outcomes") },
{ label: "Total stock owners & managing agents after merge", value: display_value_or_placeholder(merge_request.total_stock_owners_managing_agents_label), action: merge_outcome_action(merge_request, "relationship_outcomes") }, { label: "Total stock owners & managing agents after merge", value: display_value_or_placeholder(merge_request.total_stock_owners_managing_agents_label), action: merge_outcome_action(merge_request, "relationship_outcomes") },
] ]
end end

16
app/models/merge_request.rb

@ -144,4 +144,20 @@ class MergeRequest < ApplicationRecord
"#{stock_owners_count} #{'stock owner'.pluralize(stock_owners_count)}\n#{managing_agents_count} #{'managing agent'.pluralize(managing_agents_count)}" "#{stock_owners_count} #{'stock owner'.pluralize(stock_owners_count)}\n#{managing_agents_count} #{'managing agent'.pluralize(managing_agents_count)}"
end end
def total_sales_logs_after_merge
return total_sales_logs if status == STATUS[:request_merged] || status == STATUS[:processing]
(absorbing_organisation.sales_logs.pluck(:id) + merging_organisations.map { |org| org.sales_logs.pluck(:id) }.flatten).uniq.count
end
def total_lettings_logs_after_merge
return total_lettings_logs if status == STATUS[:request_merged] || status == STATUS[:processing]
(absorbing_organisation.lettings_logs.pluck(:id) + merging_organisations.map { |org| org.lettings_logs.pluck(:id) }.flatten).uniq.count
end
def total_logs_label
"#{total_lettings_logs_after_merge} lettings logs<br>#{total_sales_logs_after_merge} sales logs"
end
end end

1
config/routes.rb

@ -214,6 +214,7 @@ Rails.application.routes.draw do
get "user-outcomes" get "user-outcomes"
get "relationship-outcomes" get "relationship-outcomes"
get "scheme-outcomes" get "scheme-outcomes"
get "logs-outcomes"
get "delete-confirmation", to: "merge_requests#delete_confirmation" get "delete-confirmation", to: "merge_requests#delete_confirmation"
delete "delete", to: "merge_requests#delete" delete "delete", to: "merge_requests#delete"
patch "start-merge", to: "merge_requests#start_merge" patch "start-merge", to: "merge_requests#start_merge"

22
spec/requests/merge_requests_controller_spec.rb

@ -497,6 +497,10 @@ RSpec.describe MergeRequestsController, type: :request do
create(:merge_request_organisation, merge_request:, merging_organisation: other_organisation) create(:merge_request_organisation, merge_request:, merging_organisation: other_organisation)
create_list(:scheme, 2, owning_organisation: organisation) create_list(:scheme, 2, owning_organisation: organisation)
create_list(:scheme, 2, owning_organisation: other_organisation) create_list(:scheme, 2, owning_organisation: other_organisation)
create(:lettings_log, owning_organisation: organisation)
create(:lettings_log, owning_organisation: other_organisation)
create_list(:sales_log, 2, owning_organisation: other_organisation)
create(:sales_log, owning_organisation: organisation)
get "/merge-request/#{merge_request.id}", headers: get "/merge-request/#{merge_request.id}", headers:
end end
@ -525,15 +529,22 @@ RSpec.describe MergeRequestsController, type: :request do
context "with unmerged request" do context "with unmerged request" do
let(:merge_request) { create(:merge_request, absorbing_organisation_id: organisation.id, merge_date: Time.zone.today, existing_absorbing_organisation: true) } let(:merge_request) { create(:merge_request, absorbing_organisation_id: organisation.id, merge_date: Time.zone.today, existing_absorbing_organisation: true) }
it "shows users and schemes count and has links to view merge outcomes" do it "shows outcomes count and has links to view merge outcomes" do
expect(page).to have_link("View", href: user_outcomes_merge_request_path(merge_request))
expect(page).to have_link("View", href: scheme_outcomes_merge_request_path(merge_request)) expect(page).to have_link("View", href: scheme_outcomes_merge_request_path(merge_request))
expect(page).to have_link("View", href: relationship_outcomes_merge_request_path(merge_request))
expect(page).to have_link("View", href: logs_outcomes_merge_request_path(merge_request))
expect(page).to have_content("4 users") expect(page).to have_content("4 users")
expect(page).to have_content("4 schemes") expect(page).to have_content("4 schemes")
expect(page).to have_content("0 stock owners")
expect(page).to have_content("0 managing agents")
expect(page).to have_content("2 lettings logs")
expect(page).to have_content("3 sales logs")
end end
end end
context "with a merged request" do context "with a merged request" do
let(:merge_request) { create(:merge_request, request_merged: true, total_users: 34, total_schemes: 12, total_stock_owners: 8, total_managing_agents: 5) } let(:merge_request) { create(:merge_request, request_merged: true, total_users: 34, total_schemes: 12, total_stock_owners: 8, total_managing_agents: 5, total_lettings_logs: 4, total_sales_logs: 5) }
it "shows saved users count and doesn't have links to view merge outcomes" do it "shows saved users count and doesn't have links to view merge outcomes" do
expect(merge_request.status).to eq("request_merged") expect(merge_request.status).to eq("request_merged")
@ -553,6 +564,13 @@ RSpec.describe MergeRequestsController, type: :request do
expect(page).to have_content("8 stock owners") expect(page).to have_content("8 stock owners")
expect(page).to have_content("5 managing agents") expect(page).to have_content("5 managing agents")
end end
it "shows logs counts and doesn't have links to view merge outcomes" do
expect(merge_request.status).to eq("request_merged")
expect(page).not_to have_link("View", href: logs_outcomes_merge_request_path(merge_request))
expect(page).to have_content("4 lettings logs")
expect(page).to have_content("5 sales logs")
end
end end
context "with a processing request" do context "with a processing request" do

Loading…
Cancel
Save