Calculate carousel size.
This commit is contained in:
@@ -30,4 +30,29 @@ module WelcomeHelper
|
||||
image_tag(image_path) if image_path.present?
|
||||
end
|
||||
|
||||
def calculate_size(debates, proposals, budget_investments)
|
||||
size = debates.any? && proposals.any? && budget_investments.any? ? 4 : 6
|
||||
"medium-#{size} large-#{size}"
|
||||
end
|
||||
|
||||
def calculate_centered(debates, proposals, budget_investments)
|
||||
centered = ""
|
||||
if debates.blank? && proposals.blank? ||
|
||||
debates.blank? && budget_investments.blank? ||
|
||||
proposals.blank? && budget_investments.blank?
|
||||
centered = "medium-centered large-centered"
|
||||
end
|
||||
centered
|
||||
end
|
||||
|
||||
def calculate_centered_and_size_class(debates, proposals, budget_investments)
|
||||
size = calculate_size(debates, proposals, budget_investments)
|
||||
centered = calculate_centered(debates, proposals, budget_investments)
|
||||
"#{size} #{centered if centered.present?}"
|
||||
end
|
||||
|
||||
def display_recommendeds(debates, proposals, budget_investments)
|
||||
debates.any? || proposals.any? || budget_investments.any?
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -3,26 +3,33 @@
|
||||
|
||||
<h2 class="text-center"><%= t("welcome.recommended.title") %></h2>
|
||||
<div class="small-12 column carousel-image">
|
||||
<%= render "recommended_carousel", recommendeds: recommended_debates,
|
||||
key: "debates",
|
||||
image_field: nil,
|
||||
image_version: nil,
|
||||
image_default: "https://dummyimage.com/600x400/000/fff",
|
||||
klass: "large-offset-1" %>
|
||||
<% centered_and_size_class = calculate_centered_and_size_class(recommended_debates, recommended_proposals, recommended_budget_investments) %>
|
||||
<% if recommended_debates.any? %>
|
||||
<%= render "recommended_carousel", recommendeds: recommended_debates,
|
||||
key: "debates",
|
||||
image_field: nil,
|
||||
image_version: nil,
|
||||
image_default: "https://dummyimage.com/600x400/000/fff",
|
||||
dynamic_display: centered_and_size_class %>
|
||||
<% end %>
|
||||
|
||||
<%= render "recommended_carousel", recommendeds: recommended_proposals,
|
||||
key: "proposals",
|
||||
image_field: nil,
|
||||
image_version: nil,
|
||||
image_default: "https://dummyimage.com/600x400/000/fff",
|
||||
klass: "" %>
|
||||
<% if recommended_proposals.any? %>
|
||||
<%= render "recommended_carousel", recommendeds: recommended_proposals,
|
||||
key: "proposals",
|
||||
image_field: nil,
|
||||
image_version: nil,
|
||||
image_default: "https://dummyimage.com/600x400/000/fff",
|
||||
dynamic_display: centered_and_size_class %>
|
||||
<% end %>
|
||||
|
||||
<%= render "recommended_carousel", recommendeds: recommended_budget_investments,
|
||||
key: "budget-investments",
|
||||
image_field: nil, #example value :image (PR#1691)
|
||||
image_version: nil, #example value :thumb (PR#1691)
|
||||
image_default: "https://dummyimage.com/600x400/000/fff",
|
||||
klass: "end" %>
|
||||
<% if recommended_budget_investments.any? %>
|
||||
<%= render "recommended_carousel", recommendeds: recommended_budget_investments,
|
||||
key: "budget-investments",
|
||||
image_field: nil, #example value :image (PR#1691)
|
||||
image_version: nil, #example value :thumb (PR#1691)
|
||||
image_default: "https://dummyimage.com/600x400/000/fff",
|
||||
dynamic_display: centered_and_size_class %>
|
||||
<% end %>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="small-12 medium-4 large-3 column text-center <%= key %> <%= klass if klass %> ">
|
||||
<div class="small-12 <%= dynamic_display %> column text-center <%= key %> ">
|
||||
<div class="card small-centered <%= key %>-inner">
|
||||
|
||||
<h4><%= t("welcome.recommended.#{key.underscore}.title") %></h4>
|
||||
|
||||
@@ -47,7 +47,15 @@
|
||||
<% end %>
|
||||
|
||||
<% if current_user.present? %>
|
||||
<%= render "recommended", recommended_debates: current_user.recommended_debates,
|
||||
recommended_proposals: current_user.recommended_proposals,
|
||||
recommended_budget_investments: current_user.recommended_budget_investments %>
|
||||
|
||||
<% recommended_debates = current_user.recommended_debates %>
|
||||
<% recommended_proposals = current_user.recommended_proposals %>
|
||||
<% recommended_budget_investments = current_user.recommended_budget_investments %>
|
||||
|
||||
<% if display_recommendeds(recommended_debates, recommended_proposals, recommended_budget_investments) %>
|
||||
<%= render "recommended", recommended_debates: recommended_debates,
|
||||
recommended_proposals: recommended_proposals,
|
||||
recommended_budget_investments: recommended_budget_investments %>
|
||||
<% end %>
|
||||
|
||||
<% end %>
|
||||
|
||||
@@ -81,6 +81,44 @@ feature "Home" do
|
||||
|
||||
expect(current_path).to eq debate_path(debate)
|
||||
end
|
||||
|
||||
scenario 'Do not display recommended section when there are not debates, proposals and investments' do
|
||||
visit root_path
|
||||
|
||||
expect(page).not_to have_content "Recommendations that may interest you"
|
||||
end
|
||||
|
||||
feature 'Dynamic display' do
|
||||
|
||||
scenario 'Display debates centered when there are not proposals and investments' do
|
||||
debate = create(:debate)
|
||||
|
||||
visit root_path
|
||||
|
||||
expect(page).to have_selector('.medium-6.large-6.medium-centered.large-centered')
|
||||
end
|
||||
|
||||
scenario 'Correct display debates and proposals when there are not investments' do
|
||||
proposal = create(:proposal)
|
||||
budget_investment = create(:budget_investment)
|
||||
|
||||
visit root_path
|
||||
|
||||
expect(page).to have_selector('.medium-6.large-6')
|
||||
expect(page).not_to have_selector('.medium-centered.large-centered')
|
||||
end
|
||||
|
||||
scenario 'Correct display debates, proposals and investments' do
|
||||
debate = create(:debate)
|
||||
proposal = create(:proposal)
|
||||
budget_investment = create(:budget_investment)
|
||||
|
||||
visit root_path
|
||||
|
||||
expect(page).to have_selector('.medium-4.large-4')
|
||||
expect(page).not_to have_selector('.medium-centered.large-centered')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user