From 2c2831beb051c0e9fb403d9418a0fe694544fde7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Mon, 12 Nov 2018 19:27:14 +0100 Subject: [PATCH] Use polymorphic paths for milestones --- .../budget_investment_milestones_controller.rb | 15 ++++++++------- .../budget_investment_milestones/_form.html.erb | 2 +- .../budget_investment_milestones/edit.html.erb | 2 +- .../budget_investment_milestones/new.html.erb | 2 +- .../admin/budget_investments/_milestones.html.erb | 9 +++------ app/views/admin/budget_investments/show.html.erb | 3 ++- config/initializers/routes_hierarchy.rb | 2 +- 7 files changed, 17 insertions(+), 18 deletions(-) diff --git a/app/controllers/admin/budget_investment_milestones_controller.rb b/app/controllers/admin/budget_investment_milestones_controller.rb index 23ef679cc..c8685de18 100644 --- a/app/controllers/admin/budget_investment_milestones_controller.rb +++ b/app/controllers/admin/budget_investment_milestones_controller.rb @@ -4,20 +4,20 @@ class Admin::BudgetInvestmentMilestonesController < Admin::BaseController before_action :load_budget_investment, only: [:index, :new, :create, :edit, :update, :destroy] before_action :load_milestone, only: [:edit, :update, :destroy] before_action :load_statuses, only: [:index, :new, :create, :edit, :update] + helper_method :milestoneable_path def index end def new - @milestone = Milestone.new + @milestone = @investment.milestones.new end def create @milestone = Milestone.new(milestone_params) @milestone.milestoneable = @investment if @milestone.save - redirect_to admin_budget_budget_investment_path(@investment.budget, @investment), - notice: t('admin.milestones.create.notice') + redirect_to milestoneable_path, notice: t('admin.milestones.create.notice') else render :new end @@ -28,8 +28,7 @@ class Admin::BudgetInvestmentMilestonesController < Admin::BaseController def update if @milestone.update(milestone_params) - redirect_to admin_budget_budget_investment_path(@investment.budget, @investment), - notice: t('admin.milestones.update.notice') + redirect_to milestoneable_path, notice: t('admin.milestones.update.notice') else render :edit end @@ -37,8 +36,7 @@ class Admin::BudgetInvestmentMilestonesController < Admin::BaseController def destroy @milestone.destroy - redirect_to admin_budget_budget_investment_path(@investment.budget, @investment), - notice: t('admin.milestones.delete.notice') + redirect_to milestoneable_path, notice: t('admin.milestones.delete.notice') end private @@ -73,4 +71,7 @@ class Admin::BudgetInvestmentMilestonesController < Admin::BaseController @statuses = Milestone::Status.all end + def milestoneable_path + polymorphic_path([:admin, *resource_hierarchy_for(@milestone.milestoneable)]) + end end diff --git a/app/views/admin/budget_investment_milestones/_form.html.erb b/app/views/admin/budget_investment_milestones/_form.html.erb index c62ba3521..5006b8fa1 100644 --- a/app/views/admin/budget_investment_milestones/_form.html.erb +++ b/app/views/admin/budget_investment_milestones/_form.html.erb @@ -1,6 +1,6 @@ <%= render "admin/shared/globalize_locales", resource: @milestone %> -<%= translatable_form_for [:admin, @investment.budget, @investment, @milestone] do |f| %> +<%= translatable_form_for [:admin, *resource_hierarchy_for(@milestone)] do |f| %>
<%= f.select :status_id, diff --git a/app/views/admin/budget_investment_milestones/edit.html.erb b/app/views/admin/budget_investment_milestones/edit.html.erb index d15b5a66a..7a3a1f175 100644 --- a/app/views/admin/budget_investment_milestones/edit.html.erb +++ b/app/views/admin/budget_investment_milestones/edit.html.erb @@ -1,4 +1,4 @@ -<%= back_link_to admin_budget_budget_investment_path(@investment.budget, @investment) %> +<%= back_link_to milestoneable_path %>

<%= t("admin.milestones.edit.title") %>

diff --git a/app/views/admin/budget_investment_milestones/new.html.erb b/app/views/admin/budget_investment_milestones/new.html.erb index 7e065a605..aa55123c9 100644 --- a/app/views/admin/budget_investment_milestones/new.html.erb +++ b/app/views/admin/budget_investment_milestones/new.html.erb @@ -1,7 +1,7 @@
- <%= back_link_to admin_budget_budget_investment_path(@investment.budget, @investment) %> + <%= back_link_to milestoneable_path %>

<%= t("admin.milestones.new.creating") %>

diff --git a/app/views/admin/budget_investments/_milestones.html.erb b/app/views/admin/budget_investments/_milestones.html.erb index 20a870d71..1bba1bc18 100644 --- a/app/views/admin/budget_investments/_milestones.html.erb +++ b/app/views/admin/budget_investments/_milestones.html.erb @@ -18,9 +18,8 @@ <%= milestone.id %> <%= link_to milestone.title, - edit_admin_budget_budget_investment_milestone_path(@investment.budget, - @investment, - milestone) %> + polymorphic_path([:admin, *resource_hierarchy_for(milestone)], + action: :edit) %> <%= milestone.description %> @@ -46,9 +45,7 @@ <%= link_to t("admin.milestones.index.delete"), - admin_budget_budget_investment_milestone_path(@investment.budget, - @investment, - milestone), + polymorphic_path([:admin, *resource_hierarchy_for(milestone)]), method: :delete, class: "button hollow alert expanded" %> diff --git a/app/views/admin/budget_investments/show.html.erb b/app/views/admin/budget_investments/show.html.erb index cb44745a1..c6462ff52 100644 --- a/app/views/admin/budget_investments/show.html.erb +++ b/app/views/admin/budget_investments/show.html.erb @@ -63,6 +63,7 @@

<%= link_to t("admin.budget_investments.show.new_milestone"), - new_admin_budget_budget_investment_milestone_path(@budget, @investment), + polymorphic_path([:admin, *resource_hierarchy_for(@investment.milestones.new)], + action: :new), class: "button hollow" %>

diff --git a/config/initializers/routes_hierarchy.rb b/config/initializers/routes_hierarchy.rb index e9892ef38..0a712f923 100644 --- a/config/initializers/routes_hierarchy.rb +++ b/config/initializers/routes_hierarchy.rb @@ -8,7 +8,7 @@ module ActionDispatch::Routing::UrlFor when "Budget::Investment" [resource.budget, resource] when "Milestone" - [resource.milestoneable.budget, resource.milestoneable, resource] + [*resource_hierarchy_for(resource.milestoneable), resource] when "Legislation::Annotation" [resource.draft_version.process, resource.draft_version, resource] when "Legislation::Proposal", "Legislation::Question", "Legislation::DraftVersion"