2024-04-29 00:17:15 +02:00
|
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
2023-09-21 17:01:27 +02:00
|
|
|
|
module GroupeInstructeursSignatureConcern
|
|
|
|
|
extend ActiveSupport::Concern
|
|
|
|
|
|
|
|
|
|
included do
|
|
|
|
|
def add_signature
|
|
|
|
|
@procedure = procedure
|
|
|
|
|
@groupe_instructeur = groupe_instructeur
|
|
|
|
|
@instructeurs = paginated_instructeurs
|
|
|
|
|
|
|
|
|
|
signature_file = params[:groupe_instructeur][:signature]
|
|
|
|
|
|
|
|
|
|
if params[:groupe_instructeur].nil? || signature_file.blank?
|
|
|
|
|
if respond_to?(:available_instructeur_emails)
|
|
|
|
|
@available_instructeur_emails = available_instructeur_emails
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
flash[:alert] = "Aucun fichier joint pour le tampon de l'attestation"
|
|
|
|
|
render :show
|
|
|
|
|
else
|
2024-07-24 11:10:24 +02:00
|
|
|
|
if @groupe_instructeur.signature.attach(signature_file)
|
2023-09-21 17:01:27 +02:00
|
|
|
|
handle_redirect :success
|
|
|
|
|
else
|
|
|
|
|
handle_redirect :alert
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def preview_attestation
|
|
|
|
|
attestation_template = procedure.attestation_template || procedure.build_attestation_template
|
|
|
|
|
@attestation = attestation_template.render_attributes_for({ groupe_instructeur: groupe_instructeur })
|
|
|
|
|
|
|
|
|
|
render 'administrateurs/attestation_templates/show', formats: [:pdf]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
|
|
def handle_redirect(status)
|
|
|
|
|
redirect, preview = if self.class.module_parent_name == "Administrateurs"
|
|
|
|
|
[
|
|
|
|
|
:admin_procedure_groupe_instructeur_path,
|
|
|
|
|
:preview_attestation_admin_procedure_groupe_instructeur_path
|
|
|
|
|
]
|
|
|
|
|
else
|
|
|
|
|
[
|
|
|
|
|
:instructeur_groupe_path,
|
|
|
|
|
:preview_attestation_instructeur_groupe_path
|
|
|
|
|
]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
redirect_path = method(redirect).call(@procedure, @groupe_instructeur)
|
|
|
|
|
preview_path = method(preview).call(@procedure, @groupe_instructeur)
|
|
|
|
|
|
|
|
|
|
case status
|
|
|
|
|
when :success
|
|
|
|
|
redirect_to redirect_path, notice: "Le tampon de l’attestation a bien été ajouté. #{helpers.link_to("Prévisualiser l’attestation", preview_path)}"
|
|
|
|
|
when :alert
|
|
|
|
|
redirect_to redirect_path, alert: "Une erreur a empêché l’ajout du tampon. Réessayez dans quelques instants."
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|