aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers/referential_lines_controller.rb
diff options
context:
space:
mode:
authorjpl2017-03-20 16:46:20 +0100
committerjpl2017-03-20 16:46:20 +0100
commitcfc35aca0f1383069e1f2cc5ed1026d085a1fc1d (patch)
treed194a26f6ea698a32b7f45b58abc59b10e0ae83c /app/controllers/referential_lines_controller.rb
parent423b5636c4a8ee1eae530e690e8fb1d3b3aa1c05 (diff)
parent516971ceec5919e93105e3b01492090ba2a106cf (diff)
downloadchouette-core-cfc35aca0f1383069e1f2cc5ed1026d085a1fc1d.tar.bz2
Merge branch 'master' into staging
Diffstat (limited to 'app/controllers/referential_lines_controller.rb')
-rw-r--r--app/controllers/referential_lines_controller.rb18
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'