Move milestones code to admin/milestones
All milestone controllers will inherit from `AdminMilestonesController`, and all views will render the same content.
This commit is contained in:
@@ -1,77 +1,8 @@
|
|||||||
class Admin::BudgetInvestmentMilestonesController < Admin::BaseController
|
class Admin::BudgetInvestmentMilestonesController < Admin::MilestonesController
|
||||||
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
|
private
|
||||||
|
|
||||||
def milestone_params
|
def milestoneable
|
||||||
image_attributes = [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy]
|
Budget::Investment.find(params[:budget_investment_id])
|
||||||
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)])
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
81
app/controllers/admin/milestones_controller.rb
Normal file
81
app/controllers/admin/milestones_controller.rb
Normal file
@@ -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
|
||||||
@@ -3,5 +3,5 @@
|
|||||||
<h2><%= t("admin.milestones.edit.title") %></h2>
|
<h2><%= t("admin.milestones.edit.title") %></h2>
|
||||||
|
|
||||||
<div class="milestone-edit">
|
<div class="milestone-edit">
|
||||||
<%= render '/admin/budget_investment_milestones/form' %>
|
<%= render "form" %>
|
||||||
</div>
|
</div>
|
||||||
Reference in New Issue
Block a user