From 1b1693b8fe8c705bb7769de11c069e85dce989c3 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Wed, 14 Sep 2016 15:03:41 -0400 Subject: [PATCH 1/1] Prioritize next upcoming event in banner rotation (closes #1284) --- app/helpers/banner_helper.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/helpers/banner_helper.rb b/app/helpers/banner_helper.rb index 98308ae12..4e888173b 100644 --- a/app/helpers/banner_helper.rb +++ b/app/helpers/banner_helper.rb @@ -7,7 +7,7 @@ module BannerHelper rescue parsed = nil end - parsed.is_a?(Date) && parsed.past? + !parsed.is_a?(Date) || (parsed.is_a?(Date) && parsed.past?) end end @@ -17,6 +17,7 @@ module BannerHelper banner_key = nil cookie_key = nil min_index = 9999 + min_date = Date.new(9999, 1, 1) banners.each do |k, v| ckey = banner_cookie(v[:id]).to_sym @@ -30,9 +31,14 @@ module BannerHelper # pick banner with mininum queue position next if index > min_index + # or if equal queue position, pick banner with soonest end date (i.e. next expiring) + end_date = Date.parse(v[:enddate]) + next if index == min_index && end_date > min_date + banner_key = k cookie_key = ckey min_index = index + min_date = end_date end unless banner_key.nil? -- 2.43.2