diff options
| author | jpl | 2017-03-17 18:23:12 +0100 | 
|---|---|---|
| committer | jpl | 2017-03-17 18:23:12 +0100 | 
| commit | 4be6c9ae2304e47e9f6b2ab5bbc3bd9c3e360b74 (patch) | |
| tree | 4b31f4ce38da6c189152c09ab8bc2953a0d7e99c /app/controllers/referential_lines_controller.rb | |
| parent | 82f8b8a0cf518946d94573831676237411e1ece9 (diff) | |
| download | chouette-core-4be6c9ae2304e47e9f6b2ab5bbc3bd9c3e360b74.tar.bz2 | |
Refs #2858: fix sorting on table for <attr>.count (reflines#show)
Diffstat (limited to 'app/controllers/referential_lines_controller.rb')
| -rw-r--r-- | app/controllers/referential_lines_controller.rb | 18 | 
1 files changed, 11 insertions, 7 deletions
| diff --git a/app/controllers/referential_lines_controller.rb b/app/controllers/referential_lines_controller.rb index 4842cebc1..5d36e7da7 100644 --- a/app/controllers/referential_lines_controller.rb +++ b/app/controllers/referential_lines_controller.rb @@ -23,18 +23,22 @@ class ReferentialLinesController < ChouetteController    end    def show -    @map = LineMap.new(resource).with_helpers(self) +    @routes = resource.routes -    @q = @line.routes.ransack(params[:q]) +    case sort_route_column +    when "stop_points", "journey_patterns" +      left_join = %Q{LEFT JOIN "#{sort_route_column}" ON "#{sort_route_column}"."route_id" = "routes"."id"} -    if sort_route_column && sort_route_direction -      @routes ||= @q.result(distinct: true).order(sort_route_column + ' ' + sort_route_direction) +      @routes = @routes.joins(left_join).group(:id).order("count(#{sort_route_column}.route_id) #{sort_route_direction}")      else -      @routes ||= @q.result(distinct: true).order(:name) +      @routes = @routes.order("#{sort_route_column} #{sort_route_direction}")      end + +    @q = @routes.ransack(params[:q]) +    @routes = @q.result +      @routes = @routes.paginate(page: params[:page], per_page: 10) -    @group_of_lines = @line.group_of_lines      show! do        build_breadcrumb :show      end @@ -106,7 +110,7 @@ class ReferentialLinesController < ChouetteController    end    def sort_route_column -    @line.routes.column_names.include?(params[:sort]) ? params[:sort] : 'name' +    (@line.routes.column_names + %w{stop_points journey_patterns}).include?(params[:sort]) ? params[:sort] : 'name'    end    def sort_route_direction      %w[asc desc].include?(params[:direction]) ?  params[:direction] : 'asc' | 
