summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/admin_controller.rb8
-rw-r--r--test/controllers/admin_controller_test.rb20
2 files changed, 23 insertions, 5 deletions
diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb
index 6ab2135..435df57 100644
--- a/app/controllers/admin_controller.rb
+++ b/app/controllers/admin_controller.rb
@@ -20,12 +20,10 @@ class AdminController < ApplicationController
20 ordered_with_level.each { |node, level| @sitemap_depth[node.id] = level } 20 ordered_with_level.each { |node, level| @sitemap_depth[node.id] = level }
21 @sitemap = ordered_with_level.map(&:first).reject(&:update?) 21 @sitemap = ordered_with_level.map(&:first).reject(&:update?)
22 22
23 @mypages = Page.where("user_id = ? or editor_id = ?", @current_user, @current_user)
24
25 @mynodes = Node.joins(:pages) 23 @mynodes = Node.joins(:pages)
26 .where("pages.user_id = ? or pages.editor_id = ?", @current_user, @current_user) 24 .where("pages.user_id = ? or pages.editor_id = ?", current_user, current_user)
27 .order("updated_at desc") 25 .order("updated_at desc")
28 .uniq.first(50) 26 .distinct.first(50)
29 end 27 end
30 28
31 def conventions 29 def conventions
diff --git a/test/controllers/admin_controller_test.rb b/test/controllers/admin_controller_test.rb
index d6005ba..13cc1bb 100644
--- a/test/controllers/admin_controller_test.rb
+++ b/test/controllers/admin_controller_test.rb
@@ -14,4 +14,24 @@ class AdminControllerTest < ActionController::TestCase
14 get :index 14 get :index
15 assert_includes assigns(:drafts), node 15 assert_includes assigns(:drafts), node
16 end 16 end
17
18 test "my work list shows each matching node only once, even with several revisions by the same user" do
19 login_as :quentin
20 user = User.find_by_login("quentin")
21 node = Node.root.children.create!(:slug => "dedup_test")
22 node.lock_for_editing!(user)
23 node.autosave!({:title => "v1"}, user)
24 node.save_draft!(user)
25 node.publish_draft!
26 node.lock_for_editing!(user)
27 node.autosave!({:title => "v2"}, user)
28 node.save_draft!(user)
29 node.publish_draft!
30 # three pages now exist on this node, all touched by quentin --
31 # without DISTINCT, the join would return this node three times
32
33 get :index
34 matches = assigns(:mynodes).select { |n| n.id == node.id }
35 assert_equal 1, matches.length
36 end
17end 37end