diff options
| author | Luc Donnet | 2018-02-01 14:05:10 +0100 | 
|---|---|---|
| committer | GitHub | 2018-02-01 14:05:10 +0100 | 
| commit | b7680876c8f13486dbc58b4a6ce7ffe519bfb897 (patch) | |
| tree | 427da4d99c41ef091c486838b6502b5c0aeced78 | |
| parent | b3d46e56c65b9dcfee9c8a81fd567cba956c63fc (diff) | |
| parent | 630f4d9cbda9b0d5e7ea301f605e893ebd4e263b (diff) | |
| download | chouette-core-b7680876c8f13486dbc58b4a6ce7ffe519bfb897.tar.bz2 | |
Merge pull request #260 from af83/5718-show-times-in-vehiclejourneys-index
5718 Show times at stops in ReferentialVehicleJourneys#index
| -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' | 
