2017-09-05 22:23:34 +03:00
class RegistrationPeriod < ApplicationRecord
2016-02-21 23:38:17 +02:00
belongs_to :conference
2016-05-24 23:54:46 +05:30
has_paper_trail ignore : [ :updated_at ] , meta : { conference_id : :conference_id }
2014-08-18 14:33:02 +02:00
validates :start_date , :end_date , presence : true
2016-02-21 23:38:17 +02:00
validate :before_end_of_conference
validate :start_date_before_end_date
2014-08-18 14:33:02 +02:00
2016-02-21 23:38:17 +02:00
private
def before_end_of_conference
2017-04-06 23:19:58 -04:00
errors
2018-02-23 00:41:19 -08:00
. add ( :start_date , " can't be after the conference end date ( #{ conference . end_date } ) " ) if conference & . end_date && start_date && ( start_date > conference . end_date )
2016-02-21 23:38:17 +02:00
2017-04-06 23:19:58 -04:00
errors
2018-02-23 00:41:19 -08:00
. add ( :end_date , " can't be after the conference end date ( #{ conference . end_date } ) " ) if conference & . end_date && end_date && ( end_date > conference . end_date )
2016-02-21 23:38:17 +02:00
end
def start_date_before_end_date
2017-04-06 23:19:58 -04:00
errors
. add ( :start_date , " can't be after the end date " ) if start_date && end_date && start_date > end_date
2016-02-21 23:38:17 +02:00
end
2014-08-18 14:33:02 +02:00
end