diff --git a/app/components/sdg_management/local_targets/index_component.rb b/app/components/sdg_management/local_targets/index_component.rb index 44a2ea46b..882836409 100644 --- a/app/components/sdg_management/local_targets/index_component.rb +++ b/app/components/sdg_management/local_targets/index_component.rb @@ -24,7 +24,7 @@ class SDGManagement::LocalTargets::IndexComponent < ApplicationComponent def actions(local_target) render Admin::TableActionsComponent.new( local_target, - actions: [:edit], - edit_path: edit_sdg_management_local_target_path(local_target)) + edit_path: edit_sdg_management_local_target_path(local_target), + destroy_path: sdg_management_local_target_path(local_target)) end end diff --git a/app/controllers/sdg_management/local_targets_controller.rb b/app/controllers/sdg_management/local_targets_controller.rb index 3d03fd812..d23fe06a7 100644 --- a/app/controllers/sdg_management/local_targets_controller.rb +++ b/app/controllers/sdg_management/local_targets_controller.rb @@ -35,6 +35,12 @@ class SDGManagement::LocalTargetsController < SDGManagement::BaseController end end + def destroy + @local_target = LocalTarget.find(params[:id]) + @local_target.destroy! + redirect_to sdg_management_local_targets_path, notice: t("sdg_management.local_targets.destroy.notice") + end + private def local_target_params diff --git a/config/locales/en/sdg_management.yml b/config/locales/en/sdg_management.yml index f5b4ae58a..1e075fd76 100644 --- a/config/locales/en/sdg_management.yml +++ b/config/locales/en/sdg_management.yml @@ -7,6 +7,8 @@ en: local_targets: create: notice: "Local target created successfully" + destroy: + notice: "Local target deleted successfully" edit: title: "Edit local target" form: diff --git a/config/locales/es/sdg_management.yml b/config/locales/es/sdg_management.yml index 7fa86f5bf..4ee4d8893 100644 --- a/config/locales/es/sdg_management.yml +++ b/config/locales/es/sdg_management.yml @@ -7,6 +7,8 @@ es: local_targets: create: notice: "Meta localizada creada correctamente" + destroy: + notice: "Meta localizada eliminada correctamente" edit: title: "Editar meta localizada" form: diff --git a/config/routes/sdg_management.rb b/config/routes/sdg_management.rb index 0aa11ab32..cad7cbe66 100644 --- a/config/routes/sdg_management.rb +++ b/config/routes/sdg_management.rb @@ -3,5 +3,5 @@ namespace :sdg_management do resources :goals, only: [:index] resources :targets, only: [:index] - resources :local_targets, only: [:index, :new, :create, :edit, :update] + resources :local_targets, except: [:show] end diff --git a/spec/system/sdg_management/local_targets_spec.rb b/spec/system/sdg_management/local_targets_spec.rb index 5430ed721..437ec6c22 100644 --- a/spec/system/sdg_management/local_targets_spec.rb +++ b/spec/system/sdg_management/local_targets_spec.rb @@ -16,6 +16,7 @@ describe "Local Targets", :js do expect(page).to have_title "SDG content - Local Targets" within("table tr", text: "Affordable food") do expect(page).to have_link "Edit" + expect(page).to have_link "Delete" end expect(page).to have_link "Create local target" end @@ -84,4 +85,16 @@ describe "Local Targets", :js do expect(page).to have_content("1 error prevented this local target from being saved.") end end + + describe "Destroy" do + scenario "Shows succesful notice when local target is destroyed successfully" do + create(:sdg_local_target, code: "1.1.1") + visit sdg_management_local_targets_path + + accept_confirm { click_link "Delete" } + + expect(page).to have_content("Local target deleted successfully") + expect(page).not_to have_content("1.1.1") + end + end end