Move calendar mapping to config directory
This commit is contained in:
parent
dfbe15cb0e
commit
c548502d84
2 changed files with 88 additions and 83 deletions
|
@ -75,92 +75,19 @@ returnes preset of ical feeds
|
|||
returns
|
||||
|
||||
{
|
||||
'US' => 'http://www.google.com/calendar/ical/en.usa%23holiday%40group.v.calendar.google.com/public/basic.ics',
|
||||
'http://www.google.com/calendar/ical/en.usa%23holiday%40group.v.calendar.google.com/public/basic.ics' => 'US',
|
||||
...
|
||||
}
|
||||
|
||||
=end
|
||||
|
||||
def self.ical_feeds
|
||||
gfeeds = {
|
||||
'Australia' => 'en.australian',
|
||||
'Austria' => 'de.austrian',
|
||||
'Argentina' => 'en.ar',
|
||||
'Bahamas' => 'en.bs',
|
||||
'Belarus' => 'en.by',
|
||||
'Brazil' => 'en.brazilian',
|
||||
'Bulgaria' => 'en.bulgarian',
|
||||
'Canada' => 'en.canadian',
|
||||
'China' => 'en.china',
|
||||
'Chile' => 'en.cl',
|
||||
'Costa Rica' => 'en.cr',
|
||||
'Colombia' => 'en.co',
|
||||
'Croatia' => 'en.croatian',
|
||||
'Cuba' => 'en.cu',
|
||||
'Cyprus' => 'de.cy',
|
||||
'Switzerland' => 'de.ch',
|
||||
'Denmark' => 'da.danish',
|
||||
'Netherlands' => 'nl.dutch',
|
||||
'Egypt' => 'en.eg',
|
||||
'Ethiopia' => 'en.et',
|
||||
'Ecuador' => 'en.ec',
|
||||
'Estonia' => 'en.ee',
|
||||
'Finland' => 'en.finnish',
|
||||
'France' => 'en.french',
|
||||
'Germany' => 'de.german',
|
||||
'Greece' => 'en.greek',
|
||||
'Ghana' => 'en.gh',
|
||||
'Hong Kong' => 'en.hong_kong',
|
||||
'Haiti' => 'en.ht',
|
||||
'Hungary' => 'en.hungarian',
|
||||
'India' => 'en.indian',
|
||||
'Indonesia' => 'en.indonesian',
|
||||
'Iran' => 'en.ir',
|
||||
'Ireland' => 'en.irish',
|
||||
'Italy' => 'it.italian',
|
||||
'Israel' => 'en.jewish',
|
||||
'Japan' => 'en.japanese',
|
||||
'Kuwait' => 'en.kw',
|
||||
'Latvia' => 'en.latvian',
|
||||
'Liechtenstein' => 'en.li',
|
||||
'Lithuania' => 'en.lithuanian',
|
||||
'Luxembourg' => 'en.lu',
|
||||
'Malaysia' => 'en.malaysia',
|
||||
'Mexico' => 'en.mexican',
|
||||
'Morocco' => 'en.ma',
|
||||
'Mauritius' => 'en.mu',
|
||||
'Moldova' => 'en.md',
|
||||
'New Zealand' => 'en.new_zealand',
|
||||
'Norway' => 'en.norwegian',
|
||||
'Philippines' => 'en.philippines',
|
||||
'Poland' => 'en.polish',
|
||||
'Portugal' => 'en.portuguese',
|
||||
'Pakistan' => 'en.pk',
|
||||
'Russia' => 'en.russian',
|
||||
'Senegal' => 'en.sn',
|
||||
'Singapore' => 'en.singapore',
|
||||
'South Africa' => 'en.sa',
|
||||
'South Korean' => 'en.south_korea',
|
||||
'Spain' => 'en.spain',
|
||||
'Slovakia' => 'en.slovak',
|
||||
'Serbia' => 'en.rs',
|
||||
'Slovenia' => 'en.slovenian',
|
||||
'Sweden' => 'en.swedish',
|
||||
'Taiwan' => 'en.taiwan',
|
||||
'Thai' => 'en.th',
|
||||
'Turkey' => 'en.turkish',
|
||||
'UK' => 'en.uk',
|
||||
'US' => 'en.usa',
|
||||
'Ukraine' => 'en.ukrainian',
|
||||
'Uruguay' => 'en.uy',
|
||||
'Vietnam' => 'en.vietnamese',
|
||||
'Venezuela' => 'en.ve',
|
||||
}
|
||||
all_feeds = {}
|
||||
gfeeds.each { |key, name|
|
||||
all_feeds["http://www.google.com/calendar/ical/#{name}%23holiday%40group.v.calendar.google.com/public/basic.ics"] = key
|
||||
}
|
||||
all_feeds
|
||||
data = YAML.load_file(Rails.root.join('config/holiday_calendars.yml'))
|
||||
url = data['url']
|
||||
|
||||
data['countries'].map do |country, domain|
|
||||
[(url % { domain: domain }), country]
|
||||
end.to_h
|
||||
end
|
||||
|
||||
=begin
|
||||
|
@ -201,7 +128,7 @@ returns
|
|||
=end
|
||||
|
||||
def self.sync
|
||||
Calendar.all.each(&:sync)
|
||||
Calendar.find_each(&:sync)
|
||||
true
|
||||
end
|
||||
|
||||
|
@ -313,7 +240,7 @@ returns
|
|||
# if changed calendar is default, set all others default to false
|
||||
def sync_default
|
||||
return if !default
|
||||
Calendar.all.each { |calendar|
|
||||
Calendar.find_each { |calendar|
|
||||
next if calendar.id == id
|
||||
next if !calendar.default
|
||||
calendar.default = false
|
||||
|
@ -331,7 +258,7 @@ returns
|
|||
|
||||
# check if sla's are refer to an existing calendar
|
||||
default_calendar = Calendar.find_by(default: true)
|
||||
Sla.all.each { |sla|
|
||||
Sla.find_each { |sla|
|
||||
if !sla.calendar_id
|
||||
sla.calendar_id = default_calendar.id
|
||||
sla.save!
|
||||
|
|
78
config/holiday_calendars.yml
Normal file
78
config/holiday_calendars.yml
Normal file
|
@ -0,0 +1,78 @@
|
|||
---
|
||||
# % character in the URL has to be escaped (% => %%)
|
||||
url: "http://www.google.com/calendar/ical/%{domain}%%23holiday%%40group.v.calendar.google.com/public/basic.ics"
|
||||
|
||||
# Mapping from country to domain
|
||||
countries:
|
||||
Australia: en.australian
|
||||
Austria: de.austrian
|
||||
Argentina: en.ar
|
||||
Bahamas: en.bs
|
||||
Belarus: en.by
|
||||
Brazil: en.brazilian
|
||||
Bulgaria: en.bulgarian
|
||||
Canada: en.canadian
|
||||
China: en.china
|
||||
Chile: en.cl
|
||||
Costa Rica: en.cr
|
||||
Colombia: en.co
|
||||
Croatia: en.croatian
|
||||
Cuba: en.cu
|
||||
Cyprus: de.cy
|
||||
Switzerland: de.ch
|
||||
Denmark: da.danish
|
||||
Netherlands: nl.dutch
|
||||
Egypt: en.eg
|
||||
Ethiopia: en.et
|
||||
Ecuador: en.ec
|
||||
Estonia: en.ee
|
||||
Finland: en.finnish
|
||||
France: en.french
|
||||
Germany: de.german
|
||||
Greece: en.greek
|
||||
Ghana: en.gh
|
||||
Hong Kong: en.hong_kong
|
||||
Haiti: en.ht
|
||||
Hungary: en.hungarian
|
||||
India: en.indian
|
||||
Indonesia: en.indonesian
|
||||
Iran: en.ir
|
||||
Ireland: en.irish
|
||||
Italy: it.italian
|
||||
Israel: en.jewish
|
||||
Japan: en.japanese
|
||||
Kuwait: en.kw
|
||||
Latvia: en.latvian
|
||||
Liechtenstein: en.li
|
||||
Lithuania: en.lithuanian
|
||||
Luxembourg: en.lu
|
||||
Malaysia: en.malaysia
|
||||
Mexico: en.mexican
|
||||
Morocco: en.ma
|
||||
Mauritius: en.mu
|
||||
Moldova: en.md
|
||||
New Zealand: en.new_zealand
|
||||
Norway: en.norwegian
|
||||
Philippines: en.philippines
|
||||
Poland: en.polish
|
||||
Portugal: en.portuguese
|
||||
Pakistan: en.pk
|
||||
Russia: en.russian
|
||||
Senegal: en.sn
|
||||
Singapore: en.singapore
|
||||
South Africa: en.sa
|
||||
South Korean: en.south_korea
|
||||
Spain: en.spain
|
||||
Slovakia: en.slovak
|
||||
Serbia: en.rs
|
||||
Slovenia: en.slovenian
|
||||
Sweden: en.swedish
|
||||
Taiwan: en.taiwan
|
||||
Thai: en.th
|
||||
Turkey: en.turkish
|
||||
UK: en.uk
|
||||
US: en.usa
|
||||
Ukraine: en.ukrainian
|
||||
Uruguay: en.uy
|
||||
Vietnam: en.vietnamese
|
||||
Venezuela: en.ve
|
Loading…
Reference in a new issue