diff options
| author | Zog | 2018-03-07 11:35:25 +0100 | 
|---|---|---|
| committer | Zog | 2018-03-12 12:00:14 +0100 | 
| commit | 1245099459bd3d7dce71fdf0d7c95b2377a0034e (patch) | |
| tree | c17f2c4bd68fc6ad4eedead96e1106954d7093e4 /app/controllers/exports_controller.rb | |
| parent | 0b9269780989dbd69a9be9d63670aab12050cf60 (diff) | |
| download | chouette-core-1245099459bd3d7dce71fdf0d7c95b2377a0034e.tar.bz2 | |
Refs #6133; First Crud for exports
Diffstat (limited to 'app/controllers/exports_controller.rb')
| -rw-r--r-- | app/controllers/exports_controller.rb | 111 | 
1 files changed, 39 insertions, 72 deletions
| diff --git a/app/controllers/exports_controller.rb b/app/controllers/exports_controller.rb index 095720aa0..1b947299f 100644 --- a/app/controllers/exports_controller.rb +++ b/app/controllers/exports_controller.rb @@ -1,74 +1,41 @@ -require 'will_paginate/array' -require 'open-uri' -  class ExportsController < ChouetteController -  include ReferentialSupport -  # defaults :resource_class => Export -  # -  # respond_to :html, :only => [:show, :index, :destroy, :exported_file] -  # respond_to :js, :only => [:index] -  # belongs_to :referential -  # -  # def index -  #   begin -  #     index! -  #   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! -  #   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 exported_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 -  # -  # protected -  # -  # def export_service -  #   ExportService.new(@referential) -  # end -  # -  # def resource -  #   @export ||= export_service.find( params[:id] ) -  #   @line_items = @export.report.line_items -  #   if @line_items.size > 500 -  #     @line_items = @line_items.paginate(page: params[:page], per_page: 20) -  #   end -  #   @export -  # end -  # -  # def collection -  #   @exports ||= export_service.all.sort_by{ |export| export.created_at }.reverse.paginate(:page => params[:page]) -  # end +  include PolicyChecker +  include RansackDateFilter +  include IevInterfaces +  skip_before_action :authenticate_user!, only: [:upload] +  defaults resource_class: Export::Base, collection_name: 'exports', instance_name: 'export' + +  def upload +    if params[:token] == resource.token_download +      send_file resource.file.path +    else +      user_not_authorized +    end +  end + +  private + +  def build_resource +    @export ||= Export::Workbench.new(*resource_params) do |export| +      export.workbench = parent +      export.creator   = current_user.name +    end +  end + +  def export_params +    params.require(:export).permit( +      :name, +      :type, +      :referential_id +    ) +  end + +  def decorate_collection(exports) +    ExportDecorator.decorate( +      exports, +      context: { +        workbench: @workbench +      } +    ) +  end  end | 
