debc6628d8
La route ne contient pas '.pdf' dans l'url, mais le controller génère un fichier pdf du nom de la procédure et lance le téléchargement immédiatement
89 lines
2.2 KiB
Ruby
89 lines
2.2 KiB
Ruby
module Users
|
|
class CommencerController < ApplicationController
|
|
layout 'procedure_context'
|
|
|
|
def commencer
|
|
@procedure = retrieve_procedure
|
|
return procedure_not_found if @procedure.blank? || @procedure.brouillon?
|
|
|
|
render 'commencer/show'
|
|
end
|
|
|
|
def commencer_test
|
|
@procedure = retrieve_procedure
|
|
return procedure_not_found if @procedure.blank? || @procedure.publiee?
|
|
|
|
render 'commencer/show'
|
|
end
|
|
|
|
def dossier_vide_pdf
|
|
@procedure = retrieve_procedure
|
|
return procedure_not_found if @procedure.blank? || @procedure.brouillon?
|
|
|
|
generate_empty_pdf(@procedure)
|
|
end
|
|
|
|
def dossier_vide_pdf_test
|
|
@procedure = retrieve_procedure
|
|
return procedure_not_found if @procedure.blank? || @procedure.publiee?
|
|
|
|
generate_empty_pdf(@procedure)
|
|
end
|
|
|
|
def sign_in
|
|
@procedure = retrieve_procedure
|
|
return procedure_not_found if @procedure.blank?
|
|
|
|
store_user_location!(@procedure)
|
|
redirect_to new_user_session_path
|
|
end
|
|
|
|
def sign_up
|
|
@procedure = retrieve_procedure
|
|
return procedure_not_found if @procedure.blank?
|
|
|
|
store_user_location!(@procedure)
|
|
redirect_to new_user_registration_path
|
|
end
|
|
|
|
def france_connect
|
|
@procedure = retrieve_procedure
|
|
return procedure_not_found if @procedure.blank?
|
|
|
|
store_user_location!(@procedure)
|
|
redirect_to france_connect_particulier_path
|
|
end
|
|
|
|
def procedure_for_help
|
|
retrieve_procedure
|
|
end
|
|
|
|
private
|
|
|
|
def retrieve_procedure
|
|
Procedure.publiees.or(Procedure.brouillons).find_by(path: params[:path])
|
|
end
|
|
|
|
def procedure_not_found
|
|
procedure = Procedure.find_by(path: params[:path])
|
|
|
|
if procedure&.close?
|
|
flash.alert = t('errors.messages.procedure_archived')
|
|
else
|
|
flash.alert = t('errors.messages.procedure_not_found')
|
|
end
|
|
|
|
redirect_to root_path
|
|
end
|
|
|
|
def store_user_location!(procedure)
|
|
store_location_for(:user, helpers.procedure_lien(procedure))
|
|
end
|
|
|
|
def generate_empty_pdf(procedure)
|
|
@dossier = procedure.new_dossier
|
|
s = render_to_string(file: 'dossiers/dossier_vide', formats: [:pdf])
|
|
send_data(s, :filename => "#{procedure.libelle}.pdf")
|
|
end
|
|
end
|
|
end
|