aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers
diff options
context:
space:
mode:
authorLuc Donnet2015-04-24 20:23:44 +0200
committerLuc Donnet2015-04-24 20:23:44 +0200
commit04dff64bbd3b8fab9851a47c700381256d16d386 (patch)
tree18d68550323b2f3ad86528f8653f6855c3311cdf /app/controllers
parent2cb725889f3999a20c719dc7c6b480d8cd2f70c5 (diff)
downloadchouette-core-04dff64bbd3b8fab9851a47c700381256d16d386.tar.bz2
Add export creation
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/export_tasks_controller.rb66
-rw-r--r--app/controllers/import_tasks_controller.rb4
2 files changed, 67 insertions, 3 deletions
diff --git a/app/controllers/export_tasks_controller.rb b/app/controllers/export_tasks_controller.rb
new file mode 100644
index 000000000..dcc5e684d
--- /dev/null
+++ b/app/controllers/export_tasks_controller.rb
@@ -0,0 +1,66 @@
+class ExportTasksController < ChouetteController
+ defaults :resource_class => ExportTask
+
+ respond_to :html, :only => [:new, :create]
+ respond_to :js, :only => [:new, :create]
+ belongs_to :referential
+
+ def new
+ @available_exports = available_exports
+ begin
+ new!
+ rescue Ievkit::Error => error
+ logger.error("Iev failure : #{error.message}")
+ flash[:error] = t('iev.failure')
+ redirect_to referential_path(@referential)
+ end
+ end
+
+ def create
+ begin
+ create! do |success, failure|
+ success.html { redirect_to referential_exports_path(@referential) }
+ end
+ rescue Ievkit::Error => error
+ logger.error("Iev failure : #{error.message}")
+ flash[:error] = t('iev.failure')
+ redirect_to referential_path(@referential)
+ end
+ end
+
+ protected
+
+ def available_exports
+ @available_exports ||= [
+ NeptuneExport.new(:referential_id => @referential.id ),
+ NetexExport.new(:referential_id => @referential.id ),
+ GtfsExport.new(:referential_id => @referential.id ),
+ HubExport.new(:referential_id => @referential.id ),
+ KmlExport.new(:referential_id => @referential.id )
+ ]
+ end
+
+ def build_resource
+ export_task_parameters = params[:export_task]
+
+ if export_task_parameters.present?
+ case export_task_parameters[:data_format]
+ when "neptune"
+ @export_task = NeptuneExport.new(export_task_parameters)
+ when "netex"
+ @export_task = NetexExport.new(export_task_parameters)
+ when "gtfs"
+ @export_task = GtfsExport.new(export_task_parameters)
+ when "hub"
+ @export_task = HubExport.new(export_task_parameters)
+ when "kml"
+ @export_task = KmlExport.new(export_task_parameters)
+ else
+ @export_task = nil
+ end
+ else
+ @export_task = nil
+ end
+ end
+
+end
diff --git a/app/controllers/import_tasks_controller.rb b/app/controllers/import_tasks_controller.rb
index cb0bafdfa..2e0b325c7 100644
--- a/app/controllers/import_tasks_controller.rb
+++ b/app/controllers/import_tasks_controller.rb
@@ -6,9 +6,7 @@ class ImportTasksController < ChouetteController
def new
begin
- new! do
- puts "new"
- end
+ new!
rescue Ievkit::Error => error
logger.error("Iev failure : #{error.message}")
flash[:error] = t('iev.failure')