adds show view in admin for spending proposals

This commit is contained in:
Juanjo Bazán
2016-01-11 14:25:33 +01:00
parent abe5085040
commit e5caf84c02
8 changed files with 85 additions and 7 deletions

View File

@@ -1,10 +1,14 @@
class Admin::SpendingProposalsController < Admin::BaseController
has_filters %w{unresolved accepted rejected}, only: :index
before_action :load_spending_proposal, except: [:index]
before_action :load_spending_proposal, except: [:index, :show]
def index
@spending_proposals = SpendingProposal.send(@current_filter).order(created_at: :desc).page(params[:page])
@spending_proposals = SpendingProposal.includes([:geozone]).send(@current_filter).order(created_at: :desc).page(params[:page])
end
def show
@spending_proposal = SpendingProposal.includes([:author, :geozone]).find(params[:id])
end
def accept

View File

@@ -0,0 +1,28 @@
<h2><%= @spending_proposal.title %></h2>
<%= safe_html_with_links @spending_proposal.description.html_safe %>
<% if @spending_proposal.external_url.present? %>
<p><%= text_with_links @spending_proposal.external_url %></p>
<% end %>
<p><%= t("admin.spending_proposals.show.by") %>: <%= link_to @spending_proposal.author.name, admin_user_path(@spending_proposal.author) %></p>
<p><%= t("admin.spending_proposals.show.geozone") %>: <%= geozone_name(@spending_proposal) %></p>
<p><%= l @spending_proposal.created_at, format: :datetime %></p>
<p>
<% unless @spending_proposal.accepted? %>
<%= link_to t("admin.spending_proposals.actions.accept"),
accept_admin_spending_proposal_path(@spending_proposal),
method: :put,
data: { confirm: t("admin.actions.confirm") },
class: "button radius tiny success no-margin" %>
<% end %>
<% unless @spending_proposal.rejected? %>
<%= link_to t("admin.spending_proposals.actions.reject"),
reject_admin_spending_proposal_path(@spending_proposal),
method: :put,
data: { confirm: t("admin.actions.confirm") },
class: "button radius tiny warning" %>
<% end %>
</p>

View File

@@ -103,6 +103,9 @@ en:
unresolved: "Unresolved"
accepted: "Accepted"
rejected: "Rejected"
show:
geozone: "Scope"
by: "Sent by"
users:
index:
title: "Hidden users"

View File

@@ -103,6 +103,9 @@ es:
unresolved: "Sin resolver"
accepted: "Aceptadas"
rejected: "Rechazadas"
show:
geozone: "Ámbito"
by: "Enviada por"
users:
index:
title: "Usuarios bloqueados"

View File

@@ -263,7 +263,7 @@ en:
title: "Spending proposal title"
description: "Description"
external_url: "Link to additional documentation"
geozone: "Area of operation"
geozone: "Scope of operation"
submit_buttons:
new: Create
create: Create

View File

@@ -263,7 +263,7 @@ es:
title: "Título de la propuesta de gasto"
description: "Descripción detallada"
external_url: "Enlace a documentación adicional"
geozone: "Nivel de actuación"
geozone: "Ámbito de actuación"
submit_buttons:
new: Crear
create: Crear

View File

@@ -122,7 +122,7 @@ Rails.application.routes.draw do
end
end
resources :spending_proposals, only: :index do
resources :spending_proposals, only: [:index, :show] do
member do
put :accept
put :reject

View File

@@ -14,7 +14,7 @@ feature 'Admin spending proposals' do
expect(page).to have_content(spending_proposal.title)
end
scenario 'Accept' do
scenario 'Accept from index' do
spending_proposal = create(:spending_proposal)
visit admin_spending_proposals_path
@@ -28,7 +28,7 @@ feature 'Admin spending proposals' do
expect(spending_proposal.reload).to be_accepted
end
scenario 'Reject' do
scenario 'Reject from index' do
spending_proposal = create(:spending_proposal)
visit admin_spending_proposals_path
@@ -97,4 +97,44 @@ feature 'Admin spending proposals' do
expect(current_url).to include('page=2')
end
scenario 'Show' do
spending_proposal = create(:spending_proposal, geozone: create(:geozone))
visit admin_spending_proposals_path
click_link spending_proposal.title
expect(page).to have_content(spending_proposal.title)
expect(page).to have_content(spending_proposal.description)
expect(page).to have_content(spending_proposal.author.name)
expect(page).to have_content(spending_proposal.geozone.name)
end
scenario 'Accept from show' do
spending_proposal = create(:spending_proposal)
visit admin_spending_proposal_path(spending_proposal)
click_link 'Accept'
expect(page).to_not have_content(spending_proposal.title)
click_link 'Accepted'
expect(page).to have_content(spending_proposal.title)
expect(spending_proposal.reload).to be_accepted
end
scenario 'Reject from show' do
spending_proposal = create(:spending_proposal)
visit admin_spending_proposal_path(spending_proposal)
click_link 'Reject'
expect(page).to_not have_content(spending_proposal.title)
click_link('Rejected')
expect(page).to have_content(spending_proposal.title)
expect(spending_proposal.reload).to be_rejected
end
end