Merge pull request #935 from consul/valuation-admin
Assignments info in [admin] spending proposals index
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user