blob: 2ce47e51fa2ff61b62b474ce8c25d4b82eaf2027 (
plain)
| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 | class VehicleJourneyExportsController < ChouetteController
  include ReferentialSupport
  belongs_to :referential do
    belongs_to :line, :parent_class => Chouette::Line do
      belongs_to :route, :parent_class => Chouette::Route
    end
  end
  respond_to :csv, :only => [:index]
  respond_to :zip, :only => [:index]
  #respond_to :xls, :only => [:index]
  def index
    index! do |format|
      format.csv { send_data VehicleJourneyExport.new(:route => route, :vehicle_journeys => vehicle_journeys).to_csv(:col_sep => ";") , :filename => t("vehicle_journey_exports.new.basename")+"_#{route.id}.csv" }
      format.zip do
        begin
          temp_file = Tempfile.new("vehicle_journey_export")
          VehicleJourneyExport.new(:route => route, :vehicle_journeys => vehicle_journeys).to_zip(temp_file,:col_sep => ";")
          send_data  File.read(temp_file.path), :filename => t("vehicle_journey_exports.new.basename")+"_#{route.id}.zip"
        ensure
          temp_file.close
          temp_file.unlink
        end
      end
      #format.xls
    end
  end
  protected
  alias_method :route, :parent
  def collection
    @vehicle_journeys ||= route.vehicle_journeys.includes(:vehicle_journey_at_stops).order("vehicle_journey_at_stops.departure_time")
  end
  alias_method :vehicle_journeys, :collection
end
 |