Browse Source

feat: remove managing agent related code so can be merged directly

pull/950/head
natdeanlewissoftwire 4 years ago
parent
commit
025bf571d3
  1. 6
      app/controllers/organisation_relationships_controller.rb
  2. 20
      app/helpers/navigation_items_helper.rb
  3. 2
      app/models/organisation.rb
  4. 8
      app/views/organisation_relationships/managing_agents.html.erb
  5. 6
      config/initializers/feature_toggle.rb
  6. 1
      config/routes.rb
  7. 4
      db/migrate/20221018143607_rename_organisations_agents_column.rb
  8. 10
      db/seeds.rb
  9. 14
      spec/models/organisation_spec.rb

6
app/controllers/organisation_relationships_controller.rb

@ -5,12 +5,6 @@ class OrganisationRelationshipsController < ApplicationController
before_action :authenticate_user! before_action :authenticate_user!
def managing_agents
# kick out if cannot access org
@managing_agents = organisation.managing_agents
end
def housing_providers def housing_providers
housing_providers = organisation.housing_providers housing_providers = organisation.housing_providers
unpaginated_filtered_housing_providers = filtered_collection(housing_providers, search_term) unpaginated_filtered_housing_providers = filtered_collection(housing_providers, search_term)

20
app/helpers/navigation_items_helper.rb

@ -2,7 +2,7 @@ module NavigationItemsHelper
NavigationItem = Struct.new(:text, :href, :current, :classes) NavigationItem = Struct.new(:text, :href, :current, :classes)
def primary_items(path, current_user) def primary_items(path, current_user)
items = if current_user.support? if current_user.support?
[ [
NavigationItem.new("Organisations", organisations_path, organisations_current?(path)), NavigationItem.new("Organisations", organisations_path, organisations_current?(path)),
NavigationItem.new("Users", "/users", users_current?(path)), NavigationItem.new("Users", "/users", users_current?(path)),
@ -28,9 +28,6 @@ module NavigationItemsHelper
NavigationItem.new("Housing providers", housing_providers_organisation_path(current_user.organisation), housing_providers_path?(path)), NavigationItem.new("Housing providers", housing_providers_organisation_path(current_user.organisation), housing_providers_path?(path)),
].compact ].compact
end end
# figure out correct rules
items << managing_agents_item(path)
end end
def secondary_items(path, current_organisation_id) def secondary_items(path, current_organisation_id)
@ -106,19 +103,4 @@ private
def housing_providers_path?(path) def housing_providers_path?(path)
path.include?("/housing-providers") path.include?("/housing-providers")
end end
def managing_agents_path?(path)
path.include?("/managing-agents")
end
def managing_agents_item(path)
return unless FeatureToggle.managing_agents_enabled?
return unless current_user.organisation.holds_own_stock?
NavigationItem.new(
"Managing agents",
"/organisations/#{current_user.organisation.id}/managing-agents",
managing_agents_path?(path),
)
end
end end

2
app/models/organisation.rb

@ -13,8 +13,6 @@ class Organisation < ApplicationRecord
has_many :child_organisation_relationships, foreign_key: :parent_organisation_id, class_name: "OrganisationRelationship" has_many :child_organisation_relationships, foreign_key: :parent_organisation_id, class_name: "OrganisationRelationship"
has_many :child_organisations, through: :child_organisation_relationships has_many :child_organisations, through: :child_organisation_relationships
has_many :managing_agent_relationships, -> { where(relationship_type: OrganisationRelationship::MANAGING) }, foreign_key: :child_organisation_id, class_name: "OrganisationRelationship"
has_many :managing_agents, through: :managing_agent_relationships, source: :parent_organisation
has_many :housing_provider_relationships, -> { where(relationship_type: OrganisationRelationship::OWNING) }, foreign_key: :child_organisation_id, class_name: "OrganisationRelationship" has_many :housing_provider_relationships, -> { where(relationship_type: OrganisationRelationship::OWNING) }, foreign_key: :child_organisation_id, class_name: "OrganisationRelationship"
has_many :housing_providers, through: :housing_provider_relationships, source: :parent_organisation has_many :housing_providers, through: :housing_provider_relationships, source: :parent_organisation

8
app/views/organisation_relationships/managing_agents.html.erb

@ -1,8 +0,0 @@
<% title = format_title(nil, current_user.support? ? "About this organisation" : "Your managing agents", current_user, nil, nil, @organisation.name) %>
<% content_for :title, title %>
<%= render partial: "organisations/headings", locals: { main: "Your managing agents", sub: nil } %>
<% @managing_agents.each do |managing_agent|%>
<%= managing_agent.name %>
<% end %>

6
config/initializers/feature_toggle.rb

@ -8,10 +8,4 @@ class FeatureToggle
false false
end end
def self.managing_agents_enabled?
return true unless Rails.env.production?
false
end
end end

1
config/routes.rb

@ -79,7 +79,6 @@ Rails.application.routes.draw do
post "logs/email-csv", to: "organisations#email_csv" post "logs/email-csv", to: "organisations#email_csv"
get "logs/csv-confirmation", to: "lettings_logs#csv_confirmation" get "logs/csv-confirmation", to: "lettings_logs#csv_confirmation"
get "schemes", to: "organisations#schemes" get "schemes", to: "organisations#schemes"
get "managing-agents", to: "organisation_relationships#managing_agents"
get "housing-providers", to: "organisation_relationships#housing_providers" get "housing-providers", to: "organisation_relationships#housing_providers"
end end
end end

4
db/migrate/20221018143607_rename_organisations_agents_column.rb

@ -1,4 +0,0 @@
class RenameOrganisationsAgentsColumn < ActiveRecord::Migration[7.0]
def change
end
end

10
db/seeds.rb

@ -8,8 +8,8 @@
# rubocop:disable Rails/Output # rubocop:disable Rails/Output
unless Rails.env.test? unless Rails.env.test?
managing_agent = Organisation.find_or_create_by!( housing_provider = Organisation.find_or_create_by!(
name: "Managing Agent", name: "Housing Provider",
address_line1: "2 Marsham Street", address_line1: "2 Marsham Street",
address_line2: "London", address_line2: "London",
postcode: "SW1P 4DF", postcode: "SW1P 4DF",
@ -24,7 +24,7 @@ unless Rails.env.test?
address_line1: "2 Marsham Street", address_line1: "2 Marsham Street",
address_line2: "London", address_line2: "London",
postcode: "SW1P 4DF", postcode: "SW1P 4DF",
holds_own_stock: true, holds_own_stock: false,
other_stock_owners: "None", other_stock_owners: "None",
managing_agents_label: "None", managing_agents_label: "None",
provider_type: "LA", provider_type: "LA",
@ -39,8 +39,8 @@ unless Rails.env.test?
OrganisationRelationship.create!( OrganisationRelationship.create!(
child_organisation: org, child_organisation: org,
parent_organisation: managing_agent, parent_organisation: housing_provider,
relationship_type: OrganisationRelationship::MANAGING, relationship_type: OrganisationRelationship::OWNING,
) )
if Rails.env.development? && User.count.zero? if Rails.env.development? && User.count.zero?

14
spec/models/organisation_spec.rb

@ -34,14 +34,14 @@ RSpec.describe Organisation, type: :model do
before do before do
FactoryBot.create( FactoryBot.create(
:organisation_relationship, :organisation_relationship,
:managing, :owning,
child_organisation:, child_organisation:,
parent_organisation: organisation, parent_organisation: organisation,
) )
FactoryBot.create( FactoryBot.create(
:organisation_relationship, :organisation_relationship,
:managing, :owning,
child_organisation: grandchild_organisation, child_organisation: grandchild_organisation,
parent_organisation: child_organisation, parent_organisation: child_organisation,
) )
@ -58,7 +58,7 @@ RSpec.describe Organisation, type: :model do
end end
end end
context "with managing association", :aggregate_failures do context "with owning association", :aggregate_failures do
let!(:child_organisation) { FactoryBot.create(:organisation, name: "DLUHC Child") } let!(:child_organisation) { FactoryBot.create(:organisation, name: "DLUHC Child") }
let!(:grandchild_organisation) { FactoryBot.create(:organisation, name: "DLUHC Grandchild") } let!(:grandchild_organisation) { FactoryBot.create(:organisation, name: "DLUHC Grandchild") }
@ -79,15 +79,15 @@ RSpec.describe Organisation, type: :model do
FactoryBot.create( FactoryBot.create(
:organisation_relationship, :organisation_relationship,
:managing, :owning,
child_organisation: grandchild_organisation, child_organisation: grandchild_organisation,
parent_organisation: child_organisation, parent_organisation: child_organisation,
) )
end end
it "has correct managing_agents" do it "has correct housing_providers" do
expect(child_organisation.managing_agents).to eq([organisation]) expect(child_organisation.housing_providers).to eq([organisation])
expect(grandchild_organisation.managing_agents).to eq([child_organisation]) expect(grandchild_organisation.housing_providers).to eq([child_organisation])
end end
end end

Loading…
Cancel
Save