aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/chouette/timeband.rb
blob: 5a4e17b98d3e47d3a08e01fc5eee7628bf8ca4e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
module Chouette
  class TimebandValidator < ActiveModel::Validator
    def validate(record)
      if record.end_time <= record.start_time
        record.errors[:end_time] << I18n.t('activerecord.errors.models.timeband.start_must_be_before_end')
      end
    end
  end

  class Timeband < Chouette::TridentActiveRecord
    include ObjectidSupport
    has_paper_trail

    validates :start_time, :end_time, presence: true
    validates_with Chouette::TimebandValidator

    default_scope { order(:start_time) }

    def self.object_id_key
      "Timeband"
    end

    def fullname
      fullname = "#{I18n.l(self.start_time, format: :hour)}-#{I18n.l(self.end_time, format: :hour)}"
      "#{self.name} (#{fullname})" if self.name
    end
  end
end