admin can add groupe_instructeur signature
This commit is contained in:
parent
5482863eea
commit
c121a8b2dc
5 changed files with 56 additions and 0 deletions
|
@ -2,6 +2,7 @@ module Administrateurs
|
||||||
class GroupeInstructeursController < AdministrateurController
|
class GroupeInstructeursController < AdministrateurController
|
||||||
include ActiveSupport::NumberHelper
|
include ActiveSupport::NumberHelper
|
||||||
include Logic
|
include Logic
|
||||||
|
include UninterlacePngConcern
|
||||||
|
|
||||||
before_action :ensure_not_super_admin!, only: [:add_instructeur]
|
before_action :ensure_not_super_admin!, only: [:add_instructeur]
|
||||||
|
|
||||||
|
@ -360,6 +361,26 @@ module Administrateurs
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def add_signature
|
||||||
|
@procedure = procedure
|
||||||
|
@groupe_instructeur = groupe_instructeur
|
||||||
|
@instructeurs = paginated_instructeurs
|
||||||
|
@available_instructeur_emails = available_instructeur_emails
|
||||||
|
|
||||||
|
signature_file = params[:groupe_instructeur]&.delete('signature')
|
||||||
|
|
||||||
|
if params[:groupe_instructeur].nil? || signature_file.blank?
|
||||||
|
flash[:alert] = "Aucun fichier joint pour le tampon de l'attestation"
|
||||||
|
render :show
|
||||||
|
else
|
||||||
|
params[:groupe_instructeur][:signature] = uninterlace_png(signature_file)
|
||||||
|
if @groupe_instructeur.update(signature_params)
|
||||||
|
redirect_to admin_procedure_groupe_instructeur_path(procedure, groupe_instructeur),
|
||||||
|
notice: "Le tampon de l'attestation a bien été ajouté"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def closed_params?
|
def closed_params?
|
||||||
|
@ -389,6 +410,10 @@ module Administrateurs
|
||||||
params.require(:groupe_instructeur).permit(:label)
|
params.require(:groupe_instructeur).permit(:label)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def signature_params
|
||||||
|
params.require(:groupe_instructeur).permit(:signature)
|
||||||
|
end
|
||||||
|
|
||||||
def paginated_groupe_instructeurs
|
def paginated_groupe_instructeurs
|
||||||
groupes = if params[:q].present?
|
groupes = if params[:q].present?
|
||||||
query = ActiveRecord::Base.sanitize_sql_like(params[:q])
|
query = ActiveRecord::Base.sanitize_sql_like(params[:q])
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
.card.mt-2
|
||||||
|
= render NestedForms::FormOwnerComponent.new
|
||||||
|
= form_with url: { action: :add_signature }, method: :post, html: { multipart: true, class: 'form' } do |f|
|
||||||
|
.card-title Tampon de l'attestation
|
||||||
|
= render Attachment::EditComponent.new(attached_file: groupe_instructeur.signature, direct_upload: false)
|
||||||
|
%p.notice
|
||||||
|
Formats acceptés : JPG / JPEG / PNG.
|
||||||
|
%br
|
||||||
|
Dimensions conseillées : au minimum 500 px de largeur ou de hauteur, poids maximum : 0,5 Mo.
|
||||||
|
= f.submit 'Ajouter signature', class: 'fr-btn'
|
|
@ -16,3 +16,5 @@
|
||||||
= render partial: 'administrateurs/groupe_instructeurs/contact_information',
|
= render partial: 'administrateurs/groupe_instructeurs/contact_information',
|
||||||
locals: { procedure: @procedure,
|
locals: { procedure: @procedure,
|
||||||
groupe_instructeur: @groupe_instructeur }
|
groupe_instructeur: @groupe_instructeur }
|
||||||
|
= render partial: 'administrateurs/groupe_instructeurs/signature',
|
||||||
|
locals: { groupe_instructeur: @groupe_instructeur }
|
||||||
|
|
|
@ -532,6 +532,7 @@ Rails.application.routes.draw do
|
||||||
delete 'remove_instructeur'
|
delete 'remove_instructeur'
|
||||||
get 'reaffecter_dossiers'
|
get 'reaffecter_dossiers'
|
||||||
post 'reaffecter'
|
post 'reaffecter'
|
||||||
|
post 'add_signature'
|
||||||
end
|
end
|
||||||
|
|
||||||
collection do
|
collection do
|
||||||
|
|
|
@ -843,4 +843,22 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
|
||||||
expect(procedure4.reload.routing_enabled).to be_truthy
|
expect(procedure4.reload.routing_enabled).to be_truthy
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#add_signature' do
|
||||||
|
let(:signature) { fixture_file_upload('spec/fixtures/files/black.png', 'image/png') }
|
||||||
|
|
||||||
|
before {
|
||||||
|
post :add_signature,
|
||||||
|
params: {
|
||||||
|
procedure_id: procedure.id,
|
||||||
|
id: gi_1_1.id,
|
||||||
|
groupe_instructeur: {
|
||||||
|
signature: signature
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
it { expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_1)) }
|
||||||
|
it { expect(gi_1_1.signature).to be_attached }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue