Brutally rename gestionnaire filename to instructeur
This commit is contained in:
parent
c681806f8d
commit
6902f84b85
88 changed files with 0 additions and 0 deletions
144
app/controllers/instructeurs/avis_controller.rb
Normal file
144
app/controllers/instructeurs/avis_controller.rb
Normal file
|
@ -0,0 +1,144 @@
|
|||
module Gestionnaires
|
||||
class AvisController < GestionnaireController
|
||||
include CreateAvisConcern
|
||||
|
||||
before_action :authenticate_gestionnaire!, except: [:sign_up, :create_gestionnaire]
|
||||
before_action :redirect_if_no_sign_up_needed, only: [:sign_up]
|
||||
before_action :check_avis_exists_and_email_belongs_to_avis, only: [:sign_up, :create_gestionnaire]
|
||||
before_action :set_avis_and_dossier, only: [:show, :instruction, :messagerie, :create_commentaire, :update]
|
||||
|
||||
A_DONNER_STATUS = 'a-donner'
|
||||
DONNES_STATUS = 'donnes'
|
||||
|
||||
def index
|
||||
gestionnaire_avis = current_gestionnaire.avis.includes(dossier: [:procedure, :user])
|
||||
@avis_a_donner = gestionnaire_avis.without_answer
|
||||
@avis_donnes = gestionnaire_avis.with_answer
|
||||
|
||||
@statut = params[:statut].presence || A_DONNER_STATUS
|
||||
|
||||
@avis = case @statut
|
||||
when A_DONNER_STATUS
|
||||
@avis_a_donner
|
||||
when DONNES_STATUS
|
||||
@avis_donnes
|
||||
end
|
||||
|
||||
@avis = @avis.page([params[:page].to_i, 1].max)
|
||||
end
|
||||
|
||||
def show
|
||||
end
|
||||
|
||||
def instruction
|
||||
@new_avis = Avis.new
|
||||
end
|
||||
|
||||
def update
|
||||
if @avis.update(avis_params)
|
||||
flash.notice = 'Votre réponse est enregistrée.'
|
||||
redirect_to instruction_gestionnaire_avis_path(@avis)
|
||||
else
|
||||
flash.now.alert = @avis.errors.full_messages
|
||||
@new_avis = Avis.new
|
||||
render :instruction
|
||||
end
|
||||
end
|
||||
|
||||
def messagerie
|
||||
@commentaire = Commentaire.new
|
||||
end
|
||||
|
||||
def create_commentaire
|
||||
@commentaire = CommentaireService.build(current_gestionnaire, avis.dossier, commentaire_params)
|
||||
|
||||
if @commentaire.save
|
||||
flash.notice = "Message envoyé"
|
||||
redirect_to messagerie_gestionnaire_avis_path(avis)
|
||||
else
|
||||
flash.alert = @commentaire.errors.full_messages
|
||||
render :messagerie
|
||||
end
|
||||
end
|
||||
|
||||
def create_avis
|
||||
@new_avis = create_avis_from_params(avis.dossier, avis.confidentiel)
|
||||
|
||||
if @new_avis.nil?
|
||||
redirect_to instruction_gestionnaire_avis_path(avis)
|
||||
else
|
||||
set_avis_and_dossier
|
||||
render :instruction
|
||||
end
|
||||
end
|
||||
|
||||
def sign_up
|
||||
@email = params[:email]
|
||||
@dossier = Avis.includes(:dossier).find(params[:id]).dossier
|
||||
|
||||
render
|
||||
end
|
||||
|
||||
def create_gestionnaire
|
||||
email = params[:email]
|
||||
password = params['gestionnaire']['password']
|
||||
|
||||
gestionnaire = Gestionnaire.new(email: email, password: password)
|
||||
|
||||
if gestionnaire.save
|
||||
user = User.find_by(email: email)
|
||||
if user.blank?
|
||||
user = User.create(email: email, password: password, confirmed_at: Time.zone.now)
|
||||
end
|
||||
|
||||
sign_in(user)
|
||||
sign_in(gestionnaire, scope: :gestionnaire)
|
||||
|
||||
Avis.link_avis_to_gestionnaire(gestionnaire)
|
||||
redirect_to url_for(gestionnaire_avis_index_path)
|
||||
else
|
||||
flash[:alert] = gestionnaire.errors.full_messages
|
||||
redirect_to url_for(sign_up_gestionnaire_avis_path(params[:id], email))
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_avis_and_dossier
|
||||
@avis = avis
|
||||
@dossier = avis.dossier
|
||||
end
|
||||
|
||||
def redirect_if_no_sign_up_needed
|
||||
avis = Avis.find(params[:id])
|
||||
|
||||
if current_gestionnaire.present?
|
||||
# a gestionnaire is authenticated ... lets see if it can view the dossier
|
||||
|
||||
redirect_to gestionnaire_avis_url(avis)
|
||||
elsif avis.gestionnaire&.email == params[:email]
|
||||
# the avis gestionnaire has already signed up and it sould sign in
|
||||
|
||||
redirect_to new_gestionnaire_session_url
|
||||
end
|
||||
end
|
||||
|
||||
def check_avis_exists_and_email_belongs_to_avis
|
||||
if !Avis.avis_exists_and_email_belongs_to_avis?(params[:id], params[:email])
|
||||
redirect_to url_for(root_path)
|
||||
end
|
||||
end
|
||||
|
||||
def avis
|
||||
current_gestionnaire.avis.includes(dossier: [:avis, :commentaires]).find(params[:id])
|
||||
end
|
||||
|
||||
def avis_params
|
||||
params.require(:avis).permit(:answer, :piece_justificative_file)
|
||||
end
|
||||
|
||||
def commentaire_params
|
||||
params.require(:commentaire).permit(:body, :piece_jointe)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue