diff --git a/app/models/location.rb b/app/models/location.rb index 48689ef71..6050a05cf 100644 --- a/app/models/location.rb +++ b/app/models/location.rb @@ -23,6 +23,7 @@ class Location < ApplicationRecord scope :search_by, ->(param) { search_by_name(param).or(search_by_postcode(param)) } scope :started, -> { where("startdate <= ?", Time.zone.today).or(where(startdate: nil)) } scope :active, -> { where(confirmed: true).and(started) } + scope :confirmed, -> { where(confirmed: true) } LOCAL_AUTHORITIES = LocalAuthority.all.map { |la| [la.name, la.code] }.to_h diff --git a/app/models/scheme.rb b/app/models/scheme.rb index 3a718c25a..d348f73e1 100644 --- a/app/models/scheme.rb +++ b/app/models/scheme.rb @@ -235,7 +235,7 @@ class Scheme < ApplicationRecord end def status_at(date) - return :incomplete unless confirmed && has_completed_locations? + return :incomplete unless confirmed && has_confirmed_locations? 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 return :reactivating_soon if recent_deactivation&.reactivation_date.present? && date < recent_deactivation.reactivation_date @@ -255,13 +255,13 @@ class Scheme < ApplicationRecord status == :deactivated end - def has_completed_locations? - completed_locations_count.positive? + def has_confirmed_locations? + confirmed_locations_count.positive? end private - def completed_locations_count - locations.count { |location| location.status != :incomplete } + def confirmed_locations_count + locations.confirmed.size end end