diff options
| author | Zog | 2018-01-25 14:42:08 +0100 |
|---|---|---|
| committer | Zog | 2018-01-25 15:10:39 +0100 |
| commit | 630f4d9cbda9b0d5e7ea301f605e893ebd4e263b (patch) | |
| tree | 8c224e2ffcc194fe05383aa52e76810cdce1a7d0 | |
| parent | 5ecadfdead964381304fcf56a2564e2045988ef7 (diff) | |
| download | chouette-core-5718-show-times-in-vehiclejourneys-index.tar.bz2 | |
Refs #5718; Show times at stops in ReferentialVehicleJourneys#index5718-show-times-in-vehiclejourneys-index
When 1 or 2 stops have been selected
| -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 f93de29cc..09c268f7e 100644 --- a/app/controllers/referential_vehicle_journeys_controller.rb +++ b/app/controllers/referential_vehicle_journeys_controller.rb @@ -16,6 +16,8 @@ class ReferentialVehicleJourneysController < ChouetteController @vehicle_journeys ||= @q.result.order(:published_journey_name).includes(:vehicle_journey_at_stops).paginate page: params[:page], 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' |
