Merge branch 'voting-proposals' of github.com:consul/consul into voting-proposals

This commit is contained in:
Alberto Garcia Cabeza
2016-09-12 18:07:22 +02:00
10 changed files with 78 additions and 18 deletions

View File

@@ -27,8 +27,8 @@ class ProposalsController < ApplicationController
def index_customization
load_retired
load_featured
load_proposal_ballots
load_featured if @proposal_ballots.blank?
end
def vote

View File

@@ -44,7 +44,6 @@ class Proposal < ActiveRecord::Base
scope :sort_by_random, -> { reorder("RANDOM()") }
scope :sort_by_relevance, -> { all }
scope :sort_by_flags, -> { order(flags_count: :desc, updated_at: :desc) }
scope :archived, -> { where("proposals.created_at <= ?", 1.year.ago)}
scope :last_week, -> { where("proposals.created_at >= ?", 7.days.ago)}
scope :retired, -> { where.not(retired_at: nil) }
scope :not_retired, -> { where(retired_at: nil) }

View File

@@ -1,3 +1,3 @@
<div id="<%= dom_id(proposal) %>" class="proposal-sucessfull">
<div id="<%= dom_id(proposal) %>_next_voting" class="proposal-sucessfull">
<h3><%= link_to proposal.title, proposal_ballots_path %></h3>
</div>

View File

@@ -32,7 +32,7 @@
<% end %>
<% if @proposal_ballots.present? %>
<div class="row featured-proposals-ballot-banner margin-bottom">
<div id="next-voting" class="row featured-proposals-ballot-banner margin-bottom">
<div class="small-12 column padding">
<div class="icon-successfull"></div>
<h2>

View File

@@ -102,19 +102,19 @@
<aside class="small-12 medium-3 column">
<div class="sidebar-divider"></div>
<h3><%= t("votes.supports") %></h3>
<% if @proposal.successfull? %>
<p>
<%= t("proposal_ballots.successfull",
voting: link_to(t("proposal_ballots.voting"), proposal_ballots_path)).html_safe %>
</p>
<% else %>
<div class="text-center">
<div id="<%= dom_id(@proposal) %>_votes">
<div id="<%= dom_id(@proposal) %>_votes">
<% if @proposal.successfull? %>
<p>
<%= t("proposal_ballots.successfull",
voting: link_to(t("proposal_ballots.voting"), proposal_ballots_path)).html_safe %>
</p>
<% else %>
<div class="text-center">
<%= render 'votes',
{ proposal: @proposal, vote_url: vote_proposal_path(@proposal, value: 'yes') } %>
</div>
</div>
<% end %>
<% end %>
</div>
<div id="social-share" class="sidebar-divider"></div>
<h3><%= t("proposals.show.share") %></h3>

View File

@@ -302,7 +302,6 @@ en:
hot_score: most active
most_commented: most commented
relevance: relevance
archived: Archived
retired_proposals: Retired proposals
retired_proposals_link: "Proposals retired by the author"
retired_links:

View File

@@ -302,7 +302,6 @@ es:
hot_score: Más activas hoy
most_commented: Más comentadas
relevance: Más relevantes
archived: Archivadas
retired_proposals: Propuestas retiradas
retired_proposals_link: "Propuestas retiradas por sus autores"
retired_links:

View File

@@ -149,7 +149,7 @@ tags = Faker::Lorem.words(25)
description = "<p>#{Faker::Lorem.paragraphs.join('</p><p>')}</p>"
proposal = Proposal.create!(author: author,
title: Faker::Lorem.sentence(3).truncate(60),
question: Faker::Lorem.sentence(3),
question: Faker::Lorem.sentence(3) + "?",
summary: Faker::Lorem.sentence(3),
responsible_name: Faker::Name.name,
external_url: Faker::Internet.url,
@@ -168,7 +168,7 @@ tags = ActsAsTaggableOn::Tag.where(kind: 'category')
description = "<p>#{Faker::Lorem.paragraphs.join('</p><p>')}</p>"
proposal = Proposal.create!(author: author,
title: Faker::Lorem.sentence(3).truncate(60),
question: Faker::Lorem.sentence(3),
question: Faker::Lorem.sentence(3) + "?",
summary: Faker::Lorem.sentence(3),
responsible_name: Faker::Name.name,
external_url: Faker::Internet.url,

View File

@@ -0,0 +1,58 @@
# coding: utf-8
require 'rails_helper'
feature 'Proposal ballots' do
scenario 'Banner shows in proposal index' do
create_featured_proposals
visit proposals_path
expect(page).to_not have_css("#next-voting")
expect(page).to have_css("#featured-proposals")
create_successfull_proposals
visit proposals_path
expect(page).to have_css("#next-voting")
expect(page).to_not have_css("#featured-proposals")
end
scenario 'Successfull proposals do not show support buttons in index' do
successfull_proposals = create_successfull_proposals
visit proposals_path
successfull_proposals.each do |proposal|
within("#proposal_#{proposal.id}_votes") do
expect(page).to_not have_css(".supports")
expect(page).to have_content "This proposal has reached the required supports"
end
end
end
scenario 'Successfull proposals do not show support buttons in show' do
successfull_proposals = create_successfull_proposals
successfull_proposals.each do |proposal|
visit proposal_path(proposal)
within("#proposal_#{proposal.id}_votes") do
expect(page).to_not have_css(".supports")
expect(page).to have_content "This proposal has reached the required supports"
end
end
end
scenario 'Successfull proposals are listed in the proposal ballots index' do
successfull_proposals = create_successfull_proposals
visit proposal_ballots_path
successfull_proposals.each do |proposal|
expect(page).to have_content(proposal.title)
expect(page).to have_content(proposal.question)
end
end
end

View File

@@ -192,6 +192,11 @@ module CommonActions
create(:debate, :with_confidence_score, cached_votes_up: 80)]
end
def create_successfull_proposals
[create(:proposal, title: "Winter is coming", question: "Do you speak it?", cached_votes_up: Proposal.votes_needed_for_success + 100),
create(:proposal, title: "Fire and blood", question: "You talking to me?", cached_votes_up: Proposal.votes_needed_for_success + 1)]
end
def tag_names(tag_cloud)
tag_cloud.tags.map(&:name)
end