diff --git a/app/controllers/dashboard/projects_controller.rb b/app/controllers/dashboard/projects_controller.rb
index 3ba8c2f8bb98ff5e05dd5cc5c3b10224b432e422..325ae56553759ce9bc8b68de5ff6bf9cefaf6e9e 100644
--- a/app/controllers/dashboard/projects_controller.rb
+++ b/app/controllers/dashboard/projects_controller.rb
@@ -1,19 +1,14 @@
 class Dashboard::ProjectsController < Dashboard::ApplicationController
   include FilterProjects
 
-  before_action :event_filter
-
   def index
-    @projects = current_user.authorized_projects.sorted_by_activity
-    @projects = filter_projects(@projects)
-    @projects = @projects.includes(:namespace)
+    @projects = load_projects(current_user.authorized_projects)
     @projects = @projects.sort(@sort = params[:sort])
     @projects = @projects.page(params[:page])
 
     respond_to do |format|
       format.html { @last_push = current_user.recent_push }
       format.atom do
-        event_filter
         load_events
         render layout: false
       end
@@ -26,9 +21,8 @@ class Dashboard::ProjectsController < Dashboard::ApplicationController
   end
 
   def starred
-    @projects = current_user.viewable_starred_projects.sorted_by_activity
-    @projects = filter_projects(@projects)
-    @projects = @projects.includes(:namespace, :forked_from_project, :tags)
+    @projects = load_projects(current_user.viewable_starred_projects)
+    @projects = @projects.includes(:forked_from_project, :tags)
     @projects = @projects.sort(@sort = params[:sort])
     @projects = @projects.page(params[:page])
 
@@ -37,7 +31,6 @@ class Dashboard::ProjectsController < Dashboard::ApplicationController
 
     respond_to do |format|
       format.html
-
       format.json do
         render json: {
           html: view_to_html_string("dashboard/projects/_projects", locals: { projects: @projects })
@@ -48,9 +41,15 @@ class Dashboard::ProjectsController < Dashboard::ApplicationController
 
   private
 
+  def load_projects(base_scope)
+    projects = base_scope.sorted_by_activity.includes(:namespace)
+
+    filter_projects(projects)
+  end
+
   def load_events
-    @events = Event.in_projects(@projects)
-    @events = @event_filter.apply_filter(@events).with_associations
+    @events = Event.in_projects(load_projects(current_user.authorized_projects))
+    @events = event_filter.apply_filter(@events).with_associations
     @events = @events.limit(20).offset(params[:offset] || 0)
   end
 end
diff --git a/app/models/event.rb b/app/models/event.rb
index 57f441187b4273ba29fcb8f9fa78549b9822b195..cf89ac5207f6e8be2ac8bb44d87a6935b209b596 100644
--- a/app/models/event.rb
+++ b/app/models/event.rb
@@ -39,7 +39,7 @@ class Event < ActiveRecord::Base
     where(project_id: projects).recent
   end
 
-  scope :with_associations, -> { includes(:author, :project, :target, project: :namespace) }
+  scope :with_associations, -> { includes(:author, :project, project: :namespace).preload(:target) }
   scope :for_milestone_id, ->(milestone_id) { where(target_type: "Milestone", target_id: milestone_id) }
 
   class << self