diff options
| author | Zog | 2018-01-10 18:24:54 +0100 |
|---|---|---|
| committer | Zog | 2018-01-10 18:30:45 +0100 |
| commit | c8a2e2ce194d3d051bb96522c40c4d34392bdf8e (patch) | |
| tree | c27486119d91687fa9a5dd31b2c1363122d49bd9 /app | |
| parent | 5c3abf69c50f00e0caab1517be2beccca10e635b (diff) | |
| download | chouette-core-c8a2e2ce194d3d051bb96522c40c4d34392bdf8e.tar.bz2 | |
Refs #5535 @2H; Automatically fill VJs tilmes when possible
Diffstat (limited to 'app')
6 files changed, 63 insertions, 9 deletions
diff --git a/app/controllers/vehicle_journeys_controller.rb b/app/controllers/vehicle_journeys_controller.rb index 887131557..68d5caf4f 100644 --- a/app/controllers/vehicle_journeys_controller.rb +++ b/app/controllers/vehicle_journeys_controller.rb @@ -62,6 +62,7 @@ class VehicleJourneysController < ChouetteController :city_name => sp.stop_area.try(:city_name), :comment => sp.stop_area.try(:comment), :area_type => sp.stop_area.try(:area_type), + :stop_area_id => sp.stop_area_id, :registration_number => sp.stop_area.try(:registration_number), :nearest_topic_name => sp.stop_area.try(:nearest_topic_name), :fare_code => sp.stop_area.try(:fare_code), diff --git a/app/javascript/vehicle_journeys/actions/index.js b/app/javascript/vehicle_journeys/actions/index.js index 40c8006f1..95e56cd76 100644 --- a/app/javascript/vehicle_journeys/actions/index.js +++ b/app/javascript/vehicle_journeys/actions/index.js @@ -59,7 +59,9 @@ const actions = { objectid: selectedJP.object_id, name: selectedJP.name, published_name: selectedJP.published_name, - stop_areas: selectedJP.stop_area_short_descriptions + stop_areas: selectedJP.stop_area_short_descriptions, + costs: selectedJP.costs, + full_schedule: selectedJP.full_schedule } }), openEditModal : (vehicleJourney) => ({ diff --git a/app/javascript/vehicle_journeys/components/tools/CreateModal.js b/app/javascript/vehicle_journeys/components/tools/CreateModal.js index 61012d199..afc4bc42b 100644 --- a/app/javascript/vehicle_journeys/components/tools/CreateModal.js +++ b/app/javascript/vehicle_journeys/components/tools/CreateModal.js @@ -88,6 +88,31 @@ export default class CreateModal extends Component { /> </div> </div> + { this.props.modal.modalProps.selectedJPModal && this.props.modal.modalProps.selectedJPModal.full_schedule && <div className='col-lg-6 col-md-6 col-sm-6 col-xs-12'> + <div className='form-group'> + <label className='control-label'>Heure de départ</label> + <div className='input-group time'> + <input + type='number' + min='00' + max='23' + ref='start_time.hour' + className='form-control' + onKeyDown={(e) => actions.resetValidation(e.currentTarget)} + /> + <input + type='number' + min='00' + max='59' + ref='start_time.minute' + className='form-control' + onKeyDown={(e) => actions.resetValidation(e.currentTarget)} + /> + </div> + </div> + </div> + } + </div> </div> <div className='modal-footer'> diff --git a/app/javascript/vehicle_journeys/reducers/vehicleJourneys.js b/app/javascript/vehicle_journeys/reducers/vehicleJourneys.js index d057bf704..0549c7adc 100644 --- a/app/javascript/vehicle_journeys/reducers/vehicleJourneys.js +++ b/app/javascript/vehicle_journeys/reducers/vehicleJourneys.js @@ -9,16 +9,37 @@ const vehicleJourney= (state = {}, action, keep) => { return _.assign({}, state, {selected: false}) case 'ADD_VEHICLEJOURNEY': let pristineVjasList = [] + let prevSp = action.stopPointsList[0] + let current_time = { + hour: 0, + minute: 0 + } + if(action.data["start_time.hour"] && action.data["start_time.minute"] && action.selectedJourneyPattern.full_schedule){ + current_time.hour = parseInt(action.data["start_time.hour"].value) + current_time.minute = parseInt(action.data["start_time.minute"].value) + } _.each(action.stopPointsList, (sp) =>{ + if(action.selectedJourneyPattern.full_schedule && action.selectedJourneyPattern.costs && action.selectedJourneyPattern.costs[prevSp.stop_area_id + "-" + sp.stop_area_id]){ + let delta = parseInt(action.selectedJourneyPattern.costs[prevSp.stop_area_id + "-" + sp.stop_area_id].time) + let delta_hour = parseInt(delta/60) + let delta_minute = delta - 60*delta_hour + current_time.hour += delta_hour + current_time.minute += delta_minute + let extra_hours = parseInt(current_time.minute/60) + current_time.hour += extra_hours + current_time.minute -= extra_hours*60 + current_time.hour = current_time.hour % 24 + prevSp = sp + } let newVjas = { delta: 0, departure_time:{ - hour: '00', - minute: '00' + hour: current_time.hour, + minute: current_time.minute }, arrival_time:{ - hour: '00', - minute: '00' + hour: current_time.hour, + minute: current_time.minute }, stop_point_objectid: sp.object_id, stop_area_cityname: sp.city_name, @@ -31,6 +52,7 @@ const vehicleJourney= (state = {}, action, keep) => { } }) pristineVjasList.push(newVjas) + }) return { company: action.selectedCompany, diff --git a/app/models/chouette/journey_pattern.rb b/app/models/chouette/journey_pattern.rb index 53ff363a2..d03eb6ad7 100644 --- a/app/models/chouette/journey_pattern.rb +++ b/app/models/chouette/journey_pattern.rb @@ -152,7 +152,7 @@ module Chouette end def costs_between start, finish - key = "#{start.id}-#{finish.id}" + key = "#{start.stop_area_id}-#{finish.stop_area_id}" costs[key]&.symbolize_keys || {} end diff --git a/app/views/api/v1/journey_patterns/show.rabl b/app/views/api/v1/journey_patterns/show.rabl index 815b1cf0b..ba63a35c7 100644 --- a/app/views/api/v1/journey_patterns/show.rabl +++ b/app/views/api/v1/journey_patterns/show.rabl @@ -5,13 +5,17 @@ extends "api/v1/trident_objects/show" attributes attr, :unless => lambda { |m| m.send( attr).nil?} end +node :full_schedule do |journey_pattern| + journey_pattern.full_schedule? +end + if has_feature? :costs_in_journey_patterns attribute :costs + node(:route_short_description) do |journey_pattern| + partial("api/v1/routes/short_description", :object => journey_pattern.route) + end end -node(:route_short_description) do |journey_pattern| - partial("api/v1/routes/short_description", :object => journey_pattern.route) -end node(:vehicle_journey_object_ids) do |journey_pattern| journey_pattern.vehicle_journeys.pluck(:objectid) |
