Add link to an (empty) edit action

This commit is contained in:
Javi Martín
2020-11-24 17:48:38 +01:00
parent ed51c5dcd3
commit 11c3b3db13
8 changed files with 41 additions and 0 deletions

View File

@@ -6,6 +6,7 @@
<th><%= model_class.human_attribute_name(:title) %></th> <th><%= model_class.human_attribute_name(:title) %></th>
<th><%= SDG::Goal.model_name.human(count: 2).upcase_first %></th> <th><%= SDG::Goal.model_name.human(count: 2).upcase_first %></th>
<th><%= SDG::Target.model_name.human(count: 2).upcase_first %></th> <th><%= SDG::Target.model_name.human(count: 2).upcase_first %></th>
<th><%= t("admin.actions.actions") %></th>
</tr> </tr>
</thead> </thead>
@@ -15,6 +16,14 @@
<td><%= record.title %></td> <td><%= record.title %></td>
<td><%= record.sdg_goal_list %></td> <td><%= record.sdg_goal_list %></td>
<td><%= record.sdg_target_list %></td> <td><%= record.sdg_target_list %></td>
<td>
<%= render Admin::TableActionsComponent.new(
record,
actions: [:edit],
edit_text: t("sdg_management.actions.edit"),
edit_path: edit_path_for(record)
) %>
</td>
</tr> </tr>
<% end %> <% end %>
</tbody> </tbody>

View File

@@ -16,4 +16,13 @@ class SDGManagement::Relations::IndexComponent < ApplicationComponent
def model_class def model_class
records.model records.model
end end
def edit_path_for(record)
{
controller: "sdg_management/relations",
action: :edit,
relatable_type: record.class.name.tableize,
id: record
}
end
end end

View File

@@ -3,6 +3,10 @@ class SDGManagement::RelationsController < SDGManagement::BaseController
@records = relatable_class.accessible_by(current_ability).order(:id).page(params[:page]) @records = relatable_class.accessible_by(current_ability).order(:id).page(params[:page])
end end
def edit
@record = relatable_class.find(params[:id])
end
private private
def relatable_class def relatable_class

View File

@@ -0,0 +1 @@
<h2><%= @record.title %></h2>

View File

@@ -1,5 +1,7 @@
en: en:
sdg_management: sdg_management:
actions:
edit: "Manage goals and targets"
header: header:
title: "SDG content" title: "SDG content"
menu: menu:

View File

@@ -1,5 +1,7 @@
es: es:
sdg_management: sdg_management:
actions:
edit: "Asignar objetivos y metas"
header: header:
title: "Contenido ODS" title: "Contenido ODS"
menu: menu:

View File

@@ -9,8 +9,10 @@ namespace :sdg_management do
types_constraint = /#{types.join("|")}/ types_constraint = /#{types.join("|")}/
get "*relatable_type", to: "relations#index", as: "relations", relatable_type: types_constraint get "*relatable_type", to: "relations#index", as: "relations", relatable_type: types_constraint
get "*relatable_type/:id/edit", to: "relations#edit", as: "edit_relation", relatable_type: types_constraint
types.each do |type| types.each do |type|
get type, to: "relations#index", as: type get type, to: "relations#index", as: type
get "#{type}/:id/edit", to: "relations#edit", as: "edit_#{type.singularize}"
end end
end end

View File

@@ -70,5 +70,17 @@ describe "SDG Relations", :js do
expect(page).to have_content "6.1, 6.2" expect(page).to have_content "6.1, 6.2"
end end
end end
scenario "shows link to edit a record" do
create(:budget_investment, title: "Build a hospital")
visit sdg_management_budget_investments_path
within("tr", text: "Build a hospital") do
click_link "Manage goals and targets"
end
expect(page).to have_css "h2", exact_text: "Build a hospital"
end
end end
end end