diff options
| author | Zakaria BOUZIANE | 2015-05-21 11:03:19 +0200 | 
|---|---|---|
| committer | Zakaria BOUZIANE | 2015-05-21 11:03:19 +0200 | 
| commit | f539406189faacc1fd6e645f637dc9db24cd6426 (patch) | |
| tree | 75b8fa56a090b63d3bc6269866ccb2eef280aa39 /app/models/export_task.rb | |
| parent | 31b66390ed9811105f3bd55445b9b007ac3d4826 (diff) | |
| download | chouette-core-f539406189faacc1fd6e645f637dc9db24cd6426.tar.bz2 | |
Setting start/end dates for all Exports. Form date inputs validation.
Diffstat (limited to 'app/models/export_task.rb')
| -rw-r--r-- | app/models/export_task.rb | 33 | 
1 files changed, 33 insertions, 0 deletions
| diff --git a/app/models/export_task.rb b/app/models/export_task.rb index cb808d493..a14472518 100644 --- a/app/models/export_task.rb +++ b/app/models/export_task.rb @@ -6,6 +6,8 @@ class ExportTask    include ActiveModel::Validations    include ActiveModel::Conversion +  attr_accessor :start_date, :end_date +    define_model_callbacks :initialize, only: :after    enumerize :data_format, in: %w( neptune netex gtfs hub kml ) @@ -16,12 +18,43 @@ class ExportTask    validates_presence_of :user_name    validates_presence_of :name    validates_presence_of :data_format + +  validate :period_validation + +  after_initialize :init_period    def initialize( params = {} )      run_callbacks :initialize do        params.each {|k,v| send("#{k}=",v)}      end    end +   +  def period_validation +    st_date = Date.parse(start_date) unless start_date.blank?  +    ed_date = Date.parse(end_date) unless end_date.blank?  +    unless  Chouette::TimeTable.start_validity_period.nil? || st_date.nil? +      tt_st_date = Chouette::TimeTable.start_validity_period +      errors.add(:start_date, ExportTask.human_attribute_name("start_date_greater_than" , {:tt_st_date => tt_st_date})) unless tt_st_date <= st_date +    end +    unless st_date.nil? || ed_date.nil? +      errors.add(:end_date, ExportTask.human_attribute_name("end_date_greater_than_start_date")) unless st_date < ed_date +    end +    unless  ed_date.nil? || Chouette::TimeTable.end_validity_period.nil? +      tt_ed_date = Chouette::TimeTable.end_validity_period +      errors.add(:end_date, ExportTask.human_attribute_name("end_date_less_than", {:tt_ed_date => tt_ed_date})) unless ed_date <= tt_ed_date +    end +  end +   +  def init_period +    unless Chouette::TimeTable.start_validity_period.nil? +      if start_date.nil? +        self.start_date = Chouette::TimeTable.start_validity_period +      end +      if end_date.nil? +        self.end_date = Chouette::TimeTable.end_validity_period +      end +    end +  end    def referential      Referential.find(referential_id) | 
