diff options
| author | Luc Donnet | 2015-04-22 10:38:49 +0200 |
|---|---|---|
| committer | Luc Donnet | 2015-04-22 10:38:49 +0200 |
| commit | 42c570ba88f073d0082b948ced1e3b6f57868afe (patch) | |
| tree | 9221feb52585362b8ec6a53baef4a7254747e178 /app/controllers | |
| parent | 75b5d7d86f6b5a26b7f88eb7c6b788d59163ef5b (diff) | |
| download | chouette-core-42c570ba88f073d0082b948ced1e3b6f57868afe.tar.bz2 | |
Update import use
Diffstat (limited to 'app/controllers')
| -rw-r--r-- | app/controllers/import_tasks_controller.rb | 82 | ||||
| -rw-r--r-- | app/controllers/imports_controller.rb | 41 |
2 files changed, 32 insertions, 91 deletions
diff --git a/app/controllers/import_tasks_controller.rb b/app/controllers/import_tasks_controller.rb index 18730b5d3..cb0bafdfa 100644 --- a/app/controllers/import_tasks_controller.rb +++ b/app/controllers/import_tasks_controller.rb @@ -1,75 +1,39 @@ class ImportTasksController < ChouetteController defaults :resource_class => ImportTask - respond_to :html, :xml, :json - respond_to :js, :only => [:show, :index] + + respond_to :html belongs_to :referential def new - new! do - build_breadcrumb :new - available_imports - end - end - - def show - show! do - build_breadcrumb :show - if import_task.completed? - @files_stats = import_task.result["files"]["stats"] - @files_list = import_task.result["files"]["list"] - @lines_stats = import_task.result["lines"]["stats"] - @lines_list = import_task.result["lines"]["list"] + begin + new! do + puts "new" end + rescue Ievkit::Error => error + logger.error("Iev failure : #{error.message}") + flash[:error] = t('iev.failure') + redirect_to referential_path(@referential) end end - - def file_to_import - send_file import_task.file_path, :type => "application/#{import_task.file_path_extension}", :disposition => "attachment" - end - + def create - create! do |success, failure| - available_imports - success.html { flash[:notice] = I18n.t('import_tasks.new.flash'); redirect_to referential_import_tasks_path(@referential) } - end + #begin + neptune_import = NeptuneImport.new(params[:import_task]) + neptune_import.save + # rescue Ievkit::Error => error + # logger.error("Iev failure : #{error.message}") + # flash[:error] = t('iev.failure') + # redirect_to referential_path(@referential) + # end end protected - def create_resource( import ) - if import_task.save - import_task.delayed_import - end - end - - alias_method :import_task, :resource - - def available_imports - @available_imports ||= ImportTask.formats.collect do |format| - unless @import_task.format == format - @referential.import_tasks.build :format => format - else - @import_task - end - end - end - - # FIXME why #resource_id is nil ?? - def build_resource - super.tap do |import_task| - import_task.referential_id = @referential.id - import_task.user_id = current_user.id - import_task.user_name = current_user.name - end - end - - def collection - @import_tasks ||= end_of_association_chain.order('created_at DESC').paginate(:page => params[:page]) - end - - private - def import_task_params - params.require(:import_task).permit(:resources, :rule_parameter_set_id, :no_save) + def build_resource(attributes = {}) + @csv_import ||= CsvImport.new(:referential_id => @referential.id ) + @neptune_import ||= NeptuneImport.new(:referential_id => @referential.id ) + @netex_import ||= NetexImport.new(:referential_id => @referential.id ) + @gtfs_import ||= GtfsImport.new(:referential_id => @referential.id ) end end diff --git a/app/controllers/imports_controller.rb b/app/controllers/imports_controller.rb index e7ff7ff15..e09fdfec5 100644 --- a/app/controllers/imports_controller.rb +++ b/app/controllers/imports_controller.rb @@ -1,17 +1,13 @@ require 'will_paginate/array' +require 'open-uri' class ImportsController < ChouetteController defaults :resource_class => Import - respond_to :html, :only => [:show, :index, :new, :create, :delete] + respond_to :html, :only => [:show, :index, :destroy, :imported_file] respond_to :js, :only => [:show, :index] belongs_to :referential - # create => curl -F "file=@Citura.zip;filename=Citura.zip" -F "file=@parameters.json;filename=parameters.json" http://localhost:8080/chouette_iev/referentials/test/importer/neptune - # index curl http://localhost:8080/mobi.chouette.api/referentials/test/jobs - # show curl http://localhost:8080/mobi.chouette.api/referentials/test/jobs - - def index begin index! do @@ -34,24 +30,11 @@ class ImportsController < ChouetteController flash[:error] = t('iev.failure') redirect_to referential_path(@referential) end - end - - def new - begin - new! do - puts "OK" - end - rescue Ievkit::Error => error - logger.error("Iev failure : #{error.message}") - flash[:error] = t('iev.failure') - redirect_to referential_path(@referential) - end - end - - def create + end + + def destroy begin - create! do - puts "OK" + destroy! do end rescue Ievkit::Error => error logger.error("Iev failure : #{error.message}") @@ -60,12 +43,9 @@ class ImportsController < ChouetteController end end - def delete + def imported_file begin - delete! do - import_service.delete(@import.id) - redirect_to referential_imports_path(@referential) - end + send_file open(resource.file_path), { :type => "application/#{resource.filename_extension}", :disposition => "attachment", :filename => resource.filename } rescue Ievkit::Error => error logger.error("Iev failure : #{error.message}") flash[:error] = t('iev.failure') @@ -74,14 +54,11 @@ class ImportsController < ChouetteController end protected + alias_method :import, :resource def import_service ImportService.new(@referential) end - - def build_resource(attributes = {}) - @import ||= ImportTask.new - end def resource @import ||= import_service.find( params[:id] ) |
