aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZog2018-01-25 14:42:08 +0100
committerZog2018-01-25 15:10:39 +0100
commit630f4d9cbda9b0d5e7ea301f605e893ebd4e263b (patch)
tree8c224e2ffcc194fe05383aa52e76810cdce1a7d0
parent5ecadfdead964381304fcf56a2564e2045988ef7 (diff)
downloadchouette-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.rb2
-rw-r--r--app/helpers/vehicle_journeys_helper.rb24
-rw-r--r--app/views/referential_vehicle_journeys/index.html.slim3
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'