diff options
| author | Michel Etienne | 2012-07-12 08:05:13 +0200 |
|---|---|---|
| committer | Michel Etienne | 2012-07-12 08:05:13 +0200 |
| commit | 150b79cff9c24cbaab8cfd87f3c640b4f5fdf51b (patch) | |
| tree | 1a46591d0ff6a7e1f49d04b39dd2c0112b90b196 /app | |
| parent | 3ee2295d14765aa8a8aecb88e96e296bc2112607 (diff) | |
| download | chouette-core-150b79cff9c24cbaab8cfd87f3c640b4f5fdf51b.tar.bz2 | |
add parameters to gtfs export
Diffstat (limited to 'app')
| -rw-r--r-- | app/helpers/exports_helper.rb | 10 | ||||
| -rw-r--r-- | app/models/export.rb | 5 | ||||
| -rw-r--r-- | app/models/gtfs_export.rb | 13 | ||||
| -rw-r--r-- | app/models/referential.rb | 8 | ||||
| -rw-r--r-- | app/views/exports/new.html.erb | 3 |
5 files changed, 36 insertions, 3 deletions
diff --git a/app/helpers/exports_helper.rb b/app/helpers/exports_helper.rb index 55bbafb72..cd177b424 100644 --- a/app/helpers/exports_helper.rb +++ b/app/helpers/exports_helper.rb @@ -1,5 +1,15 @@ module ExportsHelper + def fields_for_export_type(form) + partial_name = "fields_#{form.object.type.underscore}" + + begin + render :partial => partial_name, :locals => { :form => form } + rescue ActionView::MissingTemplate + "" + end + end + @@export_references_type = {} def export_references_type(type) @@export_references_type[type] ||= ReferencesTypeHelper.new(type) diff --git a/app/models/export.rb b/app/models/export.rb index d3a73b1ff..8aae7448c 100644 --- a/app/models/export.rb +++ b/app/models/export.rb @@ -13,14 +13,15 @@ class Export < ActiveRecord::Base name = name.to_s define_method(name) do - self.options[name] + self.options and self.options[name] end define_method("#{name}=") do |prefix| - self.options[name] = prefix + (self.options ||= {})[name] = prefix end end + def exporter exporter ||= ::Chouette::Exporter.new(referential.slug) end diff --git a/app/models/gtfs_export.rb b/app/models/gtfs_export.rb index 8edad4b1f..9c66e778b 100644 --- a/app/models/gtfs_export.rb +++ b/app/models/gtfs_export.rb @@ -1,7 +1,18 @@ class GtfsExport < Export + validates_presence_of :time_zone + option :time_zone + + after_initialize :init_time_zone + + def init_time_zone + if time_zone.nil? + self.time_zone = "Paris" + end + end + def export_options - super.merge(:format => :gtfs) + super.merge(:format => :gtfs, :time_zone => ActiveSupport::TimeZone.find_tzinfo(time_zone).name) end end diff --git a/app/models/referential.rb b/app/models/referential.rb index 35d4e9141..782275813 100644 --- a/app/models/referential.rb +++ b/app/models/referential.rb @@ -11,6 +11,14 @@ class Referential < ActiveRecord::Base has_many :imports, :dependent => :destroy has_many :exports, :dependent => :destroy + after_initialize :init_time_zone + + def init_time_zone + if time_zone.nil? + self.time_zone = "Paris" + end + end + def human_attribute_name(*args) self.class.human_attribute_name(*args) end diff --git a/app/views/exports/new.html.erb b/app/views/exports/new.html.erb index 36a37abc4..a62116ed7 100644 --- a/app/views/exports/new.html.erb +++ b/app/views/exports/new.html.erb @@ -8,6 +8,9 @@ <% @available_exports.each do |export| %> <%= semantic_form_for [@referential, export], :as => :export, :url => referential_exports_path(@referential), :html => { :id => "#{export.type}_new", :style => ('display: none' unless @export == export)} do |form| %> + <%= form.inputs do %> + <%= fields_for_export_type form %> + <% end %> <%= form.inputs do %> <%= form.input :type, :as => :hidden %> |
