diff --git a/app/controllers/wiki_controller.rb b/app/controllers/wiki_controller.rb index 22135aeedb..986b51f735 100644 --- a/app/controllers/wiki_controller.rb +++ b/app/controllers/wiki_controller.rb @@ -341,7 +341,7 @@ def index .references(:node_revisions) .group('node_revisions.nid, node_revisions.vid') .order(order_string) - .where("node_revisions.status = 1 AND node.status = 1 AND type = 'page'"), items: 10) + .where("node_revisions.status = 1 AND node.status = 1 AND type = 'page'"), items: 10).uniq @paginated = true end @@ -353,7 +353,7 @@ def stale .references(:node_revisions) .group('node_revisions.nid, node_revisions.vid') .order('node_revisions.timestamp ASC') - .where("node_revisions.status = 1 AND node.status = 1 AND type = 'page'"), items: 10) + .where("node_revisions.status = 1 AND node.status = 1 AND type = 'page'"), items: 10).uniq @paginated = true render template: 'wiki/index' @@ -365,8 +365,8 @@ def popular .joins(:revision) .group('node_revisions.nid, node_revisions.vid') .order('node_revisions.timestamp DESC') - .where("node.status = 1 AND node_revisions.status = 1 AND node.nid != 259 AND (type = 'page' OR type = 'tool' OR type = 'place')") - .sort_by(&:views).reverse + .where("node.status = 1 AND node_revisions.status = 1 AND node.nid != 259 AND type = 'page'") + .sort_by(&:views).reverse.uniq render template: 'wiki/index' end @@ -374,7 +374,7 @@ def liked @title = I18n.t('wiki_controller.well_liked_wiki_pages') @wikis = Node.limit(40) .order('node.cached_likes DESC') - .where("status = 1 AND nid != 259 AND (type = 'page' OR type = 'tool' OR type = 'place') AND cached_likes >= 0") + .where("status = 1 AND nid != 259 AND (type = 'page') AND cached_likes >= 0").uniq render template: 'wiki/index' end @@ -501,7 +501,7 @@ def author @title = @user.name @pagy, @wikis = pagy(Node .order('nid DESC') - .where("uid = ? AND type = 'page' OR type = 'place' OR type = 'tool' AND status = 1", @user.uid), items: 24) + .where("uid = ? AND type = 'page' AND status = 1", @user.uid), items: 24) render template: 'wiki/index' end end diff --git a/test/functional/wiki_controller_test.rb b/test/functional/wiki_controller_test.rb index 026a0f0842..7c0d330628 100644 --- a/test/functional/wiki_controller_test.rb +++ b/test/functional/wiki_controller_test.rb @@ -31,6 +31,13 @@ def teardown assert assigns(:wikis).each_cons(2).all?{|i,j| "j.node_revisions.title" >= "i.node_revisions.title" } end + test 'should display unique wikis' do + get :index + + assert_response :success + assert assigns(:wikis).each_cons(2).all?{|i,j| "j.node_revisions.id" != "i.node_revisions.id" } + end + test 'should paginate the wikis' do 12.times{ post :create,