diff options
| author | Zakaria BOUZIANE | 2014-12-15 16:39:39 +0100 | 
|---|---|---|
| committer | Zakaria BOUZIANE | 2014-12-15 16:39:39 +0100 | 
| commit | 4a38f7e0c6cf879fcd050b0b078cd488065a2202 (patch) | |
| tree | d88a092361faf2033f57e8611c4fd8d57e70ba65 | |
| parent | fbb5cb147d73e794e2a3abffe3cf0f0c21e5e6cd (diff) | |
| download | chouette-core-4a38f7e0c6cf879fcd050b0b078cd488065a2202.tar.bz2 | |
HUB Export : Adding ITL export
| -rw-r--r-- | app/exporters/chouette/hub/exporter.rb | 1 | ||||
| -rw-r--r-- | app/exporters/chouette/hub/itl_exporter.rb | 65 | ||||
| -rw-r--r-- | app/views/api/hub/itls.hub.erb | 1 | ||||
| -rw-r--r-- | config/locales/exports.yml | 2 | ||||
| -rw-r--r-- | config/routes.rb | 8 | 
5 files changed, 74 insertions, 3 deletions
| diff --git a/app/exporters/chouette/hub/exporter.rb b/app/exporters/chouette/hub/exporter.rb index 27ac4e7ee..110ad6b61 100644 --- a/app/exporters/chouette/hub/exporter.rb +++ b/app/exporters/chouette/hub/exporter.rb @@ -133,6 +133,7 @@ class Chouette::Hub::Exporter          if journey_patterns_exportable?            Chouette::Hub::RouteExporter.save(@routes, temp_dir, hub_export) +          Chouette::Hub::ItlExporter.save(@routes, temp_dir, hub_export)            Chouette::Hub::JourneyPatternExporter.save(@journey_patterns, temp_dir, hub_export)            Chouette::Hub::DirectionExporter.save(@journey_patterns, temp_dir, hub_export)          else diff --git a/app/exporters/chouette/hub/itl_exporter.rb b/app/exporters/chouette/hub/itl_exporter.rb new file mode 100644 index 000000000..8c281d965 --- /dev/null +++ b/app/exporters/chouette/hub/itl_exporter.rb @@ -0,0 +1,65 @@ +class Chouette::Hub::ItlExporter +  include ERB::Util +  attr_accessor :stop_point, :stop_area_id, :stop_area_code, :line_code, :sens, :order, :type, :identifier, :directory, :template +   +  def initialize(stop_point, sens, line, directory, index) +    @stop_point = stop_point +    @directory = directory +    @template = File.open('app/views/api/hub/itls.hub.erb' ){ |f| f.read } +    @line_code = line.objectid.sub(/(\w*\:\w*\:)(\w*)/, '\2') if line +    @sens = sens == 'A' ? 1 : 2 +    stop_area = stop_point.stop_area +    if stop_area +      @stop_area_code = stop_area.objectid.sub(/(\w*\:\w*\:)(\w*)/, '\2') +      @stop_area_id = stop_area.registration_number +    end +    @order = stop_point.position +    if stop_point.for_boarding == "forbidden" +      @type = 1 +    elsif stop_point.for_alighting == "forbidden" +      @type = 2 +    end +    @identifier = index +  end +   +  def render() +    ERB.new(@template).result(binding) +  end +   +  def hub_name +    "/ITL.TXT" +  end +   +  def self.save( routes, directory, hub_export) +    count = 0 +    routes.each do |route| +      for_boarding_stops = route.stop_points.where( :for_boarding => [ "forbidden" , "normal"] ).order(:position) +      if for_boarding_stops +        for_boarding_stops.each do |stop_point| +          count += 1 +          self.new( stop_point, route.wayback, route.line, directory, count ).tap do |specific_exporter| +            specific_exporter.save +          end +        end +      end +      for_alighting_stops = route.stop_points.where( :for_alighting => [ "forbidden" , "normal"] ).order(:position) +      if for_alighting_stops +        for_alighting_stops.each do |stop_point| +          count += 1 +          self.new( stop_point, route.wayback, route.line, directory, count ).tap do |specific_exporter| +            specific_exporter.save +          end +        end +      end +    end +    hub_export.log_messages.create( :severity => "ok", :key => "EXPORT|ITL_COUNT", :arguments => {"0" => count}) +  end +   +  def save +    File.open(directory + hub_name , "a:Windows_1252") do |f| +      f.write("ITL\u000D\u000A") if f.size == 0 +      f.write(render) +    end if stop_point.present? +  end +end + diff --git a/app/views/api/hub/itls.hub.erb b/app/views/api/hub/itls.hub.erb new file mode 100644 index 000000000..8bf596185 --- /dev/null +++ b/app/views/api/hub/itls.hub.erb @@ -0,0 +1 @@ +<%= @line_code %>;<%= @sens %>;<%= @stop_area_code %>;<%= @stop_area_id %>;<%= @order %>;<%= @type %>;<%= @identifier %><%= "\u000D\u000A" %>
\ No newline at end of file diff --git a/config/locales/exports.yml b/config/locales/exports.yml index 1e01507ce..5cf816d3d 100644 --- a/config/locales/exports.yml +++ b/config/locales/exports.yml @@ -36,6 +36,7 @@ en:        COMMUNE_COUNT: "City count : %{0}"        TRANSPORT_MODE_COUNT: "Transport Mode count : %{0}"        ROUTE_COUNT: "Route count : %{0}" +      ITL_COUNT: "Boardings alightings constraints count : %{0}"        JOURNEY_PATTERN_COUNT: "Journey pattern count : %{0}"        QUAY_AND_BOARDING_POSITION_COUNT: "Quays and Boarding positions count : %{0}"        COMMERCIAL_COUNT: "Commercial stop points count : %{0}" @@ -165,6 +166,7 @@ fr:        COMMUNE_COUNT: "Nombre de communes : %{0}"        TRANSPORT_MODE_COUNT: "Nombre de modes de transport : %{0}"        ROUTE_COUNT: "Nombre de séquences d'arrêts exportées : %{0}" +      ITL_COUNT: "Nombre de contraintes de montées / descentes : %{0}"        QUAY_AND_BOARDING_POSITION_COUNT: "Nombre d'arrêts physiques exportés : %{0}"        COMMERCIAL_COUNT: "Nombre d'arrêts commerciaux exportés : %{0}"        STOP_PLACE_COUNT: "Nombres de pôles d'échange exportés : %{0}" diff --git a/config/routes.rb b/config/routes.rb index f8af87e5a..67eb757ae 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -72,14 +72,16 @@ ChouetteIhm::Application.routes.draw do        collection do          get :name_filter        end -    end - -    resources :lines, :networks, :group_of_lines do        resources :routes do          member do            get 'edit_boarding_alighting'            put 'save_boarding_alighting'          end +      end +    end + +    resources :lines, :networks, :group_of_lines do +      resources :routes do          resources :journey_patterns do            member do              get 'new_vehicle_journey' | 
