demarches-normaliennes/app/controllers/commentaires_controller.rb

64 lines
2.3 KiB
Ruby
Raw Normal View History

2015-08-10 11:05:06 +02:00
class CommentairesController < ApplicationController
2016-11-14 18:00:26 +01:00
def index
@facade = DossierFacades.new(
2017-06-12 13:49:51 +02:00
params[:dossier_id],
(current_gestionnaire || current_user).email,
params[:champs_id]
2016-11-14 18:00:26 +01:00
)
render layout: false
rescue ActiveRecord::RecordNotFound
flash.alert = t('errors.messages.dossier_not_found')
redirect_to url_for(controller: '/')
end
2015-08-10 11:05:06 +02:00
def create
2015-08-11 15:22:07 +02:00
@commentaire = Commentaire.new
2016-11-14 18:00:26 +01:00
@commentaire.champ = @commentaire.dossier.champs.find(params[:champ_id]) if params[:champ_id]
2015-08-10 11:05:06 +02:00
dossier_id = params['dossier_id']
if is_gestionnaire?
@commentaire.email = current_gestionnaire.email
@commentaire.dossier = current_gestionnaire.dossiers.find_by(id: dossier_id) || current_gestionnaire.avis.find_by!(dossier_id: dossier_id).dossier
@commentaire.dossier.next_step! 'gestionnaire', 'comment'
else
@commentaire.email = current_user.email
@commentaire.dossier = current_user.dossiers.find_by(id: dossier_id) || current_user.invites.find_by!(dossier_id: dossier_id).dossier
@commentaire.dossier.next_step! 'user', 'comment' if current_user.email == @commentaire.dossier.user.email
end
unless params[:piece_justificative].nil?
pj = PiecesJustificativesService.upload_one! @commentaire.dossier, current_user, params
if pj.errors.empty?
@commentaire.piece_justificative = pj
else
flash.alert = pj.errors.full_messages
end
end
@commentaire.body = params['texte_commentaire']
unless @commentaire.body.blank? && @commentaire.piece_justificative.nil?
@commentaire.save unless flash.alert
else
flash.alert = "Veuillez rédiger un message ou ajouter une pièce jointe."
end
2015-08-10 11:05:06 +02:00
2015-09-22 15:00:59 +02:00
if is_gestionnaire?
current_gestionnaire.follow(@commentaire.dossier)
2015-09-22 15:00:59 +02:00
redirect_to url_for(controller: 'backoffice/dossiers', action: :show, id: params['dossier_id'])
2015-08-10 11:05:06 +02:00
else
if current_user.email != @commentaire.dossier.user.email
2017-01-10 16:25:05 +01:00
invite = Invite.where(dossier: @commentaire.dossier, email: current_user.email).first
redirect_to url_for(controller: 'users/dossiers/invites', action: :show, id: invite.id)
else
redirect_to users_dossier_recapitulatif_path(params['dossier_id'])
end
2015-08-10 11:05:06 +02:00
end
end
2015-09-22 15:00:59 +02:00
def is_gestionnaire?
false
end
2015-08-10 11:05:06 +02:00
end