From ae7015da2d0734e40b8e968cf8485cb0f014814e Mon Sep 17 00:00:00 2001 From: echarp Date: Tue, 23 Sep 2014 17:50:35 +0200 Subject: [PATCH] =?UTF-8?q?On=20ne=20peut=20plus=20saisir=20un=20=C3=A9v?= =?UTF-8?q?=C3=A9nement=20dont=20la=20date=20de=20d=C3=A9but=20est=20apr?= =?UTF-8?q?=C3=A8s=20la=20date=20de=20fin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/javascripts/events.js.coffee | 7 +++++++ app/assets/stylesheets/scaffolds.css.sass | 18 ++++++------------ app/models/event.rb | 9 +++++++++ app/views/events/_form.html.haml | 5 ++--- app/views/moderations/refuse.html.haml | 2 +- config/locales/models/en.yml | 6 ++++++ config/locales/models/fr.yml | 6 ++++++ config/locales/views/en.yml | 2 +- 8 files changed, 38 insertions(+), 17 deletions(-) diff --git a/app/assets/javascripts/events.js.coffee b/app/assets/javascripts/events.js.coffee index 495e5761..917c0590 100644 --- a/app/assets/javascripts/events.js.coffee +++ b/app/assets/javascripts/events.js.coffee @@ -30,6 +30,13 @@ $(document).ready -> elt.select2 tags: tags, separator: [' '], tokenSeparators: [' '] + $('#event_start_time').change -> + if $('#event_start_time').val() >= $('#event_end_time').val() + $('#event_end_time').val($('#event_start_time').val()) + $('#event_end_time').change -> + if $('#event_start_time').val() >= $('#event_end_time').val() + $('#event_start_time').val($('#event_end_time').val()) + $(document).on 'page:receive', -> # Delete existing tinymce editors, very important in the turbolinks context! tinymce.remove() diff --git a/app/assets/stylesheets/scaffolds.css.sass b/app/assets/stylesheets/scaffolds.css.sass index f5531d5f..965f1a82 100644 --- a/app/assets/stylesheets/scaffolds.css.sass +++ b/app/assets/stylesheets/scaffolds.css.sass @@ -5,27 +5,21 @@ div #notice color: green -.field_with_errors - padding: 2px - background-color: red - display: table - #error_explanation width: 450px border: 2px solid red - padding: 7px padding-bottom: 0 margin-bottom: 20px background-color: #f0f0f0 h2 text-align: left font-weight: bold - padding: 5px 5px 5px 15px + padding: 15px font-size: 12px - margin: -7px - margin-bottom: 0px background-color: #c00 color: #fff - ul li - font-size: 12px - list-style: square + p, ul + padding: 0 1em + li + font-size: 12px + list-style: square diff --git a/app/models/event.rb b/app/models/event.rb index b24ad50c..c5ce0883 100644 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -15,6 +15,7 @@ class Event < ActiveRecord::Base validates :contact, presence: true validates :contact, email: true validates :submitter, email: true + validate :end_after_start geocoded_by :full_address, lookup: :nominatim # after_validation :geocode, if: -> (obj) { obj.address_changed? } @@ -81,4 +82,12 @@ class Event < ActiveRecord::Base def full_address [address, city, related_region.name].compact.join ', ' end + + private + + def end_after_start + return if end_time.blank? || start_time.blank? + + errors.add :end_time, :before_start if end_time <= start_time + end end diff --git a/app/views/events/_form.html.haml b/app/views/events/_form.html.haml index b9301c4d..dcccc141 100644 --- a/app/views/events/_form.html.haml +++ b/app/views/events/_form.html.haml @@ -1,9 +1,8 @@ = form_for @event, url: (@moderation ? moderation_path(@moderation) : @event.persisted? ? event_path(@event) : nil) do |f| - if @event.errors.any? - #error_explanation.error.flash - %h2= "#{pluralize(@event.errors.count, "error")} prohibited this event from being saved:" + #flash_messages - @event.errors.full_messages.each do |msg| - %p= msg + %p.flash.alert= msg - if @event.persisted? - unless @moderation diff --git a/app/views/moderations/refuse.html.haml b/app/views/moderations/refuse.html.haml index c90777cb..c5bea679 100644 --- a/app/views/moderations/refuse.html.haml +++ b/app/views/moderations/refuse.html.haml @@ -35,5 +35,5 @@ =t '.ok' %fieldset - %legend=Event.model_name.human + %legend= Event.model_name.human = render file: '/events/show' diff --git a/config/locales/models/en.yml b/config/locales/models/en.yml index cf3fd196..59534c23 100644 --- a/config/locales/models/en.yml +++ b/config/locales/models/en.yml @@ -61,3 +61,9 @@ en: value: Value interpolations: Interpolations is_proc: Procedure? + errors: + models: + event: + attributes: + end_time: + before_start: can not be before beginning diff --git a/config/locales/models/fr.yml b/config/locales/models/fr.yml index 9f9148d7..e7f91dc1 100644 --- a/config/locales/models/fr.yml +++ b/config/locales/models/fr.yml @@ -61,3 +61,9 @@ fr: value: Valeur interpolations: Interpolations is_proc: Procédure? + errors: + models: + event: + attributes: + end_time: + before_start: ne peut être avant le début diff --git a/config/locales/views/en.yml b/config/locales/views/en.yml index d88be2e7..224918a7 100644 --- a/config/locales/views/en.yml +++ b/config/locales/views/en.yml @@ -1,5 +1,5 @@ en: - mail_prefix: "[AdL-en] " + mail_prefix: "[AdL] " show: View save: Save edit: Edit