From f1e33458fb53942a50b05bfdc0b77d1d02489a9f Mon Sep 17 00:00:00 2001 From: echarp Date: Sun, 21 Sep 2014 14:32:59 +0200 Subject: [PATCH] =?UTF-8?q?Indications=20suppl=C3=A9mentaires=20pour=20aid?= =?UTF-8?q?er=20=C3=A0=20remplir=20une=20adresse=20correspondant=20=C3=A0?= =?UTF-8?q?=20une=20carte=20openstreetmap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/javascripts/maps.js.coffee | 5 +++-- app/models/event.rb | 4 ++-- app/views/events/_form.html.haml | 3 +++ app/views/events/edit.html.haml | 8 ++++++-- app/views/events/new.html.haml | 8 ++++++-- app/views/events/show.html.haml | 7 +++++++ app/views/layouts/_flash.html.haml | 2 +- app/views/moderations/edit.html.haml | 8 ++++++-- config/locales/views/en.yml | 16 ++++++++++++++++ config/locales/views/fr.yml | 3 +++ db/seeds.rb | 11 +++-------- 11 files changed, 56 insertions(+), 19 deletions(-) diff --git a/app/assets/javascripts/maps.js.coffee b/app/assets/javascripts/maps.js.coffee index b194ff32..61162bfe 100644 --- a/app/assets/javascripts/maps.js.coffee +++ b/app/assets/javascripts/maps.js.coffee @@ -1,6 +1,6 @@ $(document).ready -> $('.maps #map').each -> - map = L.map('map').setView [46.5, 4], 6 + map = L.map 'map' L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', attribution: '© OpenStreetMap' @@ -14,6 +14,7 @@ $(document).ready -> layer.bindPopup feature.properties.popupContent ).addTo map + # Automatic focus to all displayed events map.fitBounds layer.getBounds() $('.events #map, .moderations #map').each -> @@ -30,7 +31,7 @@ $(document).ready -> onEachFeature: (feature, layer) -> # Does this feature have a property named popupContent? if (feature.properties && feature.properties.popupContent) - layer.bindPopup(feature.properties.popupContent) + layer.bindPopup(feature.properties.popupContent) ).addTo map marker = L.marker([coord[0], coord[1]]).addTo map diff --git a/app/models/event.rb b/app/models/event.rb index b24ad50c..7f4e9192 100644 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -17,8 +17,8 @@ class Event < ActiveRecord::Base validates :submitter, email: true geocoded_by :full_address, lookup: :nominatim - # after_validation :geocode, if: -> (obj) { obj.address_changed? } - after_validation :geocode + after_validation :geocode, if: -> (obj) { obj.address_changed? } + # after_validation :geocode scope :moderated, -> { where moderated: true } scope :unmoderated, -> { where moderated: false } diff --git a/app/views/events/_form.html.haml b/app/views/events/_form.html.haml index d03244d3..b9301c4d 100644 --- a/app/views/events/_form.html.haml +++ b/app/views/events/_form.html.haml @@ -29,6 +29,9 @@ = f.text_area :description, rows: 25, cols: 90 .field + .helper + :markdown + #{t '.address_helper'} = f.label :address = f.text_field :address, size: 70 .field diff --git a/app/views/events/edit.html.haml b/app/views/events/edit.html.haml index 0ff2eb9e..b7a5cbf0 100644 --- a/app/views/events/edit.html.haml +++ b/app/views/events/edit.html.haml @@ -8,9 +8,13 @@ =t '.warning' %fieldset - %legend=t '.preview' + %legend + %em.fa.fa-eye + =t '.preview' = render file: '/events/show' %fieldset - %legend=t '.edit' + %legend + %em.fa.fa-pencil + =t '.edit' = render '/events/form' diff --git a/app/views/events/new.html.haml b/app/views/events/new.html.haml index d38ffc51..83888379 100644 --- a/app/views/events/new.html.haml +++ b/app/views/events/new.html.haml @@ -4,7 +4,9 @@ - if @event.description %fieldset - %legend=t '.preview' + %legend + %em.fa.fa-eye + =t '.preview' = render file: '/events/show' - else @@ -16,5 +18,7 @@ #{t '.advises'} %fieldset - %legend=t '.edit' + %legend + %em.fa.fa-pencil + =t '.edit' = render 'form' diff --git a/app/views/events/show.html.haml b/app/views/events/show.html.haml index cd713067..87d37942 100644 --- a/app/views/events/show.html.haml +++ b/app/views/events/show.html.haml @@ -44,6 +44,13 @@ - if @event.latitude && @event.longitude #map(latitude="#{@event.latitude}" longitude="#{@event.longitude}") +- elsif controller.action_name != 'show' + %em.fa.fa-compress + %em + =raw t '.noMap' + %a(href="http://osm.org/search?query=#{@event.full_address}") + %img(src='http://www.openstreetmap.org/assets/osm_logo.png' alt='OSM logo' width='22px') + %h3=t '.description' .description - markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, autolink: true, tables: true) diff --git a/app/views/layouts/_flash.html.haml b/app/views/layouts/_flash.html.haml index b67eec4e..57624c41 100644 --- a/app/views/layouts/_flash.html.haml +++ b/app/views/layouts/_flash.html.haml @@ -1,3 +1,3 @@ #flash_messages - flash.each do |key, value| - .flash(class="#{key}")= value + .flash(class="#{key}")= raw value diff --git a/app/views/moderations/edit.html.haml b/app/views/moderations/edit.html.haml index dd9b026b..531264e7 100644 --- a/app/views/moderations/edit.html.haml +++ b/app/views/moderations/edit.html.haml @@ -6,9 +6,13 @@ %h3.warning=t '.warning' %fieldset - %legend=t '.preview' + %legend + %em.fa.fa-eye + =t '.preview' = render file: '/events/show' %fieldset - %legend=t '.edit' + %legend + %em.fa.fa-pencil + =t '.edit' = render '/events/form' diff --git a/config/locales/views/en.yml b/config/locales/views/en.yml index 5f15b9db..9aa94a5b 100644 --- a/config/locales/views/en.yml +++ b/config/locales/views/en.yml @@ -36,6 +36,7 @@ en: add_to_calendar: Add to my calendar at: At dateAndPlace: Date and place + noMap: No OpenStreetMap map could be associated to this address. You can test other syntaxes here description: Description infos: Informations actions: Actions @@ -48,6 +49,14 @@ en: infos: Informations new: title: Propose an event + subtitle: This page lets you submit an event in the Agenda du Libre. It will not appear automatically in the Agenda, it will first be validated by a moderator. An electronic mail will be sent to the submitter's email when the event will be moderated. + advises: "# Important recommandations +\n +\n* The event must relate to **Free Software**. The agenda is not intended for other kinds of events. +\n* Do **redact** the description, with complete sentences, rather than a telegraphic style. +\n +\nThe moderation team may modify the event's description, to complete it, make it more readable or agreable. +" preview: Previsualisation edit: Edition create: @@ -66,6 +75,13 @@ en: update: ok: Your event was updated form: + title_helper: Describe in less than 5 words your event, without the address, city or date + description_helper: Describe with as much precision as possible your event + address_helper: _Associated to the city and region, it will generate an [OpenStreetMap](http://www.openstreetmap.org) map, displayed alongside the event_ + url_helper: _**Direct** link to a page with more information on the event (detailed location, precise time, program...)_ + contact_helper: _Contact's email address, obfuscated so that spammers won't understand it_ + submitter_helper: _Submitter's email address. It will only be used by the moderators to contact the person who proposed the event, to inform her about her acceptation or rejection. If this address is absent, the contact's will be used_ + tags_helper: _Tags for the event. Tags are separated by spaces. A tag can only contain lower case letters, numbers and hyphens. Among the tags, indicate the organising association's or associations' names. Do not indicate the city or region._ save: Validate visualise: Visualise cancel: diff --git a/config/locales/views/fr.yml b/config/locales/views/fr.yml index 481f29d1..8522aec2 100644 --- a/config/locales/views/fr.yml +++ b/config/locales/views/fr.yml @@ -36,6 +36,7 @@ fr: add_to_calendar: Ajouter à mon calendrier at: À dateAndPlace: Date et lieu + noMap: Aucune carte OpenStreetMap n'a pu être associée à cette adresse. Vous pouvez tester d'autres syntaxes ici description: Description infos: Informations actions: Actions @@ -48,6 +49,7 @@ fr: infos: Informations new: title: Soumettre un événement + subtitle: Cette page permet de soumettre un événement dans l'Agenda du Libre. Celui-ci n'apparaîtra pas automatiquement dans l'Agenda, il sera tout d'abord validé par un modérateur. Un courrier électronique sera envoyé à l'adresse e-mail du soumetteur donnée ci-dessous lorsque l'événement aura été modéré. preview: Prévisualisation edit: Édition create: @@ -67,6 +69,7 @@ fr: update: ok: Votre événement a été mis à jour form: + address_helper: "*Associée à la ville et la région, elle générerera une carte [OpenStreetMap](http://www.openstreetmap.org), sera affichée aux côtés de l'événement*" save: Valider visualise: Visualiser cancel: diff --git a/db/seeds.rb b/db/seeds.rb index 7e565ef9..d3b24a36 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -38,7 +38,7 @@ Ces quelques recommandations vous permettront de proposer un événement qui ser * Donnez une description **rédigée** de l'événement, avec des phrases, plutôt qu'un style télégraphique. * Commencez la description de votre événement par une phrase reprenant les informations principales, telle que: _«L'association [Zorglub](http://www.asso-zorglub.org) organise une conférence sur le thème des **modèles économiques du Logiciel Libre** le samedi 21 mars de 18h à 20h à la médiathèque Champillion de Montpellier.»_ * Pensez que le lecteur peut ne pas connaître votre association, le logiciel dont il sera question, etc., donc donnez à chaque fois toutes les informations nécessaires. Rappelez **le principe de l'événement, le public visé, le lieu exact, la date, l'heure**, même si il est régulier (repas, rencontre régulière, etc.) et que vous avez déjà soumis un événement du même type dans l'Agenda. -* **Égayez au maximum la description** de votre événement: lien vers le site de votre association, vers le logiciel ou le langage dont il sera question, vers les organismes partenaires, etc. Pour cela, utilisez les balises HTML pour mettre en gras, en italique, faire des paragraphes et des liens. +* **Égayez au maximum la description** de votre événement: lien vers le site de votre association, vers le logiciel ou le langage dont il sera question, vers les organismes partenaires, etc. * Ne mettez pas l'intégralité des mots en majuscule, que ce soit dans le titre, le nom de la ville ou la description. * Donnez l'**adresse directe** d'un site Web donnant plus d'informations sur l'événement. Si l'adresse est la page d'accueil du site de votre organisation, veillez à ce que l'événement soit clairement visible, et que le lecteur n'ait pas à chercher trop longtemps avant de trouver l'information qu'il cherche. * La description de l'événement ne doit pas ressembler à une publicité éhontée pour votre entreprise, projet ou logiciel. Le ton d'un communiqué de presse, par exemple, ne convient pas pour l'Agenda du Libre. @@ -53,12 +53,7 @@ Si vous soumettez souvent un événement régulier dans l'Agenda du Libre, vous value: '**Décrivez en moins de 5 mots votre événement, sans y indiquer le lieu, la ville ou la date.**' }, { locale: 'fr', key: 'events.form.description_helper', - value: "**Décrivez de la manière la plus complète possible votre événement.** - -*Les balises HTML autorisées sont `

`, ``, ``, `