diff options
| author | Xinhui | 2016-12-27 14:30:40 +0100 |
|---|---|---|
| committer | Xinhui | 2016-12-27 14:30:40 +0100 |
| commit | 69a059042c04f4537a75415eb083295311f71be1 (patch) | |
| tree | e932173b9ad17e950b0d60680532e379a96e6d1e | |
| parent | f8c53054f2243dd53c1c34a810657be60a59c2e6 (diff) | |
| download | chouette-core-69a059042c04f4537a75415eb083295311f71be1.tar.bz2 | |
Imports controller
Refs #2261
| -rw-r--r-- | app/controllers/imports_controller.rb | 104 | ||||
| -rw-r--r-- | app/models/referential.rb | 2 | ||||
| -rw-r--r-- | app/views/imports/index.js.slim | 1 | ||||
| -rw-r--r-- | app/views/imports/new.html.slim | 1 | ||||
| -rw-r--r-- | spec/controllers/imports_controller_spec.rb | 12 | ||||
| -rw-r--r-- | spec/controllers/vehicle_journey_imports_controller_spec.rb | 2 |
6 files changed, 22 insertions, 100 deletions
diff --git a/app/controllers/imports_controller.rb b/app/controllers/imports_controller.rb index 757e7f09e..712192aaa 100644 --- a/app/controllers/imports_controller.rb +++ b/app/controllers/imports_controller.rb @@ -1,110 +1,20 @@ -# coding: utf-8 -require 'will_paginate/array' -require 'open-uri' - class ImportsController < ChouetteController defaults :resource_class => Import - - respond_to :html, :only => [:show, :index, :destroy, :imported_file, :rule_parameter_set, :compliance_check] - respond_to :js, :only => [:index, :compliance_check] + respond_to :html belongs_to :referential - def index - begin - index! do - build_breadcrumb :index - end - rescue Ievkit::Error, Faraday::Error => error - logger.error("Iev failure : #{error.message}") - flash[:error] = t(error.locale_for_error) - redirect_to referential_path(@referential) - end - end - def show - begin - show! do - build_breadcrumb :show - end - rescue Ievkit::Error, Faraday::Error => error - logger.error("Iev failure : #{error.message}") - flash[:error] = t(error.locale_for_error) - redirect_to referential_path(@referential) - end - end - - def destroy - begin - destroy! - rescue Ievkit::Error, Faraday::Error => error - logger.error("Iev failure : #{error.message}") - flash[:error] = t(error.locale_for_error) - redirect_to referential_path(@referential) - end - end - - def imported_file - # WARNING : files under 10kb in size get treated as StringIO by OpenUri - # http://stackoverflow.com/questions/10496874/why-does-openuri-treat-files-under-10kb-in-size-as-stringio - OpenURI::Buffer.send :remove_const, 'StringMax' if OpenURI::Buffer.const_defined?('StringMax') - OpenURI::Buffer.const_set 'StringMax', 0 - begin - send_file open(resource.file_path), { :type => "application/#{resource.filename_extension}", :disposition => "attachment", :filename => resource.filename } - rescue Ievkit::Error, Faraday::Error => error - logger.error("Iev failure : #{error.message}") - flash[:error] = t(error.locale_for_error) - redirect_to referential_path(@referential) - end - end - - def rule_parameter_set - begin - @rule_parameter_set = resource.rule_parameter_set - build_breadcrumb :rule_parameter_set - render "rule_parameter_sets/show" - rescue Ievkit::Error, Faraday::Error => error - logger.error("Iev failure : #{error.message}") - flash[:error] = t(error.locale_for_error) - redirect_to referential_path(@referential) + show! do + build_breadcrumb :show end end - def export - respond_to do |format| - format.zip { send_file ComplianceCheckExport.new(resource, @referential.id, request).export, :type => :zip } - end - end - - def compliance_check - begin - @compliance_check = resource - build_breadcrumb :compliance_check - render "compliance_checks/report" - rescue Ievkit::Error, Faraday::Error => error - logger.error("Iev failure : #{error.message}") - flash[:error] = t(error.locale_for_error) - redirect_to referential_path(@referential) - end - end - - protected - alias_method :import, :resource - - def import_service - ImportService.new(@referential) - end - - def resource - @import ||= import_service.find( params[:id] ) - @line_items = @import.report.line_items - if @line_items.size > 500 - @line_items = @line_items.paginate(page: params[:page], per_page: 20) + def index + index! do + build_breadcrumb :index end - @import end - def collection - @imports ||= import_service.all.sort_by{ |import| import.created_at }.reverse.paginate(:page => params[:page]) + def new end - end diff --git a/app/models/referential.rb b/app/models/referential.rb index 7d0b0cf93..979647f21 100644 --- a/app/models/referential.rb +++ b/app/models/referential.rb @@ -34,7 +34,7 @@ class Referential < ActiveRecord::Base has_many :companies, through: :line_referential has_many :group_of_lines, through: :line_referential has_many :networks, through: :line_referential - + has_many :imports has_many :metadatas, class_name: "ReferentialMetadata", inverse_of: :referential, dependent: :destroy accepts_nested_attributes_for :metadatas diff --git a/app/views/imports/index.js.slim b/app/views/imports/index.js.slim deleted file mode 100644 index 2fac7d26c..000000000 --- a/app/views/imports/index.js.slim +++ /dev/null @@ -1 +0,0 @@ -| $('#imports').html("#{escape_javascript(render("imports"))}");
\ No newline at end of file diff --git a/app/views/imports/new.html.slim b/app/views/imports/new.html.slim new file mode 100644 index 000000000..2ddd078cb --- /dev/null +++ b/app/views/imports/new.html.slim @@ -0,0 +1 @@ += @import.inspect diff --git a/spec/controllers/imports_controller_spec.rb b/spec/controllers/imports_controller_spec.rb new file mode 100644 index 000000000..f5ccd643a --- /dev/null +++ b/spec/controllers/imports_controller_spec.rb @@ -0,0 +1,12 @@ +require 'rails_helper' + +RSpec.describe ImportsController, :type => :controller do + login_user + + describe 'GET #new' do + it 'should be successful' do + get :new, referential_id: referential.id + expect(response).to be_success + end + end +end diff --git a/spec/controllers/vehicle_journey_imports_controller_spec.rb b/spec/controllers/vehicle_journey_imports_controller_spec.rb index d91814669..ef1ec882a 100644 --- a/spec/controllers/vehicle_journey_imports_controller_spec.rb +++ b/spec/controllers/vehicle_journey_imports_controller_spec.rb @@ -3,5 +3,5 @@ require 'spec_helper' describe ImportTasksController, :type => :controller do login_user - + end |
