2018-05-07 16:47:29 -07:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
2017-11-27 20:04:54 -08:00
|
|
|
module ConferenceHelper
|
2018-03-17 18:05:06 +02:00
|
|
|
# Return true if only call_for_papers or call_for_tracks or call_for_booths is open
|
2017-12-21 19:06:36 -08:00
|
|
|
def one_call_open(*calls)
|
|
|
|
|
calls.one? { |call| call.try(:open?) }
|
2017-11-27 20:04:54 -08:00
|
|
|
end
|
2018-03-17 18:05:06 +02:00
|
|
|
# Return true if exactly two of those calls are open: call_for_papers , call_for_tracks , call_for_booths
|
|
|
|
|
|
|
|
|
|
def two_calls_open(*calls)
|
|
|
|
|
calls.count{ |call| call.try(:open?) } == 2
|
|
|
|
|
end
|
2017-11-27 20:04:54 -08:00
|
|
|
|
|
|
|
|
# URL for sponsorship emails
|
|
|
|
|
def sponsorship_mailto(conference)
|
|
|
|
|
[
|
|
|
|
|
'mailto:',
|
|
|
|
|
conference.contact.sponsor_email,
|
|
|
|
|
'?subject=',
|
|
|
|
|
url_encode(conference.short_title),
|
|
|
|
|
'%20Sponsorship'
|
|
|
|
|
].join
|
|
|
|
|
end
|
2021-02-14 22:56:45 +01:00
|
|
|
|
|
|
|
|
# adds events to icalendar for proposals in a conference
|
|
|
|
|
def icalendar_proposals(calendar, proposals, conference)
|
|
|
|
|
proposals.each do |proposal|
|
|
|
|
|
calendar.event do |e|
|
|
|
|
|
e.dtstart = proposal.time
|
|
|
|
|
e.dtend = proposal.time + proposal.event_type.length * 60
|
|
|
|
|
e.duration = "PT#{proposal.event_type.length}M"
|
|
|
|
|
e.created = proposal.created_at
|
|
|
|
|
e.last_modified = proposal.updated_at
|
|
|
|
|
e.summary = proposal.title
|
|
|
|
|
e.description = proposal.abstract
|
|
|
|
|
e.uid = proposal.guid
|
|
|
|
|
e.url = conference_program_proposal_url(conference.short_title, proposal.id)
|
|
|
|
|
v = conference.venue
|
2021-03-07 10:16:05 +01:00
|
|
|
if v
|
|
|
|
|
e.geo = v.latitude, v.longitude if v.latitude && v.longitude
|
|
|
|
|
location = ''
|
|
|
|
|
location += "#{proposal.room.name} - " if proposal.room.name
|
|
|
|
|
location += " - #{v.street}, " if v.street
|
|
|
|
|
location += "#{v.postalcode} #{v.city}, " if v.postalcode && v.city
|
|
|
|
|
location += "#{v.country_name}, " if v.country_name
|
|
|
|
|
e.location = location
|
|
|
|
|
end
|
2021-02-14 22:56:45 +01:00
|
|
|
e.categories = conference.title, "Difficulty: #{proposal.difficulty_level.title}", "Track: #{proposal.track.name}"
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
calendar
|
|
|
|
|
end
|
2017-11-27 20:04:54 -08:00
|
|
|
end
|