From b198e4816cad6b62234e04142fe00c73ab1436b1 Mon Sep 17 00:00:00 2001 From: Manasa2850 Date: Sun, 2 May 2021 17:46:01 +0530 Subject: [PATCH 1/3] added uniq constraint --- app/controllers/wiki_controller.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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 From 1821f1e2e42bcb3e49645081d9923a94dac614d3 Mon Sep 17 00:00:00 2001 From: Manasa2850 Date: Mon, 3 May 2021 00:21:03 +0530 Subject: [PATCH 2/3] added functional test --- test/functional/wiki_controller_test.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/functional/wiki_controller_test.rb b/test/functional/wiki_controller_test.rb index 026a0f0842..e1f474fa40 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.title" != "i.node_revisions.title" } + end + test 'should paginate the wikis' do 12.times{ post :create, From 5ae1351f616b82c29613dcb077cb23ccb70eaf75 Mon Sep 17 00:00:00 2001 From: Manasa2850 Date: Wed, 5 May 2021 12:37:31 +0530 Subject: [PATCH 3/3] check based on id and not title --- test/functional/wiki_controller_test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/functional/wiki_controller_test.rb b/test/functional/wiki_controller_test.rb index e1f474fa40..7c0d330628 100644 --- a/test/functional/wiki_controller_test.rb +++ b/test/functional/wiki_controller_test.rb @@ -35,7 +35,7 @@ def teardown get :index assert_response :success - assert assigns(:wikis).each_cons(2).all?{|i,j| "j.node_revisions.title" != "i.node_revisions.title" } + assert assigns(:wikis).each_cons(2).all?{|i,j| "j.node_revisions.id" != "i.node_revisions.id" } end test 'should paginate the wikis' do