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