diff --git a/app/models/event.rb b/app/models/event.rb index 79c0184..864f627 100644 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -1,13 +1,5 @@ class Event < Article - def self.description - _('A calendar event') - end - - def self.short_description - _('Event') - end - acts_as_having_settings :field => :body settings_items :description, :type => :string @@ -17,4 +9,23 @@ class Event < Article settings_items :end_date, :type => :date validates_presence_of :title, :start_date + + validates_each :start_date do |event,field,value| + if event.end_date && event.start_date && event.start_date > event.end_date + event.errors.add(:start_date, _('%{fn} cannot come before end date.')) + end + end + + def self.description + _('A calendar event') + end + + def self.short_description + _('Event') + end + + def icon_name + 'event' + end + end diff --git a/test/unit/event_test.rb b/test/unit/event_test.rb index e48762e..c50bee8 100644 --- a/test/unit/event_test.rb +++ b/test/unit/event_test.rb @@ -56,4 +56,19 @@ class EventTest < ActiveSupport::TestCase e = Event.create!(:name => 'bli', :start_date => Date.new(2008, 06, 06), :profile => profile, :description => 'my surprisingly long description about my freaking nice event') assert_includes Event.find_by_contents('surprisingly'), e end + + should 'use its own icon' do + assert_equal 'event', Event.new.icon_name + end + + should 'not allow end date before start date' do + e = Event.new(:start_date => Date.new(2008, 01, 01), :end_date => Date.new(2007,01,01)) + e.valid? + assert e.errors.invalid?(:start_date) + + e.end_date = Date.new(2008,01,05) + e.valid? + assert !e.errors.invalid?(:start_date) + end + end -- libgit2 0.21.2