Add SDG page to update local targets
This commit is contained in:
@@ -13,7 +13,11 @@ class SDGManagement::LocalTargets::FormComponent < ApplicationComponent
|
|||||||
private
|
private
|
||||||
|
|
||||||
def title
|
def title
|
||||||
t("sdg_management.local_targets.new.title")
|
if local_target.persisted?
|
||||||
|
t("sdg_management.local_targets.edit.title")
|
||||||
|
else
|
||||||
|
t("sdg_management.local_targets.new.title")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def form_url
|
def form_url
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
<%= local_target.title %>
|
<%= local_target.title %>
|
||||||
</td>
|
</td>
|
||||||
<td headers="<%= header_id(local_target) %> local-target-actions">
|
<td headers="<%= header_id(local_target) %> local-target-actions">
|
||||||
|
<%= actions(local_target) %>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -20,4 +20,11 @@ class SDGManagement::LocalTargets::IndexComponent < ApplicationComponent
|
|||||||
def header_id(object)
|
def header_id(object)
|
||||||
"#{dom_id(object)}_header"
|
"#{dom_id(object)}_header"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def actions(local_target)
|
||||||
|
render Admin::TableActionsComponent.new(
|
||||||
|
local_target,
|
||||||
|
actions: [:edit],
|
||||||
|
edit_path: edit_sdg_management_local_target_path(local_target))
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -21,6 +21,20 @@ class SDGManagement::LocalTargetsController < SDGManagement::BaseController
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def edit
|
||||||
|
@local_target = LocalTarget.find(params[:id])
|
||||||
|
end
|
||||||
|
|
||||||
|
def update
|
||||||
|
@local_target = LocalTarget.find(params[:id])
|
||||||
|
|
||||||
|
if @local_target.update(local_target_params)
|
||||||
|
redirect_to sdg_management_local_targets_path, notice: t("sdg_management.local_targets.update.notice")
|
||||||
|
else
|
||||||
|
render :edit
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def local_target_params
|
def local_target_params
|
||||||
|
|||||||
1
app/views/sdg_management/local_targets/edit.html.erb
Normal file
1
app/views/sdg_management/local_targets/edit.html.erb
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<%= render SDGManagement::LocalTargets::FormComponent.new(@local_target) %>
|
||||||
@@ -7,6 +7,8 @@ en:
|
|||||||
local_targets:
|
local_targets:
|
||||||
create:
|
create:
|
||||||
notice: "Local target created successfully"
|
notice: "Local target created successfully"
|
||||||
|
edit:
|
||||||
|
title: "Edit local target"
|
||||||
form:
|
form:
|
||||||
code: "Code must start with the selected target code followed by a dot"
|
code: "Code must start with the selected target code followed by a dot"
|
||||||
description: "This description will be shown as help to users."
|
description: "This description will be shown as help to users."
|
||||||
@@ -14,3 +16,5 @@ en:
|
|||||||
new: "Create local target"
|
new: "Create local target"
|
||||||
new:
|
new:
|
||||||
title: "New local target"
|
title: "New local target"
|
||||||
|
update:
|
||||||
|
notice: "Local target updated successfully"
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ es:
|
|||||||
local_targets:
|
local_targets:
|
||||||
create:
|
create:
|
||||||
notice: "Meta localizada creada correctamente"
|
notice: "Meta localizada creada correctamente"
|
||||||
|
edit:
|
||||||
|
title: "Editar meta localizada"
|
||||||
form:
|
form:
|
||||||
code: "El código debe comenzar por el código de la meta seleccionada seguida de un '.'"
|
code: "El código debe comenzar por el código de la meta seleccionada seguida de un '.'"
|
||||||
description: "Este texto ser mostrará como ayuda para los usuarios."
|
description: "Este texto ser mostrará como ayuda para los usuarios."
|
||||||
@@ -14,3 +16,5 @@ es:
|
|||||||
new: "Crear meta localizada"
|
new: "Crear meta localizada"
|
||||||
new:
|
new:
|
||||||
title: "Nueva meta localizada"
|
title: "Nueva meta localizada"
|
||||||
|
update:
|
||||||
|
notice: "Meta localizada asctualizada correctamente"
|
||||||
|
|||||||
@@ -3,5 +3,5 @@ namespace :sdg_management do
|
|||||||
|
|
||||||
resources :goals, only: [:index]
|
resources :goals, only: [:index]
|
||||||
resources :targets, only: [:index]
|
resources :targets, only: [:index]
|
||||||
resources :local_targets, only: [:index, :new, :create]
|
resources :local_targets, only: [:index, :new, :create, :edit, :update]
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -14,8 +14,10 @@ describe "Local Targets", :js do
|
|||||||
click_link "Local Targets"
|
click_link "Local Targets"
|
||||||
|
|
||||||
expect(page).to have_title "SDG content - Local Targets"
|
expect(page).to have_title "SDG content - Local Targets"
|
||||||
within("table") { expect(page).to have_content "Affordable food for everyone" }
|
within("table tr", text: "Affordable food") do
|
||||||
expect(page).to have_link "Create local target", href: new_sdg_management_local_target_path
|
expect(page).to have_link "Edit"
|
||||||
|
end
|
||||||
|
expect(page).to have_link "Create local target"
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario "Show local targets grouped by target" do
|
scenario "Show local targets grouped by target" do
|
||||||
@@ -59,4 +61,27 @@ describe "Local Targets", :js do
|
|||||||
expect(page).to have_select("Target", selected: code_and_title)
|
expect(page).to have_select("Target", selected: code_and_title)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "Update" do
|
||||||
|
let!(:local_target) { create(:sdg_local_target, code: "1.1.1") }
|
||||||
|
|
||||||
|
scenario "Shows succesful notice when form is fullfilled correctly" do
|
||||||
|
visit edit_sdg_management_local_target_path(local_target)
|
||||||
|
|
||||||
|
fill_in "Title", with: "Local target title update"
|
||||||
|
click_button "Update local target"
|
||||||
|
|
||||||
|
expect(page).to have_content("Local target updated successfully")
|
||||||
|
expect(page).to have_content("Local target title update")
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario "Shows form errors when changes are not valid" do
|
||||||
|
visit edit_sdg_management_local_target_path(local_target)
|
||||||
|
|
||||||
|
fill_in "Title", with: ""
|
||||||
|
click_button "Update local target"
|
||||||
|
|
||||||
|
expect(page).to have_content("1 error prevented this local target from being saved.")
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user