feat(groupe-instructeur): instructeur can add signature in attestation
This commit is contained in:
parent
ad10335888
commit
c02e6f2a77
4 changed files with 56 additions and 0 deletions
|
@ -1,5 +1,7 @@
|
||||||
module Instructeurs
|
module Instructeurs
|
||||||
class GroupeInstructeursController < InstructeurController
|
class GroupeInstructeursController < InstructeurController
|
||||||
|
include UninterlacePngConcern
|
||||||
|
|
||||||
ITEMS_PER_PAGE = 25
|
ITEMS_PER_PAGE = 25
|
||||||
|
|
||||||
def index
|
def index
|
||||||
|
@ -13,6 +15,26 @@ module Instructeurs
|
||||||
@instructeurs = paginated_instructeurs
|
@instructeurs = paginated_instructeurs
|
||||||
end
|
end
|
||||||
|
|
||||||
|
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?
|
||||||
|
flash[:alert] = "Aucun fichier joint pour le tampon de l'attestation"
|
||||||
|
render :show
|
||||||
|
else
|
||||||
|
file = uninterlace_png(signature_file)
|
||||||
|
params[:groupe_instructeur][:signature] = file
|
||||||
|
if @groupe_instructeur.update(signature: file)
|
||||||
|
redirect_to instructeur_groupe_path(@procedure, @groupe_instructeur),
|
||||||
|
notice: "Le tampon de l'attestation a bien été ajouté"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def add_instructeur
|
def add_instructeur
|
||||||
instructeur = Instructeur.by_email(instructeur_email) ||
|
instructeur = Instructeur.by_email(instructeur_email) ||
|
||||||
create_instructeur(instructeur_email)
|
create_instructeur(instructeur_email)
|
||||||
|
|
|
@ -65,3 +65,18 @@
|
||||||
%p= service.telephone
|
%p= service.telephone
|
||||||
- if service.horaires.present?
|
- if service.horaires.present?
|
||||||
%p= service.horaires
|
%p= service.horaires
|
||||||
|
.card.mt-2
|
||||||
|
= render NestedForms::FormOwnerComponent.new
|
||||||
|
= form_with url: { action: :add_signature }, method: :post, html: { multipart: true } do |f|
|
||||||
|
.card-title Tampon de l'attestation
|
||||||
|
|
||||||
|
.fr-upload-group.fr-mb-4w
|
||||||
|
%p.fr-text--sm.fr-text-mention--grey.fr-mb-1w
|
||||||
|
Dimensions conseillées : au minimum 500 px de largeur ou de hauteur.
|
||||||
|
= render Attachment::EditComponent.new(attached_file: @groupe_instructeur.signature, direct_upload: false)
|
||||||
|
|
||||||
|
.fr-btns-group.fr-btns-group--inline
|
||||||
|
= f.submit 'Ajouter le tampon', class: 'fr-btn'
|
||||||
|
|
||||||
|
- if @groupe_instructeur.signature.persisted?
|
||||||
|
= link_to("Prévisualiser", preview_attestation_admin_procedure_groupe_instructeur_path(@groupe_instructeur.procedure, @groupe_instructeur), class: "fr-btn fr-btn--secondary", **external_link_attributes)
|
||||||
|
|
|
@ -395,6 +395,7 @@ Rails.application.routes.draw do
|
||||||
member do
|
member do
|
||||||
post 'add_instructeur'
|
post 'add_instructeur'
|
||||||
delete 'remove_instructeur'
|
delete 'remove_instructeur'
|
||||||
|
post 'add_signature'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -103,4 +103,22 @@ describe Instructeurs::GroupeInstructeursController, type: :controller do
|
||||||
it { expect(response).to redirect_to(instructeur_groupe_path(procedure, gi_1_1)) }
|
it { expect(response).to redirect_to(instructeur_groupe_path(procedure, gi_1_1)) }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#add_signature' do
|
||||||
|
let(:signature) { fixture_file_upload('spec/fixtures/files/black.png', 'image/png') }
|
||||||
|
|
||||||
|
before do
|
||||||
|
post :add_signature,
|
||||||
|
params: {
|
||||||
|
procedure_id: procedure.id,
|
||||||
|
id: gi_1_2.id,
|
||||||
|
groupe_instructeur: {
|
||||||
|
signature: signature
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
it { expect(response).to redirect_to(instructeur_groupe_path(procedure, gi_1_2)) }
|
||||||
|
it { expect(gi_1_2.reload.signature).to be_attached }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue