diff --git a/app/helpers/organisation_helper.rb b/app/helpers/organisation_helper.rb index 68fa98242..9f95c339d 100644 --- a/app/helpers/organisation_helper.rb +++ b/app/helpers/organisation_helper.rb @@ -8,4 +8,18 @@ module OrganisationHelper current_organisation.name end end + + def display_organisation_attributes(organisation) + [ + { name: "Name", value: organisation.name, editable: true }, + { name: "Organisation ID", value: "ORG#{organisation.id}", editable: false }, + { name: "Address", value: organisation.address_string, editable: true }, + { name: "Telephone number", value: organisation.phone, editable: true }, + { name: "Type of provider", value: organisation.display_provider_type, editable: false }, + { name: "Registration number", value: organisation.housing_registration_no || "", editable: false }, + { name: "Rent periods", value: organisation.rent_period_labels, editable: false, format: :bullet }, + { name: "Owns housing stock", value: organisation.holds_own_stock ? "Yes" : "No", editable: false }, + { name: "Status", value: status_tag(organisation.status), editable: false }, + ] + end end diff --git a/app/helpers/tag_helper.rb b/app/helpers/tag_helper.rb index 5a7498b78..9a86a04fe 100644 --- a/app/helpers/tag_helper.rb +++ b/app/helpers/tag_helper.rb @@ -13,6 +13,7 @@ module TagHelper reactivating_soon: "Reactivating soon", deactivated: "Deactivated", deleted: "Deleted", + merged: "Merged", }.freeze COLOUR = { @@ -27,6 +28,7 @@ module TagHelper reactivating_soon: "blue", deactivated: "grey", deleted: "red", + merged: "green", }.freeze def status_tag(status, classes = []) diff --git a/app/models/organisation.rb b/app/models/organisation.rb index 91c091720..c050fef06 100644 --- a/app/models/organisation.rb +++ b/app/models/organisation.rb @@ -102,19 +102,6 @@ class Organisation < ApplicationRecord DISPLAY_PROVIDER_TYPE[provider_type.to_sym] end - def display_organisation_attributes - [ - { name: "Name", value: name, editable: true }, - { name: "Organisation ID", value: "ORG#{id}", editable: false }, - { name: "Address", value: address_string, editable: true }, - { name: "Telephone number", value: phone, editable: true }, - { name: "Type of provider", value: display_provider_type, editable: false }, - { name: "Registration number", value: housing_registration_no || "", editable: false }, - { name: "Rent periods", value: rent_period_labels, editable: false, format: :bullet }, - { name: "Owns housing stock", value: holds_own_stock ? "Yes" : "No", editable: false }, - ] - end - def has_managing_agents? managing_agents.count.positive? end @@ -122,4 +109,14 @@ class Organisation < ApplicationRecord def has_stock_owners? stock_owners.count.positive? end + + def status + @status ||= status_at(Time.zone.now) + end + + def status_at(date) + return :merged if merge_date.present? && merge_date < date + + :active + end end diff --git a/app/views/organisations/_organisation_list.html.erb b/app/views/organisations/_organisation_list.html.erb index 389dff6b7..6a68433be 100644 --- a/app/views/organisations/_organisation_list.html.erb +++ b/app/views/organisations/_organisation_list.html.erb @@ -14,6 +14,9 @@ <% row.cell(header: true, text: "Type", html_attributes: { scope: "col", }) %> + <% row.cell(header: true, text: "Status", html_attributes: { + scope: "col", + }) %> <% end %> <% end %> <% @organisations.each do |organisation| %> @@ -26,6 +29,7 @@ <% end %> <% row.cell(text: organisation.housing_registration_no) %> <% row.cell(text: organisation.display_provider_type) %> + <% row.cell(text: status_tag(organisation.status)) %> <% end %> <% end %> <% end %> diff --git a/app/views/organisations/show.html.erb b/app/views/organisations/show.html.erb index 07af1970a..763aed4ac 100644 --- a/app/views/organisations/show.html.erb +++ b/app/views/organisations/show.html.erb @@ -14,7 +14,7 @@