From 4e086de4935bc9e23ab18d3f1ce48042dd979c8e Mon Sep 17 00:00:00 2001 From: Angel Perez Date: Thu, 26 Oct 2017 16:03:39 -0400 Subject: [PATCH 1/3] Add 'Delete' button to Valuators index/search views --- app/views/admin/valuators/index.html.erb | 17 ++++++++++------- app/views/admin/valuators/search.html.erb | 7 ++++++- config/locales/en/admin.yml | 1 + config/locales/es/admin.yml | 1 + 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/app/views/admin/valuators/index.html.erb b/app/views/admin/valuators/index.html.erb index 622d01307..dfb93ed80 100644 --- a/app/views/admin/valuators/index.html.erb +++ b/app/views/admin/valuators/index.html.erb @@ -1,6 +1,6 @@

<%= t("admin.valuators.index.title") %>

-<%= render 'admin/shared/user_search', url: search_admin_valuators_path %> +<%= render "admin/shared/user_search", url: search_admin_valuators_path %>
<% if @valuators.any? %> @@ -11,16 +11,13 @@ <%= t("admin.valuators.index.name") %> <%= t("admin.valuators.index.email") %> <%= t("admin.valuators.index.description") %> + <%= t("admin.actions.actions") %> <% @valuators.each do |valuator| %> - - <%= valuator.name %> - - - <%= valuator.email %> - + <%= valuator.name %> + <%= valuator.email %> <% if valuator.description.present? %> <%= valuator.description %> @@ -28,6 +25,12 @@ <%= t("admin.valuators.index.no_description") %> <% end %> + + <%= link_to t("admin.valuators.valuator.delete"), + admin_valuator_path(valuator), + method: :delete, + class: "button hollow alert expanded" %> + <% end %> diff --git a/app/views/admin/valuators/search.html.erb b/app/views/admin/valuators/search.html.erb index 2710cb44d..b383e554d 100644 --- a/app/views/admin/valuators/search.html.erb +++ b/app/views/admin/valuators/search.html.erb @@ -29,7 +29,12 @@ <%= t("admin.valuators.index.no_description") %> <% end %> - <% unless user.valuator? %> + <% if user.valuator? %> + <%= link_to t("admin.valuators.valuator.delete"), + admin_valuator_path(user), + method: :delete, + class: "button hollow alert expanded" %> + <% else %> <%= form_for Valuator.new(user: user), url: admin_valuators_path do |f| %> <%= f.text_field :description, label: false, diff --git a/config/locales/en/admin.yml b/config/locales/en/admin.yml index 823d7084b..911428b01 100644 --- a/config/locales/en/admin.yml +++ b/config/locales/en/admin.yml @@ -481,6 +481,7 @@ en: valuator: description_placeholder: 'Description (optional)' add: Add to valuators + delete: Delete search: title: 'Valuators: User search' summary: diff --git a/config/locales/es/admin.yml b/config/locales/es/admin.yml index 8d0b6cbf8..8b97a4ec0 100644 --- a/config/locales/es/admin.yml +++ b/config/locales/es/admin.yml @@ -481,6 +481,7 @@ es: valuator: description_placeholder: 'Descripción (opcional)' add: Añadir como evaluador + delete: Borrar search: title: 'Evaluadores: Búsqueda de usuarios' summary: From db86cc52166c41dfc681623369a26bc067bc0ef1 Mon Sep 17 00:00:00 2001 From: Angel Perez Date: Thu, 26 Oct 2017 16:12:03 -0400 Subject: [PATCH 2/3] Enable 'destroy' action for Valuator on controller --- app/controllers/admin/valuators_controller.rb | 5 +++++ app/models/abilities/administrator.rb | 2 +- config/routes.rb | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/controllers/admin/valuators_controller.rb b/app/controllers/admin/valuators_controller.rb index d567a38b2..8b454a1a2 100644 --- a/app/controllers/admin/valuators_controller.rb +++ b/app/controllers/admin/valuators_controller.rb @@ -19,6 +19,11 @@ class Admin::ValuatorsController < Admin::BaseController redirect_to admin_valuators_path end + def destroy + @valuator.destroy + redirect_to admin_valuators_path + end + def summary @valuators = Valuator.order(spending_proposals_count: :desc) end diff --git a/app/models/abilities/administrator.rb b/app/models/abilities/administrator.rb index 951f06249..3f136f913 100644 --- a/app/models/abilities/administrator.rb +++ b/app/models/abilities/administrator.rb @@ -43,7 +43,7 @@ module Abilities can [:search, :create, :index, :destroy], ::Administrator can [:search, :create, :index, :destroy], ::Moderator - can [:search, :create, :index, :summary], ::Valuator + can [:search, :create, :index, :destroy, :summary], ::Valuator can [:search, :create, :index, :destroy], ::Manager can [:search, :index], ::User diff --git a/config/routes.rb b/config/routes.rb index 491127439..9ce97f45b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -272,7 +272,7 @@ Rails.application.routes.draw do get :search, on: :collection end - resources :valuators, only: [:index, :create] do + resources :valuators, only: [:index, :create, :destroy] do get :search, on: :collection get :summary, on: :collection end From 6e28e9a5bed89db4fe9bc2fe30e49f5b60d68d0f Mon Sep 17 00:00:00 2001 From: Angel Perez Date: Thu, 26 Oct 2017 16:24:17 -0400 Subject: [PATCH 3/3] Add test for 'Delete Valuator' scenario --- spec/features/admin/valuators_spec.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/spec/features/admin/valuators_spec.rb b/spec/features/admin/valuators_spec.rb index bb631cbc3..f1dfa68b3 100644 --- a/spec/features/admin/valuators_spec.rb +++ b/spec/features/admin/valuators_spec.rb @@ -29,6 +29,14 @@ feature 'Admin valuators' do end end + scenario 'Delete Valuator' do + click_link 'Delete' + + within('#valuators') do + expect(page).to_not have_content(@valuator.name) + end + end + context 'Search' do background do