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
|
def revive
|
||||||
avis = Avis.find(params[:id])
|
avis = Avis.find(params[:id])
|
||||||
if avis.revivable_by?(current_instructeur)
|
if avis.remind_by!(current_instructeur)
|
||||||
if avis.answer.blank?
|
|
||||||
AvisMailer.avis_invitation(avis).deliver_later
|
AvisMailer.avis_invitation(avis).deliver_later
|
||||||
flash.notice = "Un mail de relance a été envoyé à #{avis.expert.email}"
|
flash.notice = "Un mail de relance a été envoyé à #{avis.expert.email}"
|
||||||
redirect_back(fallback_location: avis_instructeur_dossier_path(avis.procedure, avis.dossier))
|
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
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -101,4 +101,9 @@ class Avis < ApplicationRecord
|
||||||
destroy!
|
destroy!
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def remind_by!(revocator)
|
||||||
|
return false if !revivable_by?(revocator) || answer.present?
|
||||||
|
update!(revived_at: Time.zone.now)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -33,6 +33,7 @@ describe Instructeurs::AvisController, type: :controller do
|
||||||
get :revive, params: { procedure_id: procedure.id, id: avis.id }
|
get :revive, params: { procedure_id: procedure.id, id: avis.id }
|
||||||
expect(AvisMailer).to have_received(:avis_invitation).once.with(avis)
|
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(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
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue