Merge pull request #935 from consul/valuation-admin

Assignments info in [admin] spending proposals index
This commit is contained in:
Enrique García
2016-02-25 15:58:38 +01:00
7 changed files with 87 additions and 6 deletions

View File

@@ -1,12 +1,25 @@
App.Forms =
initialize: ->
disableEnter: ->
$('form.js-enter-disabled').on('keyup keypress', (event) ->
if event.which == 13
e.preventDefault()
)
submitOnChange: ->
$('.js-submit-on-change').unbind('change').on('change', ->
$(this).closest('form').submit()
false
)
)
toggleLink: ->
$('.js-toggle-link').unbind('click').on('click', ->
$($(this).data('toggle-selector')).toggle("down")
false
)
initialize: ->
App.Forms.disableEnter()
App.Forms.submitOnChange()
App.Forms.toggleLink()
false

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

@@ -44,7 +44,7 @@
<div style="display:none" id="valuators-assign-list">
<%= form_for(@spending_proposal, url: assign_valuators_admin_spending_proposal_path(@spending_proposal), remote: true, html: {id: 'valuators_assignment_form'}) do |f| %>
<% @valuators.each do |valuator| -%>
<% @valuators.each do |valuator| %>
<div>
<%= check_box_tag "valuator_ids_#{valuator.id}", valuator.id, @spending_proposal.valuators.include?(valuator),
name: 'spending_proposal[valuator_ids][]',
@@ -53,6 +53,7 @@
</div>
<% end -%>
<% end -%>
<% if @valuators.blank? %><p><%= t("admin.spending_proposals.show.no_valuators") %></p><% end %>
</div>

View File

@@ -143,7 +143,13 @@ en:
accepted: Accepted
rejected: Rejected
unresolved: Unresolved
title: Spending proposals for participatory budgeting
title: Investment projects 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
@@ -164,6 +170,7 @@ en:
assigned_admin: Assigned admin
assigned_valuators: Assigned valuators
assign_valuators: Assign valuators
no_valuators: There is not any valuator user
assign: Assign
stats:
show:

View File

@@ -143,7 +143,13 @@ es:
accepted: Aceptadas
rejected: Rechazadas
unresolved: Sin resolver
title: Propuestas de gasto para presupuestos participativos
title: Propuestas de inversión 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
@@ -164,6 +170,7 @@ es:
assigned_admin: Administrador asignado
assigned_valuators: Evaluadores asignados
assign_valuators: Asignar evaluadores
no_valuators: No hay ningún usuario evaluador
assign: Asignar
stats:
show:

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)