Browse Source

refactor availability label

pull/1007/head
Kat 4 years ago
parent
commit
134e5788e1
  1. 22
      app/helpers/locations_helper.rb

22
app/helpers/locations_helper.rb

@ -42,21 +42,23 @@ module LocationsHelper
base_attributes base_attributes
end end
ActivePeriod = Struct.new(:from, :to)
def location_availability(location) def location_availability(location)
availability = "Active from #{location.available_from.to_formatted_s(:govuk_date)}" active_periods = [ActivePeriod.new(location.available_from, nil)]
sorted_deactivation_periods = location.location_deactivation_periods.sort_by(&:deactivation_date) sorted_deactivation_periods = location.location_deactivation_periods.sort_by(&:deactivation_date)
deactivation_open = false
sorted_deactivation_periods.each do |deactivation| sorted_deactivation_periods.each do |deactivation|
from = deactivation.deactivation_date == location.available_from ? deactivation.deactivation_date : deactivation.deactivation_date - 1.day active_periods.find {|x| x.to.nil?}.to = deactivation.deactivation_date
availability << " to #{from.to_formatted_s(:govuk_date)}\nDeactivated on #{deactivation.deactivation_date.to_formatted_s(:govuk_date)}" unless deactivation_open active_periods << ActivePeriod.new(deactivation.reactivation_date, nil)
if deactivation.reactivation_date.present? end
availability << "\nActive from #{deactivation.reactivation_date.to_formatted_s(:govuk_date)}"
deactivation_open = false availability = ""
else active_periods.each do |period|
deactivation_open = true if period.from.present?
availability << "\nActive from #{period.from.to_formatted_s(:govuk_date)}"
availability << " to #{(period.to - 1.day).to_formatted_s(:govuk_date)}\nDeactivated on #{period.to.to_formatted_s(:govuk_date)}" if period.to.present?
end end
end end
availability availability.strip
end end
end end

Loading…
Cancel
Save