Merge pull request #3122 from consul/proposal-create-question

[Backport] Proposal create question
This commit is contained in:
Alberto
2018-12-19 19:55:24 +01:00
committed by GitHub
7 changed files with 56 additions and 38 deletions

View File

@@ -1093,6 +1093,7 @@ form {
.callout { .callout {
font-size: $small-font-size; font-size: $small-font-size;
overflow: hidden;
a:not(.button) { a:not(.button) {
font-weight: bold; font-weight: bold;
@@ -1132,6 +1133,10 @@ form {
.close { .close {
text-decoration: none !important; text-decoration: none !important;
} }
.button {
margin-bottom: 0;
}
} }
.no-error { .no-error {

View File

@@ -5,6 +5,18 @@
<div class="proposal-show"> <div class="proposal-show">
<h2><%= @proposal.title %></h2> <h2><%= @proposal.title %></h2>
<% if @proposal.successful? %>
<div class="callout success">
<%= t("proposals.proposal.successful") %>
<div class="float-right">
<%= link_to t("poll_questions.create_question"),
new_admin_question_path(proposal_id: @proposal.id),
class: "button medium" %>
</div>
</div>
<% end %>
<%= render "proposals/info", proposal: @proposal %> <%= render "proposals/info", proposal: @proposal %>
</div> </div>

View File

@@ -66,18 +66,10 @@
class="small-12 medium-3 column supports-container"> class="small-12 medium-3 column supports-container">
<% if proposal.successful? %> <% if proposal.successful? %>
<div class="padding text-center"> <div class="padding text-center">
<p> <p>
<%= t("proposals.proposal.successful") %> <%= t("proposals.proposal.successful") %>
</p> </p>
</div> </div>
<% if can? :create, Poll::Question %>
<p class="text-center">
<%= link_to t('poll_questions.create_question'),
new_admin_question_path(proposal_id: proposal.id),
class: "button hollow" %>
</p>
<% end %>
<% elsif proposal.archived? %> <% elsif proposal.archived? %>
<div class="padding text-center"> <div class="padding text-center">
<strong><%= t("proposals.proposal.supports", count: proposal.total_votes) %></strong> <strong><%= t("proposals.proposal.supports", count: proposal.total_votes) %></strong>

View File

@@ -88,13 +88,6 @@
<p> <p>
<%= t("proposals.proposal.successful") %> <%= t("proposals.proposal.successful") %>
</p> </p>
<% if can? :create, Poll::Question %>
<p class="text-center">
<%= link_to t('poll_questions.create_question'),
new_admin_question_path(proposal_id: @proposal.id),
class: "button hollow expanded" %>
</p>
<% end %>
<% elsif @proposal.archived? %> <% elsif @proposal.archived? %>
<div class="padding text-center"> <div class="padding text-center">
<p> <p>

View File

@@ -53,11 +53,12 @@ feature 'Admin poll questions' do
expect(page).to have_content(title) expect(page).to have_content(title)
end end
scenario 'Create from successful proposal index' do scenario 'Create from successful proposal' do
poll = create(:poll, name: 'Proposals') poll = create(:poll, name: 'Proposals')
proposal = create(:proposal, :successful) proposal = create(:proposal, :successful)
visit proposals_path visit admin_proposal_path(proposal)
click_link "Create question" click_link "Create question"
expect(page).to have_current_path(new_admin_question_path, ignore_query: true) expect(page).to have_current_path(new_admin_question_path, ignore_query: true)
@@ -72,17 +73,6 @@ feature 'Admin poll questions' do
expect(page).to have_link(proposal.author.name, href: user_path(proposal.author)) expect(page).to have_link(proposal.author.name, href: user_path(proposal.author))
end end
scenario "Create from successful proposal show" do
poll = create(:poll, name: 'Proposals')
proposal = create(:proposal, :successful)
visit proposal_path(proposal)
click_link "Create question"
expect(page).to have_current_path(new_admin_question_path, ignore_query: true)
expect(page).to have_field('Question', with: proposal.title)
end
scenario 'Update' do scenario 'Update' do
question1 = create(:poll_question) question1 = create(:poll_question)

View File

@@ -28,12 +28,32 @@ feature "Admin proposals" do
end end
end end
scenario "Show" do context "Show" do
create(:proposal, title: "Create a chaotic future", summary: "Chaos isn't controlled")
visit admin_proposals_path scenario "View proposal" do
click_link "Create a chaotic future" create(:proposal, title: "Create a chaotic future", summary: "Chaos isn't controlled")
expect(page).to have_content "Chaos isn't controlled" visit admin_proposals_path
click_link "Create a chaotic future"
expect(page).to have_content "Chaos isn't controlled"
expect(page).not_to have_content "This proposal has reached the required supports"
expect(page).not_to have_link "Create question"
end
scenario "Successful proposals show create question button" do
successful_proposals = create_successful_proposals
admin = create(:administrator)
login_as(admin.user)
visit admin_proposals_path
successful_proposals.each do |proposal|
visit admin_proposal_path(proposal)
expect(page).to have_content "This proposal has reached the required supports"
expect(page).to have_link "Create question"
end
end
end end
end end

View File

@@ -1789,8 +1789,11 @@ feature 'Successful proposals' do
end end
end end
scenario 'Successful proposals show create question button to admin users' do scenario 'Successful proposals do not show create question button in index' do
successful_proposals = create_successful_proposals successful_proposals = create_successful_proposals
admin = create(:administrator)
login_as(admin.user)
visit proposals_path visit proposals_path
@@ -1799,17 +1802,20 @@ feature 'Successful proposals' do
expect(page).not_to have_link "Create question" expect(page).not_to have_link "Create question"
end end
end end
end
login_as(create(:administrator).user) scenario 'Successful proposals do not show create question button in show' do
successful_proposals = create_successful_proposals
admin = create(:administrator)
visit proposals_path login_as(admin.user)
successful_proposals.each do |proposal| successful_proposals.each do |proposal|
visit proposal_path(proposal)
within("#proposal_#{proposal.id}_votes") do within("#proposal_#{proposal.id}_votes") do
expect(page).to have_link "Create question" expect(page).not_to have_link "Create question"
end end
end end
end end
context "Skip user verification" do context "Skip user verification" do