adds assignment info to admin's valuations index

This commit is contained in:
Juanjo Bazán
2016-02-25 14:44:11 +01:00
parent 96757bba5b
commit 77ee316ed8
5 changed files with 66 additions and 1 deletions

View File

@@ -5,7 +5,7 @@ class Admin::SpendingProposalsController < Admin::BaseController
load_and_authorize_resource
def index
@spending_proposals = @spending_proposals.includes([:geozone], [administrator: :user]).order(created_at: :desc).page(params[:page])
@spending_proposals = @spending_proposals.includes(:geozone, administrator: :user, valuators: :user).order(created_at: :desc).page(params[:page])
end
def show

View File

@@ -9,6 +9,27 @@
<strong><%= spending_proposal.id %> -
<%= link_to spending_proposal.title, admin_spending_proposal_path(spending_proposal) %></strong>
</td>
<td>
<% if spending_proposal.administrator.present? %>
<span title="<%= t('admin.spending_proposals.index.admin_assigned') %>"><%= spending_proposal.administrator.name %></span>
<% else %>
<%= t("admin.spending_proposals.index.no_admin_assigned") %>
<% end %>
</td>
<td>
<% case spending_proposal.valuators.size %>
<% when 0 %>
<%= t("admin.spending_proposals.index.no_valuators_assigned") %>
<% when 1 %>
<span title="<%= t('admin.spending_proposals.index.valuators_assigned', count: 1) %>">
<%= spending_proposal.valuators.first.name %>
</span>
<% else %>
<span title="<%= spending_proposal.valuators.map(&:name) * ', ' %>">
<%= t('admin.spending_proposals.index.valuators_assigned', count: spending_proposal.valuators.size) %>
</span>
<% end %>
</td>
<td>
<%= geozone_name(spending_proposal) %>
</td>

View File

@@ -144,6 +144,12 @@ en:
rejected: Rejected
unresolved: Unresolved
title: Spending proposals for participatory budgeting
admin_assigned: Assigned administrator
no_admin_assigned: No admin assigned
valuators_assigned:
one: Assigned valuator
other: "%{count} valuators assigned"
no_valuators_assigned: No valuators assigned
show:
heading: Investment project
info: Author info

View File

@@ -144,6 +144,12 @@ es:
rejected: Rechazadas
unresolved: Sin resolver
title: Propuestas de gasto para presupuestos participativos
admin_assigned: Administrador asignado
no_admin_assigned: Sin admin asignado
valuators_assigned:
one: Evaluador asignado
other: "%{count} evaluadores asignados"
no_valuators_assigned: Sin evaluador
show:
heading: Propuesta de inversión
info: Datos de envío

View File

@@ -19,6 +19,37 @@ feature 'Admin spending proposals' do
expect(page).to have_content(spending_proposal.title)
end
scenario 'Index shows assignments info' do
spending_proposal1 = create(:spending_proposal)
spending_proposal2 = create(:spending_proposal)
spending_proposal3 = create(:spending_proposal)
valuator1 = create(:valuator, user: create(:user, username: 'Olga'))
valuator2 = create(:valuator, user: create(:user, username: 'Miriam'))
admin = create(:administrator, user: create(:user, username: 'Gema'))
spending_proposal1.valuators << valuator1
spending_proposal2.valuator_ids = [valuator1.id, valuator2.id]
spending_proposal3.update({administrator_id: admin.id})
visit admin_spending_proposals_path
within("#spending_proposal_#{spending_proposal1.id}") do
expect(page).to have_content("No admin assigned")
expect(page).to have_content("Olga")
end
within("#spending_proposal_#{spending_proposal2.id}") do
expect(page).to have_content("No admin assigned")
expect(page).to have_content("2 valuators assigned")
end
within("#spending_proposal_#{spending_proposal3.id}") do
expect(page).to have_content("Gema")
expect(page).to have_content("No valuators assigned")
end
end
scenario 'Show' do
administrator = create(:administrator, user: create(:user, username: 'Ana', email: 'ana@admins.org'))
valuator = create(:valuator, user: create(:user, username: 'Rachel', email: 'rachel@valuators.org'))
@@ -59,6 +90,7 @@ feature 'Admin spending proposals' do
expect(page).to have_select('spending_proposal[administrator_id]', selected: 'Undefined')
select 'Ana (ana@admins.org)', from: 'spending_proposal[administrator_id]'
expect(page).to have_select('spending_proposal[administrator_id]', selected: 'Ana (ana@admins.org)')
visit admin_spending_proposal_path(spending_proposal)