From 77ee316ed83c42fea787647cdb8fd49ff0651347 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Thu, 25 Feb 2016 14:44:11 +0100 Subject: [PATCH] adds assignment info to admin's valuations index --- .../admin/spending_proposals_controller.rb | 2 +- .../admin/spending_proposals/index.html.erb | 21 ++++++++++++ config/locales/admin.en.yml | 6 ++++ config/locales/admin.es.yml | 6 ++++ .../features/admin/spending_proposals_spec.rb | 32 +++++++++++++++++++ 5 files changed, 66 insertions(+), 1 deletion(-) 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/config/locales/admin.en.yml b/config/locales/admin.en.yml index e19175b70..60f816d1d 100755 --- a/config/locales/admin.en.yml +++ b/config/locales/admin.en.yml @@ -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 diff --git a/config/locales/admin.es.yml b/config/locales/admin.es.yml index c15cf57ea..bc5b7004a 100644 --- a/config/locales/admin.es.yml +++ b/config/locales/admin.es.yml @@ -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 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)