diff --git a/app/models/location.rb b/app/models/location.rb index de90a99c7..850adfb05 100644 --- a/app/models/location.rb +++ b/app/models/location.rb @@ -383,7 +383,11 @@ class Location < ApplicationRecord location_deactivation_periods.order("created_at").last end - def status(date = Time.zone.now) + def status + @status ||= status_at(Time.zone.now) + end + + def status_at(date) return :incomplete unless confirmed return :deactivated if open_deactivation&.deactivation_date.present? && date >= open_deactivation.deactivation_date return :deactivating_soon if open_deactivation&.deactivation_date.present? && date < open_deactivation.deactivation_date @@ -392,7 +396,6 @@ class Location < ApplicationRecord :active end - alias_method :status_at, :status def active? status == :active diff --git a/app/models/scheme.rb b/app/models/scheme.rb index 285710361..5b45282a1 100644 --- a/app/models/scheme.rb +++ b/app/models/scheme.rb @@ -224,7 +224,11 @@ class Scheme < ApplicationRecord scheme_deactivation_periods.order("created_at").last end - def status(date = Time.zone.now) + def status + @status ||= status_at(Time.zone.now) + end + + def status_at(date) return :incomplete unless confirmed return :deactivated if open_deactivation&.deactivation_date.present? && date >= open_deactivation.deactivation_date return :deactivating_soon if open_deactivation&.deactivation_date.present? && date < open_deactivation.deactivation_date @@ -232,7 +236,6 @@ class Scheme < ApplicationRecord :active end - alias_method :status_at, :status def active? status == :active