Les calendriers au format ical sont en place
This commit is contained in:
parent
db0d28892c
commit
60dfb82c00
2
Gemfile
2
Gemfile
@ -58,4 +58,6 @@ group :development do
|
|||||||
gem 'guard-livereload'
|
gem 'guard-livereload'
|
||||||
gem 'guard-bundler'
|
gem 'guard-bundler'
|
||||||
gem 'guard-minitest'
|
gem 'guard-minitest'
|
||||||
|
gem 'quiet_assets'
|
||||||
|
gem 'webrick', '>= 1.3.1'
|
||||||
end
|
end
|
||||||
|
@ -90,7 +90,7 @@ GEM
|
|||||||
eventmachine (1.0.3)
|
eventmachine (1.0.3)
|
||||||
execjs (2.0.2)
|
execjs (2.0.2)
|
||||||
ffi (1.9.3)
|
ffi (1.9.3)
|
||||||
font-awesome-rails (4.0.3.0)
|
font-awesome-rails (4.0.3.1)
|
||||||
railties (>= 3.2, < 5.0)
|
railties (>= 3.2, < 5.0)
|
||||||
formatador (0.2.4)
|
formatador (0.2.4)
|
||||||
formtastic (2.3.0.rc2)
|
formtastic (2.3.0.rc2)
|
||||||
@ -128,7 +128,7 @@ GEM
|
|||||||
inherited_resources (1.4.1)
|
inherited_resources (1.4.1)
|
||||||
has_scope (~> 0.6.0.rc)
|
has_scope (~> 0.6.0.rc)
|
||||||
responders (~> 1.0.0.rc)
|
responders (~> 1.0.0.rc)
|
||||||
jbuilder (2.0.1)
|
jbuilder (2.0.2)
|
||||||
activesupport (>= 3.0.0)
|
activesupport (>= 3.0.0)
|
||||||
multi_json (>= 1.2.0)
|
multi_json (>= 1.2.0)
|
||||||
jquery-rails (3.0.4)
|
jquery-rails (3.0.4)
|
||||||
@ -164,6 +164,8 @@ GEM
|
|||||||
coderay (~> 1.0)
|
coderay (~> 1.0)
|
||||||
method_source (~> 0.8)
|
method_source (~> 0.8)
|
||||||
slop (~> 3.4)
|
slop (~> 3.4)
|
||||||
|
quiet_assets (1.0.2)
|
||||||
|
railties (>= 3.1, < 5.0)
|
||||||
rack (1.5.2)
|
rack (1.5.2)
|
||||||
rack-test (0.6.2)
|
rack-test (0.6.2)
|
||||||
rack (>= 1.0)
|
rack (>= 1.0)
|
||||||
@ -230,6 +232,7 @@ GEM
|
|||||||
json (>= 1.8.0)
|
json (>= 1.8.0)
|
||||||
warden (1.2.3)
|
warden (1.2.3)
|
||||||
rack (>= 1.0)
|
rack (>= 1.0)
|
||||||
|
webrick (1.3.1)
|
||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
ruby
|
ruby
|
||||||
@ -249,6 +252,7 @@ DEPENDENCIES
|
|||||||
jquery-rails
|
jquery-rails
|
||||||
jquery-turbolinks
|
jquery-turbolinks
|
||||||
mysql2
|
mysql2
|
||||||
|
quiet_assets
|
||||||
rails
|
rails
|
||||||
rails-i18n
|
rails-i18n
|
||||||
redcarpet
|
redcarpet
|
||||||
@ -257,3 +261,4 @@ DEPENDENCIES
|
|||||||
simple_calendar!
|
simple_calendar!
|
||||||
turbolinks
|
turbolinks
|
||||||
uglifier
|
uglifier
|
||||||
|
webrick (>= 1.3.1)
|
||||||
|
@ -22,6 +22,10 @@ class EventsController < InheritedResources::Base
|
|||||||
@events = @events.future
|
@events = @events.future
|
||||||
@events = @events.limit params[:daylimit] if params[:daylimit]
|
@events = @events.limit params[:daylimit] if params[:daylimit]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
format.ics {
|
||||||
|
@events = @events.where('start_time > ?', 360.days.ago).order :id
|
||||||
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
class RegionsController < InheritedResources::Base
|
class RegionsController < InheritedResources::Base
|
||||||
def index
|
def icallist
|
||||||
@regions = Region.all
|
@regions = Region.all
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
class Region < ActiveRecord::Base
|
class Region < ActiveRecord::Base
|
||||||
has_many :lugs, foreign_key: :region
|
has_many :lugs, foreign_key: :region
|
||||||
|
|
||||||
default_scope { order(:name) }
|
default_scope { order :name }
|
||||||
end
|
end
|
||||||
|
19
app/views/events/index.ics.erb
Normal file
19
app/views/events/index.ics.erb
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
BEGIN:VCALENDAR
|
||||||
|
VERSION:2.0
|
||||||
|
PRODID:-//AgendaDuLibre.org
|
||||||
|
X-WR-CALNAME:Agenda du Libre
|
||||||
|
X-WR-TIMEZONE:Europe/Paris
|
||||||
|
CALSCALE:GREGORIAN
|
||||||
|
X-WR-CALDESC:L'Agenda des évènements autour du Libre
|
||||||
|
<% @events.each do |event| %>
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:<%= event.start_time.strftime '%Y%m%dT%H%M%S' %>
|
||||||
|
DTEND;TZID=Europe/Paris:<%= event.end_time.strftime '%Y%m%dT%H%M%S' %>
|
||||||
|
UID:<%= event.id %>@agendadulibre.org
|
||||||
|
SUMMARY:<%= event.title %>
|
||||||
|
URL:<%= event_url event %>
|
||||||
|
DESCRIPTION:Un évènement de l'Agenda du Libre
|
||||||
|
LOCATION:<%= event.city.gsub('-', ' ') %>
|
||||||
|
END:VEVENT
|
||||||
|
<% end %>
|
||||||
|
END:VCALENDAR
|
@ -60,7 +60,7 @@
|
|||||||
%nav
|
%nav
|
||||||
= link_to t('.propose'), new_event_path
|
= link_to t('.propose'), new_event_path
|
||||||
= link_to t('.rss'), regions_url
|
= link_to t('.rss'), regions_url
|
||||||
= link_to t('.ical'), users_url
|
= link_to t('.ical'), icallist_regions_url
|
||||||
= link_to t('.map'), users_url
|
= link_to t('.map'), users_url
|
||||||
= link_to t('.tags'), users_url
|
= link_to t('.tags'), users_url
|
||||||
= link_to t('.infos'), users_url
|
= link_to t('.infos'), users_url
|
||||||
|
40
app/views/regions/icallist.html.haml
Normal file
40
app/views/regions/icallist.html.haml
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
%h2=t '.title'
|
||||||
|
|
||||||
|
:markdown
|
||||||
|
Chaque calendrier iCal liste les évènements pour les 30 jours à venir dans une région donnée. En vous inscrivant au calendrier de votre région, vous verrez apparaître les évènements de votre région à portée locale, ainsi que tous les évènements à portée nationale, comme les RMLL. Le lien *webcal* permet d'ajouter un calendrier dans votre logiciel favori, tandis que le lien *google* permet d'ajouter un calendrier à votre agenda Google.
|
||||||
|
|
||||||
|
%table.list
|
||||||
|
%tr
|
||||||
|
-#http://www.google.com/calendar/render?cid=http://www.agendadulibre.org/ical.php?region%3Dall
|
||||||
|
%td=t :all, scope: 'activerecord.attributes.region.name_values'
|
||||||
|
%td= link_to :webcal, events_path(protocol: :webcal, format: :ics, region: :all, only_path: false)
|
||||||
|
%td= link_to :google, "http://www.google.com/calendar/render?cid=#{events_url(format: :ics, region: :all)}"
|
||||||
|
|
||||||
|
- @regions.each do |region|
|
||||||
|
%tr
|
||||||
|
%td= region.name
|
||||||
|
%td= link_to :webcal, events_path(protocol: :webcal, format: :ics, region: region.id, only_path: false)
|
||||||
|
%td= link_to :google, "http://www.google.com/calendar/render?cid=#{events_url(format: :ics, region: region.id)}"
|
||||||
|
|
||||||
|
:markdown
|
||||||
|
Ce calendrier a été testé avec succès avec:
|
||||||
|
|
||||||
|
* [Mozilla Sunbird](http://www.mozilla.org/projects/calendar/sunbird.html), l'application Calendrier indépendante de Mozilla.
|
||||||
|
Pour ajouter l'Agenda du Libre, allez dans *File* puis *Subscribe to Remote Calendars*. Indiquer qu'il s'agit d'un calendrier distant en sélectionnant *Remote*. À l'étape suivante, sélectionnez *WebDAV*, et indiquer l'URL du calendrier que vous trouverez ci-dessous. À l'étape qui suit, donner un nom à ce calendrier, puis validez.
|
||||||
|
* L'[extension Calendar](http://www.mozilla.org/projects/calendar/download.html) pour Mozilla Firefox.
|
||||||
|
Pour ajouter l'Agenda du Libre, allez dans *Fichier* puis *S'abonner à un calendrier distant*. Dans la fenêtre qui s'ouvre, entrez un nom pour le calendrier, ainsi que l'URL de celui-ci, disponible dans la liste ci-dessus.
|
||||||
|
* [KOrganizer](http://korganizer.kde.org/), le calendrier de KDE
|
||||||
|
* [Evolution](http://www.gnome.org/projects/evolution/) (versions 2.0.4 et 2.2.x).
|
||||||
|
* vCalendar, [un plugin](http://claws.sylpheed.org/plugins.php) pour [Sylpheed Claws](http://claws.sylpheed.org/). Chargez le module par le menu Configuration/Modules, puis avec un clic droit sur le dossier vCalender, choisissez "S'inscrire à un Webcal".
|
||||||
|
* [GNU Emacs](http://www.gnu.org/software/emacs/emacs.html), à l'aide de l'extension [icalendar.el](http://de.geocities.com/ulf_jasper/lisp/icalendar.el.txt)
|
||||||
|
|
||||||
|
Les applications suivantes peuvent sans doute fonctionner:
|
||||||
|
|
||||||
|
* Une [extension Calendar](http://www.mozilla.org/projects/calendar/download.html) pour Thunderbird.
|
||||||
|
|
||||||
|
N'hésitez pas à [nous faire part](devel AT agendadulibre.org) de vos succès et de vos échecs avec d'autres logiciels.
|
||||||
|
|
||||||
|
Quelques fonctionnalités additionnelles des calendriers iCal :
|
||||||
|
|
||||||
|
* Vous pouvez limiter les évènements d'un calendrier iCal à un certain tag, en passant le paramètre `tag`. Cela permet par exemple de récupérer un calendrier iCal des évènements organisés uniquement par votre association, à partir du moment où vous pensez à marquer tous vos évènements avec un tag précis.
|
||||||
|
Exemple: `http://www.agendadulibre.org/ical.php?tag=toulibre`.
|
@ -22,5 +22,7 @@ module AgendaDuLibreRails
|
|||||||
config.i18n.default_locale = :fr
|
config.i18n.default_locale = :fr
|
||||||
|
|
||||||
I18n.config.enforce_available_locales = true
|
I18n.config.enforce_available_locales = true
|
||||||
|
|
||||||
|
#config.quiet_assets = false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -108,3 +108,5 @@ fr:
|
|||||||
regions:
|
regions:
|
||||||
index:
|
index:
|
||||||
title: Liste des flux RSS
|
title: Liste des flux RSS
|
||||||
|
icallist:
|
||||||
|
title: Liste des calendriers iCal
|
||||||
|
@ -1,8 +1,11 @@
|
|||||||
AgendaDuLibreRails::Application.routes.draw do
|
AgendaDuLibreRails::Application.routes.draw do
|
||||||
resources :regions, only: :index
|
resources :regions, only: [ :index ] do
|
||||||
|
get 'icallist', on: :collection
|
||||||
|
end
|
||||||
resources :events
|
resources :events
|
||||||
resources :users
|
resources :users
|
||||||
|
|
||||||
|
get 'ical.php' => 'events#index', format: :ics
|
||||||
get ':format.php' => 'events#index'
|
get ':format.php' => 'events#index'
|
||||||
|
|
||||||
devise_for :admin_users, ActiveAdmin::Devise.config
|
devise_for :admin_users, ActiveAdmin::Devise.config
|
||||||
|
Loading…
Reference in New Issue
Block a user