64 lines
1.5 KiB
Ruby
64 lines
1.5 KiB
Ruby
class Admin::NeedsController < ApplicationController
|
|
layout "admin"
|
|
|
|
def index
|
|
|
|
# Get all needs to validate
|
|
@needs_to_validate = Need.where(state: 'created').order(created_at: :desc)
|
|
|
|
# Get all controlled needs
|
|
@needs = Kaminari.paginate_array(Need.shared.order(created_at: :desc))
|
|
.page(params[:page])
|
|
.per(10)
|
|
end
|
|
|
|
def edit
|
|
@need = Need.find(params[:id])
|
|
end
|
|
|
|
def update
|
|
@need = Need.find(params[:id])
|
|
if @need.update_attributes(need_params)
|
|
flash[:notice] = "Besoin sauvegardé avec succès."
|
|
redirect_to admin_needs_path
|
|
else
|
|
render :action => "edit"
|
|
end
|
|
end
|
|
|
|
def destroy
|
|
@need = Need.find(params[:id])
|
|
if(@need.destroy)
|
|
flash[:notice] = "Besoin supprimé avec succès."
|
|
end
|
|
redirect_to admin_needs_path
|
|
end
|
|
|
|
def validate
|
|
@need = Need.find(params[:id])
|
|
if @need.validate!
|
|
flash[:notice] = "Besoin validé avec succès"
|
|
CustomerMailer.validate_need(@need).deliver
|
|
else
|
|
flash[:error] = "L'état actuel de ce besoin ne permet pas sa validation"
|
|
end
|
|
redirect_to admin_needs_path
|
|
end
|
|
|
|
def refuse
|
|
@need = Need.find(params[:id])
|
|
if @need.refuse!
|
|
flash[:notice] = "Besoin refusé avec succès"
|
|
CustomerMailer.refuse_need(@need).deliver
|
|
else
|
|
flash[:error] = "L'état actuel de ce besoin ne permet son refus"
|
|
end
|
|
redirect_to admin_needs_path
|
|
end
|
|
|
|
def need_params
|
|
params.require(:need).permit(:title, :description)
|
|
end
|
|
|
|
end
|