feat(avis): add remind_by! method
This commit is contained in:
parent
1d06656427
commit
004bf5be38
3 changed files with 10 additions and 9 deletions
|
@ -16,15 +16,10 @@ module Instructeurs
|
|||
|
||||
def revive
|
||||
avis = Avis.find(params[:id])
|
||||
if avis.revivable_by?(current_instructeur)
|
||||
if avis.answer.blank?
|
||||
AvisMailer.avis_invitation(avis).deliver_later
|
||||
flash.notice = "Un mail de relance a été envoyé à #{avis.expert.email}"
|
||||
redirect_back(fallback_location: avis_instructeur_dossier_path(avis.procedure, avis.dossier))
|
||||
else
|
||||
flash.alert = "#{avis.expert.email} a déjà donné son avis"
|
||||
redirect_back(fallback_location: avis_instructeur_dossier_path(avis.procedure, avis.dossier))
|
||||
end
|
||||
if avis.remind_by!(current_instructeur)
|
||||
AvisMailer.avis_invitation(avis).deliver_later
|
||||
flash.notice = "Un mail de relance a été envoyé à #{avis.expert.email}"
|
||||
redirect_back(fallback_location: avis_instructeur_dossier_path(avis.procedure, avis.dossier))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -101,4 +101,9 @@ class Avis < ApplicationRecord
|
|||
destroy!
|
||||
end
|
||||
end
|
||||
|
||||
def remind_by!(revocator)
|
||||
return false if !revivable_by?(revocator) || answer.present?
|
||||
update!(revived_at: Time.zone.now)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -33,6 +33,7 @@ describe Instructeurs::AvisController, type: :controller do
|
|||
get :revive, params: { procedure_id: procedure.id, id: avis.id }
|
||||
expect(AvisMailer).to have_received(:avis_invitation).once.with(avis)
|
||||
expect(flash.notice).to eq("Un mail de relance a été envoyé à #{avis.expert.email}")
|
||||
expect(avis.reload.reminded_at).to be_present
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue