diff --git a/app/controllers/debates_controller.rb b/app/controllers/debates_controller.rb
index 09dfc940e..33817166b 100644
--- a/app/controllers/debates_controller.rb
+++ b/app/controllers/debates_controller.rb
@@ -6,6 +6,7 @@ class DebatesController < ApplicationController
before_action :parse_tag_filter, only: :index
before_action :authenticate_user!, except: [:index, :show, :map]
before_action :set_view, only: :index
+ before_action :debates_recommendations, only: :index, if: :current_user
feature_flag :debates
@@ -57,4 +58,7 @@ class DebatesController < ApplicationController
@view = (params[:view] == "minimal") ? "minimal" : "default"
end
+ def debates_recommendations
+ @recommended_debates = Debate.recommendations(current_user).sort_by_random.limit(3)
+ end
end
diff --git a/app/views/debates/index.html.erb b/app/views/debates/index.html.erb
index e5355b975..478103ed1 100644
--- a/app/views/debates/index.html.erb
+++ b/app/views/debates/index.html.erb
@@ -35,6 +35,10 @@
<%= render "shared/section_header", i18n_namespace: "debates.index.section_header", image: "debates" %>
<% end %>
+ <% if feature?("user.recommendations_on_debates") && @recommended_debates.present? %>
+ <%= render "shared/recommended_index", recommended: @recommended_debates %>
+ <% end %>
+
diff --git a/config/locales/en/settings.yml b/config/locales/en/settings.yml
index 938717187..aea65f7f3 100644
--- a/config/locales/en/settings.yml
+++ b/config/locales/en/settings.yml
@@ -43,6 +43,7 @@ en:
user:
recommendations: Recommendations
skip_verification: Skip user verification
+ recommendations_on_debates: Recommendeds on debates
community: Community on proposals and investments
map: Proposals and budget investments geolocation
allow_images: Allow upload and show images
diff --git a/config/locales/es/settings.yml b/config/locales/es/settings.yml
index 57dfaae50..cc70f6aa3 100644
--- a/config/locales/es/settings.yml
+++ b/config/locales/es/settings.yml
@@ -43,6 +43,7 @@ es:
user:
recommendations: Recomendaciones
skip_verification: Omitir verificación de usuarios
+ recommendations_on_debates: Recomendaciones en debates
community: Comunidad en propuestas y proyectos de gasto
map: Geolocalización de propuestas y proyectos de gasto
allow_images: Permitir subir y mostrar imágenes
diff --git a/db/seeds.rb b/db/seeds.rb
index 868dec2ad..00f5cce2d 100644
--- a/db/seeds.rb
+++ b/db/seeds.rb
@@ -82,6 +82,7 @@ Setting['feature.budgets'] = true
Setting['feature.signature_sheets'] = true
Setting['feature.legislation'] = true
Setting['feature.user.recommendations'] = true
+Setting['feature.user.recommendations_on_debates'] = true
Setting['feature.community'] = true
Setting['feature.map'] = nil
Setting['feature.allow_images'] = true
diff --git a/spec/features/debates_spec.rb b/spec/features/debates_spec.rb
index c4018ce76..2f55dba85 100644
--- a/spec/features/debates_spec.rb
+++ b/spec/features/debates_spec.rb
@@ -403,10 +403,12 @@ feature 'Debates' do
background do
Setting['feature.user.recommendations'] = true
+ Setting['feature.user.recommendations_on_debates'] = true
end
after do
Setting['feature.user.recommendations'] = nil
+ Setting['feature.user.recommendations_on_debates'] = nil
end
scenario 'Debates can not ordered by recommendations when there is not an user logged', :js do
@@ -415,6 +417,21 @@ feature 'Debates' do
expect(page).not_to have_selector('a', text: 'recommendations')
end
+ scenario 'Show recommended debates on index header' do
+ proposal = create(:proposal, tag_list: "Sport")
+ user = create(:user)
+ create(:follow, followable: proposal, user: user)
+ login_as(user)
+
+ visit debates_path
+
+ expect(page).to have_css('.recommendation', count: 3)
+ expect(page).to have_link "Best"
+ expect(page).to have_link "Medium"
+ expect(page).to have_link "Worst"
+ expect(page).to have_link "See more recommendations"
+ end
+
scenario 'Should display text when there are not recommendeds results', :js do
user = create(:user)
proposal = create(:proposal, tag_list: "Distinct_to_sport")