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/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 b9c0c625f..1f68ad66d 100644
--- a/config/locales/en/admin.yml
+++ b/config/locales/en/admin.yml
@@ -483,6 +483,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 53e6c53bc..7f90192bc 100644
--- a/config/locales/es/admin.yml
+++ b/config/locales/es/admin.yml
@@ -483,6 +483,7 @@ es:
valuator:
description_placeholder: 'Descripción (opcional)'
add: Añadir como evaluador
+ delete: Borrar
search:
title: 'Evaluadores: Búsqueda de usuarios'
summary:
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
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
|