diff --git a/app/controllers/admin/budget_investment_milestones_controller.rb b/app/controllers/admin/budget_investment_milestones_controller.rb index da023499a..f354d42fa 100644 --- a/app/controllers/admin/budget_investment_milestones_controller.rb +++ b/app/controllers/admin/budget_investment_milestones_controller.rb @@ -1,77 +1,8 @@ -class Admin::BudgetInvestmentMilestonesController < Admin::BaseController - include Translatable - - before_action :load_milestoneable, 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 = @milestoneable.milestones.new - end - - def create - @milestone = Milestone.new(milestone_params) - @milestone.milestoneable = @milestoneable - if @milestone.save - redirect_to milestoneable_path, notice: t('admin.milestones.create.notice') - else - render :new - end - end - - def edit - end - - def update - if @milestone.update(milestone_params) - redirect_to milestoneable_path, notice: t('admin.milestones.update.notice') - else - render :edit - end - end - - def destroy - @milestone.destroy - redirect_to milestoneable_path, notice: t('admin.milestones.delete.notice') - end +class Admin::BudgetInvestmentMilestonesController < Admin::MilestonesController private - def milestone_params - image_attributes = [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy] - documents_attributes = [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy] - attributes = [:publication_date, :budget_investment_id, :status_id, - translation_params(Milestone), - image_attributes: image_attributes, documents_attributes: documents_attributes] - - params.require(:milestone).permit(*attributes) - end - - def load_milestoneable - @milestoneable = Budget::Investment.find(params[:budget_investment_id]) - end - - def load_milestone - @milestone = get_milestone - end - - def get_milestone - Milestone.find(params[:id]) - end - - def resource - get_milestone - end - - def load_statuses - @statuses = Milestone::Status.all - end - - def milestoneable_path - polymorphic_path([:admin, *resource_hierarchy_for(@milestone.milestoneable)]) + def milestoneable + Budget::Investment.find(params[:budget_investment_id]) end end diff --git a/app/controllers/admin/milestones_controller.rb b/app/controllers/admin/milestones_controller.rb new file mode 100644 index 000000000..dde88512b --- /dev/null +++ b/app/controllers/admin/milestones_controller.rb @@ -0,0 +1,81 @@ +class Admin::MilestonesController < Admin::BaseController + include Translatable + + before_action :load_milestoneable, 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 = @milestoneable.milestones.new + end + + def create + @milestone = Milestone.new(milestone_params) + @milestone.milestoneable = @milestoneable + if @milestone.save + redirect_to milestoneable_path, notice: t('admin.milestones.create.notice') + else + render :new + end + end + + def edit + end + + def update + if @milestone.update(milestone_params) + redirect_to milestoneable_path, notice: t('admin.milestones.update.notice') + else + render :edit + end + end + + def destroy + @milestone.destroy + redirect_to milestoneable_path, notice: t('admin.milestones.delete.notice') + end + + private + + def milestone_params + image_attributes = [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy] + documents_attributes = [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy] + attributes = [:publication_date, :status_id, + translation_params(Milestone), + image_attributes: image_attributes, documents_attributes: documents_attributes] + + params.require(:milestone).permit(*attributes) + end + + def load_milestoneable + @milestoneable = milestoneable + end + + def milestoneable + raise "Implement in subclass" + end + + def load_milestone + @milestone = get_milestone + end + + def get_milestone + Milestone.find(params[:id]) + end + + def load_statuses + @statuses = Milestone::Status.all + end + + def resource + get_milestone + 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/milestones/_form.html.erb similarity index 100% rename from app/views/admin/budget_investment_milestones/_form.html.erb rename to app/views/admin/milestones/_form.html.erb diff --git a/app/views/admin/budget_investment_milestones/edit.html.erb b/app/views/admin/milestones/edit.html.erb similarity index 68% rename from app/views/admin/budget_investment_milestones/edit.html.erb rename to app/views/admin/milestones/edit.html.erb index 7a3a1f175..297ebccb4 100644 --- a/app/views/admin/budget_investment_milestones/edit.html.erb +++ b/app/views/admin/milestones/edit.html.erb @@ -3,5 +3,5 @@

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

- <%= render '/admin/budget_investment_milestones/form' %> + <%= render "form" %>
diff --git a/app/views/admin/budget_investment_milestones/new.html.erb b/app/views/admin/milestones/new.html.erb similarity index 100% rename from app/views/admin/budget_investment_milestones/new.html.erb rename to app/views/admin/milestones/new.html.erb