aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorMichel Etienne2012-07-12 08:05:13 +0200
committerMichel Etienne2012-07-12 08:05:13 +0200
commit150b79cff9c24cbaab8cfd87f3c640b4f5fdf51b (patch)
tree1a46591d0ff6a7e1f49d04b39dd2c0112b90b196 /app
parent3ee2295d14765aa8a8aecb88e96e296bc2112607 (diff)
downloadchouette-core-150b79cff9c24cbaab8cfd87f3c640b4f5fdf51b.tar.bz2
add parameters to gtfs export
Diffstat (limited to 'app')
-rw-r--r--app/helpers/exports_helper.rb10
-rw-r--r--app/models/export.rb5
-rw-r--r--app/models/gtfs_export.rb13
-rw-r--r--app/models/referential.rb8
-rw-r--r--app/views/exports/new.html.erb3
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 %>