== Agenda du libre Ceci est une application permettant de lister des évènements sur un calendier, évènements proposés par tout un chacun mais nécessitant une modération avant d'être affichés. Cette application est disponible sous la license AGPL version 3 ou supérieure. Elle est hébergée ici: https://git.framasoft.org/agenda-libre/agenda-libre-ruby et visible ici: http://agendadulibre.org La technologie repose sur "Ruby on Rails", version 4 ou supérieure. Il existe aussi des projets équivalents https://git.framasoft.org/agenda-libre/agenda-libre-php https://bitbucket.org/mlhamel/agendadulibre === Prérequis Exemple d'installation pour Debian: {{{ ~ $ apt-get install sqlite3 libsqlite3-dev build-essential git ~ $ apt-get install ruby ruby-dev bundler }}} === Code source Pour installer l'Agenda du libre, vous devrez récupérer le code source à l'aide de "git", puis installer les dépendances avec "bundler" (bundler est packagé sous debian, mais peut aussi s'installer depuis http://bundler.io, une version récente de préférence). Par exemple: {{{ ~ $ git clone git@git.framasoft.org:agenda-libre/agenda-libre-ruby.git ~ $ cd agenda-du-libre ~ $ bundle install --path vendor/bundle --without production }}} === Base de données La base de données peut être "sqlite3", "postgresql" ou "mysql". Par défaut sqlite3 est configurée, mais vous pouvez la modifier dans le fichier `config/database.yml`. Sous un environnement comme debian, il faut aussi les paquets "build-essential" et "libsqlite3-dev" (ou "libmysqlclient-dev"). Mettez en place le schéma comme ceci: {{{ ~ $ bundle exec rake db:setup }}} === Lancement Puis lancez rails (avec tests et vérifications de sécurité): {{{ ~ $ bundle exec guard }}} Vous pouvez finalement accéder à l'agenda dans un navigateur à l'URL suivante: http://localhost:3000 Votre premier modérateur admin est identifié par "admin@example.com", son mot de passe étant "password". === Aide mémoire Commande à utiliser en console rails pour créer plusieurs événements: {{{ w = 0 Event.create(elt.attributes.merge( { start_time: elt.start_time+w.week, end_time: elt.end_time+w.week } )).start_time; w = 1 }}} Commande à utiliser pour précompiler les assets avant leur déploiement dans un environnement de production {{{ bundle exec rake assets:precompile RAILS_ENV=assets }}} === Mise à jour Pour mettre à jour l'agenda du libre, il faut d'abord aller chercher la version de master la plus récente sur le git upstream (https://git.framasoft.org/agenda-libre/agenda-libre-ruby). Une fois cela fait, il faut y ré-appliquer les changements qui auraient été effectués pour l'environnement donné et quelques conflits sont à prévoir. Le plus courant: {{{ db/schema.rb: Ignorer les conflits. Prendre la version courante. Ce fichier est mis à jour à chaque migration et représente l'état actuel de la base de données sur le serveur courant. Il est recommandé de versioner de fichier, mais à moins d'avoir exactement le même type de base de données que les développeurs upstream, il va créer des conflits. Seule la dernière version du fichier peut être conservée sur la branche de travail. }}} Lors des mises à jour de l'agenda du libre à une version plus récente, les commandes suivantes sont nécessaires: {{{ ~ $ bundle install --path vendor/bundle --without production ~ $ bundle exec rake db:migrate }}} Puis redémarrer avec: {{{ ~ $ bundle exec rails s }}} === Discussions https://kiwiirc.com/client/irc.freenode.net/agendadulibre {{{ ° ° ° \ | / \ | / \ | / | | | ___ ___ ___ \ / \ / \ / . \_|_/ . \ | / }}}