Merge pull request #3122 from consul/proposal-create-question
[Backport] Proposal create question
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user