|
|
|
@ -166,9 +166,7 @@ class Scheme < ApplicationRecord |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
def appended_text |
|
|
|
def appended_text |
|
|
|
active_count = locations.count { |location| %i[active deactivating_soon].include?(location.status) } |
|
|
|
"#{completed_locations_count} completed #{'location'.pluralize(completed_locations_count)}, #{incomplete_locations_count} incomplete #{'location'.pluralize(incomplete_locations_count)}" |
|
|
|
inactive_count = locations.count { |location| !%i[active deactivating_soon].include?(location.status) } |
|
|
|
|
|
|
|
"#{active_count} active #{'location'.pluralize(active_count)}, #{inactive_count} inactive #{'location'.pluralize(inactive_count)}" |
|
|
|
|
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
def hint |
|
|
|
def hint |
|
|
|
@ -237,7 +235,7 @@ class Scheme < ApplicationRecord |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
def status_at(date) |
|
|
|
def status_at(date) |
|
|
|
return :incomplete unless confirmed && has_active_locations? |
|
|
|
return :incomplete unless confirmed && has_completed_locations? |
|
|
|
return :deactivated if open_deactivation&.deactivation_date.present? && date >= open_deactivation.deactivation_date |
|
|
|
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 :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 |
|
|
|
return :reactivating_soon if recent_deactivation&.reactivation_date.present? && date < recent_deactivation.reactivation_date |
|
|
|
@ -257,7 +255,17 @@ class Scheme < ApplicationRecord |
|
|
|
status == :deactivated |
|
|
|
status == :deactivated |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
def has_active_locations? |
|
|
|
def has_completed_locations? |
|
|
|
locations.count { |location| %i[active deactivating_soon].include?(location.status) }.positive? |
|
|
|
completed_locations_count.positive? |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def completed_locations_count |
|
|
|
|
|
|
|
locations.count { |location| location.status != :incomplete } |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def incomplete_locations_count |
|
|
|
|
|
|
|
locations.count { |location| location.status == :incomplete } |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
|