aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorXinhui2017-03-01 12:03:26 +0100
committerXinhui2017-03-01 12:04:46 +0100
commite937897aaecf2f4c4e8db63d37b5e515eba2a048 (patch)
treedeffdf8e8e7b7b9832f6e27749aaa2437161d4c4 /app
parent599addc323b0b08ddcea7871748760c0bec83585 (diff)
downloadchouette-core-e937897aaecf2f4c4e8db63d37b5e515eba2a048.tar.bz2
Wip dummy vehicle_journey_at_stops in json
Diffstat (limited to 'app')
-rw-r--r--app/controllers/vehicle_journeys_controller.rb2
-rw-r--r--app/models/chouette/vehicle_journey.rb26
-rw-r--r--app/views/vehicle_journeys/show.rabl16
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|