Add recommended debates, proposals and investement to Home page.

This commit is contained in:
taitus
2017-07-21 20:06:33 +02:00
parent 3b2ed08b54
commit ff6471982c
8 changed files with 122 additions and 99 deletions

View File

@@ -4,9 +4,6 @@ class WelcomeController < ApplicationController
layout "devise", only: [:welcome, :verification]
def index
if current_user
redirect_to :proposals
end
end
def welcome

View File

@@ -0,0 +1,11 @@
module WelcomeHelper
def active_class(index)
"is-active is-in" if index == 0
end
def slide_display(index)
"display: none;" if index > 0
end
end

View File

@@ -313,6 +313,24 @@ class User < ActiveRecord::Base
follows.map{|follow| follow.followable.tags.map(&:name)}.flatten.compact.uniq
end
def recommended_debates
Debate.tagged_with(interests, any: true).
where("author_id != ?", self).
order("cached_votes_total DESC").limit(3)
end
def recommended_proposals
Proposal.tagged_with(interests, any: true).
where("author_id != ?", self).
order("cached_votes_up DESC").limit(3)
end
def recommended_budget_investments
Budget::Investment.tagged_with(interests, any: true).
where("author_id != ?", self).
order("cached_votes_up DESC").limit(3)
end
private
def clean_document_number

View File

@@ -16,13 +16,13 @@
<div class="row">
<div class="small-12 column">
<% if @search_terms || @advanced_search_terms %>
<h2><%= t("shared.search_results") %></h2>
<p>
<%= page_entries_info @proposals %>
<% if !@advanced_search_terms %>
<%= t("proposals.index.search_results_html", count: @proposals.size, search_term: @search_terms) %>
<% end %>
<p>
<h2><%= t("shared.search_results") %></h2>
<p>
<%= page_entries_info @proposals %>
<% if !@advanced_search_terms %>
<%= t("proposals.index.search_results_html", count: @proposals.size, search_term: @search_terms) %>
<% end %>
<p>
<% elsif @tag_filter %>
<h2><%= t("shared.search_results") %></h2>
<p>

View File

@@ -1,128 +1,107 @@
<div class="row">
<h2 class="text-center">Recomendaciones que te pueden interesar</h2>
<div class="small-12 medium-4 column text-center budgets">
<h2 class="text-center"><%= t("welcome.recommended.title") %></h2>
<div class="small-12 medium-4 column text-center debates">
<div class="card small-11 small-centered debates">
<h4>Debates recomendados</h4>
<h4><%= t("welcome.recommended.debates.title") %></h4>
<div class="orbit" role="region" aria-label="Favorite Space Pictures" data-orbit="" data-use-m-u-i="false" data-resize="" id="" data-events="resize">
<div class="orbit-wrapper">
<ul class="orbit-container no-bullet" tabindex="0" >
<li class="orbit-slide no-motionui is-active is-in" data-slide="0" style="position: relative;" aria-live="polite">
<div class="card">
<div class="card-section">
<h5>Titulo debate 1 </h5>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</div>
</div>
</li>
<% current_user.recommended_debates.each_with_index do |debate, index| %>
<li class="orbit-slide no-motionui" data-slide="slide-1" style="position: relative; display: none;">
<div class="card">
<div class="card-section">
<h5>Titulo debate 2</h5>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
<li class="orbit-slide no-motionui <%= active_class(index) %>" data-slide="<%= index %>" style="position: relative; <%= slide_display(index) %>" aria-live="polite">
<div class="card">
<div class="card-section">
<h5><%= debate.title %></h5>
<p><%= debate.description %></p>
<!-- <div class="truncate"></div> -->
</div>
</div>
</div>
</li>
</li>
<li class="orbit-slide no-motionui" data-slide="slide-2" style="position: relative; display: none;">
<div class="card">
<div class="card-section">
<h5>Titulo debate 3</h5>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</div>
</div>
</li>
<% end %>
</ul>
</div>
<div class="orbit-controls">
<button class="orbit-previous" aria-label="previous" tabindex="0"><span class="show-for-sr">Previous Slide</span>◀</button>
<button class="orbit-next" aria-label="next" tabindex="0"><span class="show-for-sr">Next Slide</span>▶</button>
</div>
<div class="orbit-controls">
<button class="orbit-previous" aria-label="previous" tabindex="0"><span class="show-for-sr">Previous Slide</span>◀</button>
<button class="orbit-next" aria-label="next" tabindex="0"><span class="show-for-sr">Next Slide</span>▶</button>
</div>
</div>
</div>
</div>
<div class="small-12 medium-4 column text-center">
<div class="small-12 medium-4 column text-center proposals">
<div class="card small-11 small-centered proposals">
<h4>Propuestas recomendadas</h4>
<h4><%= t("welcome.recommended.proposals.title") %></h4>
<div class="orbit" role="region" aria-label="Favorite Space Pictures" data-orbit="" data-use-m-u-i="false" data-resize="" id="" data-events="resize">
<div class="orbit-wrapper">
<ul class="orbit-container no-bullet" tabindex="0" >
<li class="orbit-slide no-motionui is-active is-in" data-slide="0" style="position: relative;" aria-live="polite">
<div class="card">
<div class="card-section">
<h5>Titulo propuesta 1</h5>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</div>
</div>
</li>
<li class="orbit-slide no-motionui" data-slide="slide-1" style="position: relative; display: none;">
<div class="card">
<div class="card-section">
<h5>Titulo propuesta 2</h5>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
<ul class="orbit-container no-bullet" tabindex="0" >
<% current_user.recommended_proposals.each_with_index do |proposal, index| %>
<li class="orbit-slide no-motionui <%= active_class(index) %>" data-slide="<%= index %>" style="position: relative; <%= slide_display(index) %>" aria-live="polite">
<div class="card">
<div class="card-section">
<h5><%= proposal.title %></h5>
<p><%= proposal.description %></p>
<!-- <div class="truncate"></div> -->
</div>
</div>
</div>
</li>
<li class="orbit-slide no-motionui" data-slide="slide-2" style="position: relative; display: none;">
<div class="card">
<div class="card-section">
<h5>Titulo propuesta 3</h5>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</div>
</div>
</li>
</li>
<% end %>
</ul>
</div>
<div class="orbit-controls">
<div class="orbit-controls">
<button class="orbit-previous" aria-label="previous" tabindex="0"><span class="show-for-sr">Previous Slide</span>◀</button>
<button class="orbit-next" aria-label="next" tabindex="0"><span class="show-for-sr">Next Slide</span>▶</button>
</div>
</div>
</div>
</div>
</div>
<div class="small-12 medium-4 column text-center">
<div class="small-12 medium-4 column text-center budget-investments">
<div class="card small-11 small-centered budget-investments">
<h4><%= t("welcome.recommended.budget_investments.title") %></h4>
<div class="card small-11 small-centered budget">
<h4>Presupuestos recomendados</h4>
<div class="orbit" role="region" aria-label="Favorite Space Pictures" data-orbit="" data-use-m-u-i="false" data-resize="" id="" data-events="resize">
<div class="orbit-wrapper">
<ul class="orbit-container no-bullet" tabindex="0" >
<li class="orbit-slide no-motionui is-active is-in" data-slide="0" style="position: relative;" aria-live="polite">
<div class="card">
<div class="card-section">
<h5>Titulo presupuesto 1 </h5>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</div>
</div>
</li>
<li class="orbit-slide no-motionui" data-slide="slide-1" style="position: relative; display: none;">
<div class="card">
<div class="card-section">
<h5>Titulo presupuesto 2</h5>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
<ul class="orbit-container no-bullet" tabindex="0" >
<% current_user.recommended_budget_investments.each_with_index do |budget_investment, index| %>
<li class="orbit-slide no-motionui <%= active_class(index) %>" data-slide="<%= index %>" style="position: relative; <%= slide_display(index) %>" aria-live="polite">
<div class="card">
<div class="card-section">
<h5><%= budget_investment.title %></h5>
<p><%= budget_investment.description %></p>
<!-- <div class="truncate"></div> -->
</div>
</div>
</div>
</li>
<li class="orbit-slide no-motionui" data-slide="slide-2" style="position: relative; display: none;">
<div class="card">
<div class="card-section">
<h5>Titulo presupuesto 3 </h5>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</div>
</div>
</li>
</li>
<% end %>
</ul>
</div>
<div class="orbit-controls">
<div class="orbit-controls">
<button class="orbit-previous" aria-label="previous" tabindex="0"><span class="show-for-sr">Previous Slide</span>◀</button>
<button class="orbit-next" aria-label="next" tabindex="0"><span class="show-for-sr">Next Slide</span>▶</button>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -45,3 +45,5 @@
</div>
</main>
<% end %>
<%= render "recommended_no_image" %>

View File

@@ -713,6 +713,14 @@ en:
proposal:
description: Open space for citizen proposals about the kind of city we want to live in.
title: You propose
recommended:
title: Recommendations that may interest you
debates:
title: Recommended debates
proposals:
title: Recommended proposals
budget_investments:
title: Recommended investments
verification:
i_dont_have_an_account: I don't have an account
i_have_an_account: I already have an account

View File

@@ -713,6 +713,14 @@ es:
proposal:
description: Espacio abierto para propuestas ciudadanas sobre el tipo de ciudad en el que queremos vivir.
title: Propones
recommended:
title: Recomendaciones que te pueden interesar
debates:
title: Debates recomendados
proposals:
title: Propuestas recomendados
budget_investments:
title: Presupuestos recomendados
verification:
i_dont_have_an_account: No tengo cuenta, quiero crear una y verificarla
i_have_an_account: Ya tengo una cuenta que quiero verificar