diff --git a/app/assets/javascripts/forms.js.coffee b/app/assets/javascripts/forms.js.coffee
index a7d26cc02..fab812400 100644
--- a/app/assets/javascripts/forms.js.coffee
+++ b/app/assets/javascripts/forms.js.coffee
@@ -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
\ No newline at end of file
diff --git a/app/controllers/admin/spending_proposals_controller.rb b/app/controllers/admin/spending_proposals_controller.rb
index b758bd10d..ebe466355 100644
--- a/app/controllers/admin/spending_proposals_controller.rb
+++ b/app/controllers/admin/spending_proposals_controller.rb
@@ -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
diff --git a/app/views/admin/spending_proposals/index.html.erb b/app/views/admin/spending_proposals/index.html.erb
index a0ed583cc..295fb5e76 100644
--- a/app/views/admin/spending_proposals/index.html.erb
+++ b/app/views/admin/spending_proposals/index.html.erb
@@ -9,6 +9,27 @@
<%= spending_proposal.id %> -
<%= link_to spending_proposal.title, admin_spending_proposal_path(spending_proposal) %>
+
+ <% if spending_proposal.administrator.present? %>
+ <%= spending_proposal.administrator.name %>
+ <% else %>
+ <%= t("admin.spending_proposals.index.no_admin_assigned") %>
+ <% end %>
+ |
+
+ <% case spending_proposal.valuators.size %>
+ <% when 0 %>
+ <%= t("admin.spending_proposals.index.no_valuators_assigned") %>
+ <% when 1 %>
+
+ <%= spending_proposal.valuators.first.name %>
+
+ <% else %>
+
+ <%= t('admin.spending_proposals.index.valuators_assigned', count: spending_proposal.valuators.size) %>
+
+ <% end %>
+ |
<%= geozone_name(spending_proposal) %>
|
diff --git a/app/views/admin/spending_proposals/show.html.erb b/app/views/admin/spending_proposals/show.html.erb
index 008921ffe..88342f912 100644
--- a/app/views/admin/spending_proposals/show.html.erb
+++ b/app/views/admin/spending_proposals/show.html.erb
@@ -44,7 +44,7 @@
<%= 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| %>
<%= check_box_tag "valuator_ids_#{valuator.id}", valuator.id, @spending_proposal.valuators.include?(valuator),
name: 'spending_proposal[valuator_ids][]',
@@ -53,6 +53,7 @@
<% end -%>
<% end -%>
+ <% if @valuators.blank? %>
<%= t("admin.spending_proposals.show.no_valuators") %>
<% end %>
diff --git a/config/locales/admin.en.yml b/config/locales/admin.en.yml
index 7d3aef540..b777a2c26 100755
--- a/config/locales/admin.en.yml
+++ b/config/locales/admin.en.yml
@@ -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:
diff --git a/config/locales/admin.es.yml b/config/locales/admin.es.yml
index 8d2815423..ef7eaec37 100644
--- a/config/locales/admin.es.yml
+++ b/config/locales/admin.es.yml
@@ -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:
diff --git a/spec/features/admin/spending_proposals_spec.rb b/spec/features/admin/spending_proposals_spec.rb
index a3a844d94..e1a58d378 100644
--- a/spec/features/admin/spending_proposals_spec.rb
+++ b/spec/features/admin/spending_proposals_spec.rb
@@ -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)