diff options
| -rw-r--r-- | app/models/export_task.rb | 33 | ||||
| -rw-r--r-- | app/models/gtfs_export.rb | 4 | ||||
| -rw-r--r-- | app/models/hub_export.rb | 14 | ||||
| -rw-r--r-- | app/models/kml_export.rb | 4 | ||||
| -rw-r--r-- | app/models/neptune_export.rb | 2 | ||||
| -rw-r--r-- | app/models/netex_export.rb | 2 | ||||
| -rw-r--r-- | app/views/export_tasks/_fields_hub_export.html.erb | 2 | ||||
| -rw-r--r-- | app/views/export_tasks/_fields_neptune_export.html.erb | 2 | ||||
| -rw-r--r-- | app/views/export_tasks/new.html.erb | 6 | ||||
| -rw-r--r-- | config/locales/export_tasks.en.yml | 3 | ||||
| -rw-r--r-- | config/locales/export_tasks.fr.yml | 3 | 
11 files changed, 53 insertions, 22 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) diff --git a/app/models/gtfs_export.rb b/app/models/gtfs_export.rb index 0fa6e377d..bef468c32 100644 --- a/app/models/gtfs_export.rb +++ b/app/models/gtfs_export.rb @@ -27,7 +27,9 @@ class GtfsExport < ExportTask          "organisation_name" => organisation.name,          "referential_name" => referential.name,          "time_zone" => real_time_zone, -        "object_id_prefix" => object_id_prefix +        "object_id_prefix" => object_id_prefix, +        "start_date" => start_date, +        "end_date" => end_date        }      }    end diff --git a/app/models/hub_export.rb b/app/models/hub_export.rb index dcbfc01a1..802600692 100644 --- a/app/models/hub_export.rb +++ b/app/models/hub_export.rb @@ -1,20 +1,6 @@  class HubExport < ExportTask -  attr_accessor :start_date, :end_date    enumerize :references_type, in: %w( network line company group_of_line ) -   -  after_initialize :init_period -   -  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 action_params      { diff --git a/app/models/kml_export.rb b/app/models/kml_export.rb index 16a565eed..f6db77172 100644 --- a/app/models/kml_export.rb +++ b/app/models/kml_export.rb @@ -10,7 +10,9 @@ class KmlExport < ExportTask          "reference_ids" => reference_ids,          "user_name" => user_name,          "organisation_name" => organisation.name, -        "referential_name" => referential.name  +        "referential_name" => referential.name, +        "start_date" => start_date, +        "end_date" => end_date        }      }    end diff --git a/app/models/neptune_export.rb b/app/models/neptune_export.rb index 8e9d91557..6f26c7583 100644 --- a/app/models/neptune_export.rb +++ b/app/models/neptune_export.rb @@ -1,6 +1,6 @@  class NeptuneExport < ExportTask -  attr_accessor :start_date, :end_date, :extensions, :export_type +  attr_accessor :extensions, :export_type    enumerize :references_type, in: %w( network line company group_of_line )    def action_params diff --git a/app/models/netex_export.rb b/app/models/netex_export.rb index cb48434a7..a4c3e2454 100644 --- a/app/models/netex_export.rb +++ b/app/models/netex_export.rb @@ -11,6 +11,8 @@ class NetexExport < ExportTask          "user_name" => user_name,          "organisation_name" => organisation.name,          "referential_name" => referential.name, +        "start_date" => start_date, +        "end_date" => end_date        }      }    end diff --git a/app/views/export_tasks/_fields_hub_export.html.erb b/app/views/export_tasks/_fields_hub_export.html.erb index 48e9ef172..e69de29bb 100644 --- a/app/views/export_tasks/_fields_hub_export.html.erb +++ b/app/views/export_tasks/_fields_hub_export.html.erb @@ -1,2 +0,0 @@ -<%= form.input :start_date, :as => :date_picker, :input_html => { :title => t("formtastic.titles.export_task.start_date")} %> -<%= form.input :end_date, :as => :date_picker, :input_html => { :title => t("formtastic.titles.export_task.end_date")} %> diff --git a/app/views/export_tasks/_fields_neptune_export.html.erb b/app/views/export_tasks/_fields_neptune_export.html.erb index e1ef631a5..9f331d329 100644 --- a/app/views/export_tasks/_fields_neptune_export.html.erb +++ b/app/views/export_tasks/_fields_neptune_export.html.erb @@ -1,4 +1,2 @@ -<%= form.input :start_date, :as => :date_picker, :input_html => { :title => t("formtastic.titles.export_task.start_date")} %> -<%= form.input :end_date, :as => :date_picker, :input_html => { :title => t("formtastic.titles.export_task.end_date")} %>  <%= form.input :projection_type, :as => :hidden, :input_html => { :value => @referential.projection_type || "" } %>	    <%= form.input :extensions , :as => :boolean%> diff --git a/app/views/export_tasks/new.html.erb b/app/views/export_tasks/new.html.erb index b97201f2e..1cdb4fa79 100644 --- a/app/views/export_tasks/new.html.erb +++ b/app/views/export_tasks/new.html.erb @@ -18,7 +18,11 @@  	  <% export_task.class.references_types.each do |type| %>  	      <%= form.input :reference_ids, :as => :reference_ids, :json => references_referential_export_tasks_path(@referential, :format => :json) + "?filter=#{type}", :hint_text => t('search_hint'), :no_result_text => t('no_result_text'),:searching_text => t('searching_term'), :id => "#{export_task.data_format}_#{type}_reference_ids", :input_html => { :id => "#{export_task.data_format}_#{type}_reference_ids" }, :wrapper_html => { :style => "display:none;", :id => "#{export_task.data_format}_#{type}", :"data-type" => "#{type}" } %>  	   <% end %> -        <% end %> +          <% end %> + +	  <%= form.input :start_date, :as => :date_picker, :input_html => { :title => t("formtastic.titles.export_task.start_date")} %> +	  <%= form.input :end_date, :as => :date_picker, :input_html => { :title => t("formtastic.titles.export_task.end_date")} %> +          <%= render partial: "fields_#{export_task.data_format}_export", :locals => { :form => form } %> diff --git a/config/locales/export_tasks.en.yml b/config/locales/export_tasks.en.yml index b8ec0ad9b..89e1960f3 100644 --- a/config/locales/export_tasks.en.yml +++ b/config/locales/export_tasks.en.yml @@ -31,6 +31,9 @@ en:          name: "Export name"          start_date: "Start date"          end_date: "End date" +        start_date_greater_than: "Start date must be greater than or equal to %{tt_st_date}." +        end_date_less_than: "End date must be less than or equal to %{tt_ed_date}." +        end_date_greater_than_start_date: "End date must be greater than start date"          extensions: "Extensions"          created_at: "Created on"                  status: "Status" diff --git a/config/locales/export_tasks.fr.yml b/config/locales/export_tasks.fr.yml index 4d6ab74b1..106901e5f 100644 --- a/config/locales/export_tasks.fr.yml +++ b/config/locales/export_tasks.fr.yml @@ -31,6 +31,9 @@ fr:          name: "Nom de l'export"          start_date: "Date de début"          end_date: "Date de fin" +        start_date_greater_than: "La date de début doit être postérieure ou égale à %{tt_st_date}." +        end_date_less_than: "La date de fin doit être antérieure ou égale à %{tt_ed_date}." +        end_date_greater_than_start_date: "La date de fin doit être postérieure à la date de début."          extensions: "Extensions"          created_at: "Créé le"          status: "Status" | 
