diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb index 012d86764ab..8d9329f2b32 100644 --- a/app/controllers/dashboard_controller.rb +++ b/app/controllers/dashboard_controller.rb @@ -5,7 +5,7 @@ class DashboardController < ApplicationController def index @groups = Group.where(id: current_user.projects.pluck(:group_id)) - @projects = current_user.projects_with_events + @projects = current_user.projects_sorted_by_activity @projects = @projects.page(params[:page]).per(30) @events = Event.in_projects(current_user.project_ids) diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb index 761238a98b5..63f70cd0027 100644 --- a/app/controllers/groups_controller.rb +++ b/app/controllers/groups_controller.rb @@ -54,7 +54,7 @@ class GroupsController < ApplicationController end def projects - @projects ||= current_user.projects_with_events.where(group_id: @group.id) + @projects ||= current_user.projects_sorted_by_activity.where(group_id: @group.id) end def project_ids diff --git a/app/roles/account.rb b/app/roles/account.rb index 21545b91ce1..b80fbba0958 100644 --- a/app/roles/account.rb +++ b/app/roles/account.rb @@ -67,7 +67,7 @@ module Account events = events.recent.limit(1).first end - def projects_with_events - projects.includes(:events).order("events.created_at DESC") + def projects_sorted_by_activity + projects.order("(SELECT max(events.created_at) FROM events WHERE events.project_id = projects.id) DESC") end end