zeus.ugent.be/lib/helpers/events.rb

51 lines
1.2 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
2016-09-13 18:12:52 +02:00
require 'uri'
2016-08-24 01:01:17 +02:00
module EventsHelper
2019-12-06 20:37:33 +01:00
def all_events(year = nil, soon = nil)
items_ = if year
@items.find_all("/events/#{year}/*.md")
else
@items.find_all('/events/*/*.md')
end
2019-12-06 20:37:33 +01:00
items_.select { |x| x[:soon] == soon }.sort_by { |x| x[:time] }
end
2020-01-13 14:31:55 +01:00
def soon_events
2019-12-06 20:37:33 +01:00
all_events(nil, true)
2016-10-03 15:15:48 +02:00
end
def upcoming_events(year = nil)
all_events(year).reject { |x| x[:time] <= Date.today }
2016-10-03 15:15:48 +02:00
end
def past_events(year = nil)
all_events(year).reject { |x| x[:time] > Date.today }.reverse
2016-08-24 01:01:17 +02:00
end
def academic_years_event_items
2017-10-12 09:08:08 +02:00
items.find_all('/events/*').map { |e| [e[:academic_year], e] }.sort_by(&:first).reverse
end
2016-08-24 01:01:17 +02:00
def grouped_events
@items.find_all('/events/*/*/main.md')
end
2020-02-17 00:32:23 +01:00
def front_page_events
2020-02-25 00:57:37 +01:00
upcoming_events + all_events.reverse[(upcoming_events.length)..]
2020-02-17 00:32:23 +01:00
end
2016-08-24 01:01:17 +02:00
def sub_events(grouped_event)
if grouped_event.identifier =~ /main.md/
query = grouped_event.identifier.to_s.split('/')[0..-2].join('/') + '/*'
@items.find_all(query).reject do |i|
i.identifier =~ /main.md/
end
else
[]
end
end
end