aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorTeddy Wing2017-05-31 16:49:22 +0200
committerTeddy Wing2017-05-31 17:57:36 +0200
commitb5fc278ecb1b59930614a03241e7463f128e8c75 (patch)
tree2f8ef8fcd95c42c40ef9b96a2ed7a17716aa810f /app
parent52531e2910b3db6ac2a7c5fedbc14b0be54782dc (diff)
downloadchouette-core-b5fc278ecb1b59930614a03241e7463f128e8c75.tar.bz2
VehicleJourney: Set at-stop day offsets when saving
Add a new `before_validation` filter that calls into the day offsetter (`VehicleJourneyAtStopsDayOffset`) to set the correct `arrival_day_offset` and `departure_day_offset`s on each VehicleJourneyAtStop in the VehicleJourney. Doing so ensures that the values are always up to date when the vehicle journey is updated. Refs #3596
Diffstat (limited to 'app')
-rw-r--r--app/models/chouette/vehicle_journey.rb10
1 files changed, 9 insertions, 1 deletions
diff --git a/app/models/chouette/vehicle_journey.rb b/app/models/chouette/vehicle_journey.rb
index 84f621582..38d4a1f81 100644
--- a/app/models/chouette/vehicle_journey.rb
+++ b/app/models/chouette/vehicle_journey.rb
@@ -32,13 +32,21 @@ module Chouette
vehicle_journey_at_stops_are_in_increasing_time_order: true
validates_presence_of :number
- before_validation :set_default_values
+ before_validation :set_default_values,
+ :calculate_vehicle_journey_at_stop_day_offset
+
def set_default_values
if number.nil?
self.number = 0
end
end
+ def calculate_vehicle_journey_at_stop_day_offset
+ Chouette::VehicleJourneyAtStopsDayOffset.new(
+ vehicle_journey_at_stops
+ ).update
+ end
+
scope :without_any_time_table, -> { joins('LEFT JOIN "time_tables_vehicle_journeys" ON "time_tables_vehicle_journeys"."vehicle_journey_id" = "vehicle_journeys"."id" LEFT JOIN "time_tables" ON "time_tables"."id" = "time_tables_vehicle_journeys"."time_table_id"').where(:time_tables => { :id => nil}) }
scope :without_any_passing_time, -> { joins('LEFT JOIN "vehicle_journey_at_stops" ON "vehicle_journey_at_stops"."vehicle_journey_id" = "vehicle_journeys"."id"').where(vehicle_journey_at_stops: { id: nil }) }