diff options
| author | Xinhui | 2017-03-01 12:03:26 +0100 |
|---|---|---|
| committer | Xinhui | 2017-03-01 12:04:46 +0100 |
| commit | e937897aaecf2f4c4e8db63d37b5e515eba2a048 (patch) | |
| tree | deffdf8e8e7b7b9832f6e27749aaa2437161d4c4 /app | |
| parent | 599addc323b0b08ddcea7871748760c0bec83585 (diff) | |
| download | chouette-core-e937897aaecf2f4c4e8db63d37b5e515eba2a048.tar.bz2 | |
Wip dummy vehicle_journey_at_stops in json
Diffstat (limited to 'app')
| -rw-r--r-- | app/controllers/vehicle_journeys_controller.rb | 2 | ||||
| -rw-r--r-- | app/models/chouette/vehicle_journey.rb | 26 | ||||
| -rw-r--r-- | app/views/vehicle_journeys/show.rabl | 16 |
3 files changed, 32 insertions, 12 deletions
diff --git a/app/controllers/vehicle_journeys_controller.rb b/app/controllers/vehicle_journeys_controller.rb index efa1c775c..7ed1b9509 100644 --- a/app/controllers/vehicle_journeys_controller.rb +++ b/app/controllers/vehicle_journeys_controller.rb @@ -35,7 +35,6 @@ class VehicleJourneysController < ChouetteController if collection.out_of_bounds? redirect_to params.merge(:page => 1) end - @footnotes = route.line.footnotes.to_json build_breadcrumb :index end end @@ -53,6 +52,7 @@ class VehicleJourneysController < ChouetteController def collection unless @vehicle_journeys + @footnotes = route.line.footnotes.to_json @vehicle_filter = VehicleFilter.new adapted_params @vehicle_filter.journey_category_model = resource_class.model_name.route_key @q = @vehicle_filter.vehicle_journeys.search @vehicle_filter.filtered_params diff --git a/app/models/chouette/vehicle_journey.rb b/app/models/chouette/vehicle_journey.rb index 9b9d96df3..d03b52e83 100644 --- a/app/models/chouette/vehicle_journey.rb +++ b/app/models/chouette/vehicle_journey.rb @@ -47,15 +47,29 @@ module Chouette @presenter ||= ::VehicleJourneyPresenter.new( self) end + def vehicle_journey_at_stops_matrix + fill = route.stop_points.count - self.vehicle_journey_at_stops.count + at_stops = self.vehicle_journey_at_stops.to_a.dup + fill.times do + at_stops << Chouette::VehicleJourneyAtStop.new + end + at_stops + end + def update_vehicle_journey_at_stops_state state state.each do |vjas| - stop = vehicle_journey_at_stops.find(vjas['id']) - ['arrival_time', 'departure_time'].each do |field| - stop.assign_attributes({ - field.to_sym => stop.send(field).change({ hour: vjas[field]['hour'], min: vjas[field]['minute'] }) - }) + next if vjas["dummy"] + stop = vehicle_journey_at_stops.find(vjas['id']) if vjas['id'] + if stop + stop.arrival_time ||= Time.now.beginning_of_day + stop.departure_time ||= Time.now.beginning_of_day + ['arrival_time', 'departure_time'].each do |field| + stop.assign_attributes({ + field.to_sym => stop.send(field).change({ hour: vjas[field]['hour'], min: vjas[field]['minute'] }) + }) + end + stop.save end - stop.save end end diff --git a/app/views/vehicle_journeys/show.rabl b/app/views/vehicle_journeys/show.rabl index fc650784c..209b8371d 100644 --- a/app/views/vehicle_journeys/show.rabl +++ b/app/views/vehicle_journeys/show.rabl @@ -1,7 +1,7 @@ object @vehicle_journey [ :objectid, :published_journey_name, :published_journey_identifier, :company_id].each do |attr| - attributes attr, :unless => lambda { |m| m.send( attr)} + attributes attr, :unless => lambda { |m| m.send( attr).nil?} end child(:journey_pattern) do |journey_pattern| @@ -19,12 +19,18 @@ child :footnotes, :object_root => false do |footnotes| attributes :id, :code, :label end -child :vehicle_journey_at_stops, :object_root => false do |vehicle_stops| +child(:vehicle_journey_at_stops_matrix, :object_root => false) do |vehicle_stops| node do |vehicle_stop| - node(:stop_area_object_id) { vehicle_stop.stop_point.stop_area.objectid } - node(:stop_area_name) {vehicle_stop.stop_point.stop_area.name} + node(:dummy) { !vehicle_stop.stop_point_id? } + node(:stop_area_object_id) do + vehicle_stop.stop_point ? vehicle_stop.stop_point.stop_area.objectid : nil + end + node(:stop_area_name) do + vehicle_stop.stop_point ? vehicle_stop.stop_point.stop_area.name : nil + end + [:id, :connecting_service_id, :boarding_alighting_possibility].map do |att| - node(att) { vehicle_stop.send(att) } unless vehicle_stop.send(att).nil? + node(att) { vehicle_stop.send(att) ? vehicle_stop.send(att) : nil } end [:arrival_time, :departure_time].map do |att| |
