diff options
| -rw-r--r-- | app/controllers/referential_vehicle_journeys_controller.rb | 2 | ||||
| -rw-r--r-- | app/helpers/vehicle_journeys_helper.rb | 24 | ||||
| -rw-r--r-- | app/views/referential_vehicle_journeys/index.html.slim | 3 |
3 files changed, 20 insertions, 9 deletions
diff --git a/app/controllers/referential_vehicle_journeys_controller.rb b/app/controllers/referential_vehicle_journeys_controller.rb index b133602bc..a199157dd 100644 --- a/app/controllers/referential_vehicle_journeys_controller.rb +++ b/app/controllers/referential_vehicle_journeys_controller.rb @@ -23,6 +23,8 @@ class ReferentialVehicleJourneysController < ChouetteController @vehicle_journeys ||= @q.result.order(:published_journey_name).includes(:vehicle_journey_at_stops).paginate page: params[:page], per_page: params[:per_page] || 10 @all_companies = Chouette::Company.where("id IN (#{@referential.vehicle_journeys.select(:company_id).to_sql})").distinct @all_stop_areas = Chouette::StopArea.where("id IN (#{@referential.vehicle_journeys.joins(:stop_areas).select("stop_areas.id").to_sql})").distinct + stop_area_ids = params[:q][:stop_area_ids].select(&:present?) + @filters_stop_areas = Chouette::StopArea.find(stop_area_ids) if stop_area_ids.present? && stop_area_ids.size <= 2 end end diff --git a/app/helpers/vehicle_journeys_helper.rb b/app/helpers/vehicle_journeys_helper.rb index 6877abd11..1cc865c62 100644 --- a/app/helpers/vehicle_journeys_helper.rb +++ b/app/helpers/vehicle_journeys_helper.rb @@ -1,5 +1,5 @@ module VehicleJourneysHelper - + def vehicle_name( vehicle) if !vehicle.published_journey_name.blank? vehicle.published_journey_name.first(8) @@ -11,11 +11,11 @@ module VehicleJourneysHelper vehicle.id end end - + def missing_time_check( is_present) return "missing" if (is_present && is_present.departure_time.nil?) end - + def vehicle_departure(vehicle, departure_time=nil) unless departure_time first_vjas = vehicle.vehicle_journey_at_stops.first @@ -24,7 +24,7 @@ module VehicleJourneysHelper end l(departure_time, :format => :hour).gsub( / /, ' ') end - + def vehicle_title(vehicle, journey_frequency=nil) return t("vehicle_journeys.vehicle_journey#{'_frequency' if vehicle.frequency?}.title_stopless", :name => vehicle_name( vehicle)) if vehicle.vehicle_journey_at_stops.empty? first_vjas = vehicle.vehicle_journey_at_stops.first @@ -40,7 +40,7 @@ module VehicleJourneysHelper :time => vehicle_departure(vehicle, (journey_frequency ? journey_frequency.first_departure_time : nil ))) end end - + def route_journey_pattern_label_pairs route route .journey_patterns @@ -50,7 +50,7 @@ module VehicleJourneysHelper def edit_vehicle_title( vehicle) return t('vehicle_journeys.edit.title_stopless', :name => vehicle_name( vehicle)) if vehicle.vehicle_journey_at_stops.empty? first_vjas = vehicle.vehicle_journey_at_stops.first - t('vehicle_journeys.edit.title', + t('vehicle_journeys.edit.title', :name => vehicle_name( vehicle), :stop => first_vjas.stop_point.stop_area.name, :time => vehicle_departure(vehicle)) @@ -59,6 +59,14 @@ module VehicleJourneysHelper def exist_vehicle_journeys?(route) route.vehicle_journeys.count > 0 end - -end + def table_builder_column_for_stop_area stop_area + return nil unless stop_area + TableBuilderHelper::Column.new( + name: stop_area.name, + attribute: Proc.new {|v| v.vehicle_journey_at_stops.find{|vjas| vjas.stop_point.stop_area_id == stop_area.id}&.departure }, + sortable: false + ) + end + +end diff --git a/app/views/referential_vehicle_journeys/index.html.slim b/app/views/referential_vehicle_journeys/index.html.slim index d29a78a6c..69e29597c 100644 --- a/app/views/referential_vehicle_journeys/index.html.slim +++ b/app/views/referential_vehicle_journeys/index.html.slim @@ -42,12 +42,13 @@ attribute: Proc.new {|v| v.vehicle_journey_at_stops.first&.departure }, \ sortable: false \ ), \ + @filters_stop_areas&.map{|s| table_builder_column_for_stop_area(s)}, TableBuilderHelper::Column.new( \ key: :arrival_time, \ attribute: Proc.new {|v| v.vehicle_journey_at_stops.last&.arrival }, \ sortable: false \ ), \ - ], + ].flatten.compact, cls: 'table has-filter has-search' = new_pagination @vehicle_journeys, 'pull-right' |
