Merge pull request #3269 from consul/homepage-feeds

[Backport] Change layout on homepage if feed debates and proposals are enabled
This commit is contained in:
Alberto
2019-02-06 14:32:46 +01:00
committed by GitHub
3 changed files with 65 additions and 10 deletions

View File

@@ -12,8 +12,20 @@ module FeedsHelper
feed.kind == "processes"
end
def feed_debates_enabled?
Setting["feature.homepage.widgets.feeds.debates"].present?
end
def feed_proposals_enabled?
Setting["feature.homepage.widgets.feeds.proposals"].present?
end
def feed_processes_enabled?
Setting['feature.homepage.widgets.feeds.processes'].present?
Setting["feature.homepage.widgets.feeds.processes"].present?
end
def feed_debates_and_proposals_enabled?
feed_debates_enabled? && feed_proposals_enabled?
end
end

View File

@@ -2,7 +2,8 @@
<% @feeds.each do |feed| %>
<% if feed_proposals?(feed) %>
<div class="small-12 medium-8 column margin-top">
<div id="feed_proposals" class="small-12 column margin-top
<%= 'medium-8' if feed_debates_and_proposals_enabled? %>">
<div class="feed-content" data-equalizer-watch>
<h3 class="title"><%= t("welcome.feed.most_active.#{feed.kind}") %></h3>
@@ -16,7 +17,8 @@
</div>
</div>
<% end %>
<div class="feed-description small-12 column <%= 'large-9' if feature?(:allow_images) && item.image.present? %>">
<div class="feed-description small-12 column
<%= 'large-9' if feature?(:allow_images) && item.image.present? %>">
<strong><%= link_to item.title, url_for(item) %></strong><br>
<p><%= item.summary %></p>
</div>
@@ -29,7 +31,8 @@
<% end %>
<% if feed_debates?(feed) %>
<div class="small-12 medium-4 column margin-top">
<div id="feed_debates" class="small-12 column margin-top
<%= 'medium-4' if feed_debates_and_proposals_enabled? %>">
<div class="feed-content" data-equalizer-watch>
<h3 class="title"><%= t("welcome.feed.most_active.#{feed.kind}") %></h3>

View File

@@ -39,31 +39,71 @@ feature 'Homepage' do
visit admin_homepage_path
within("#widget_feed_#{proposals_feed.id}") do
select '1', from: 'widget_feed_limit'
select "1", from: "widget_feed_limit"
accept_confirm { click_button "Enable" }
end
visit root_path
within("#feed_proposals") do
expect(page).to have_content "Most active proposals"
expect(page).to have_css(".proposal", count: 1)
end
expect(page).not_to have_css("#feed_proposals.medium-8")
end
scenario "Debates", :js do
5.times { create(:debate) }
visit admin_homepage_path
within("#widget_feed_#{debates_feed.id}") do
select '2', from: 'widget_feed_limit'
select "2", from: "widget_feed_limit"
accept_confirm { click_button "Enable" }
end
visit root_path
within("#feed_debates") do
expect(page).to have_content "Most active debates"
expect(page).to have_css(".debate", count: 2)
end
expect(page).not_to have_css("#feed_debates.medium-4")
end
scenario "Proposals and debates", :js do
3.times { create(:proposal) }
3.times { create(:debate) }
visit admin_homepage_path
within("#widget_feed_#{proposals_feed.id}") do
select "3", from: "widget_feed_limit"
accept_confirm { click_button "Enable" }
end
within("#widget_feed_#{debates_feed.id}") do
select "3", from: "widget_feed_limit"
accept_confirm { click_button "Enable" }
end
visit root_path
within("#feed_proposals") do
expect(page).to have_content "Most active proposals"
expect(page).to have_css(".proposal", count: 3)
end
within("#feed_debates") do
expect(page).to have_content "Most active debates"
expect(page).to have_css(".debate", count: 3)
end
expect(page).to have_css("#feed_proposals.medium-8")
expect(page).to have_css("#feed_debates.medium-4")
end
scenario "Processes", :js do
5.times { create(:legislation_process) }