[#2772] For unmigrated dossiers, make read-only access possible
and notify usager
This commit is contained in:
parent
1e4ccda14c
commit
bbdb446dfd
3 changed files with 58 additions and 6 deletions
|
@ -29,4 +29,13 @@ class DossierMailer < ApplicationMailer
|
|||
|
||||
mail(to: dossier.user.email, subject: @subject)
|
||||
end
|
||||
|
||||
def notify_unmigrated_to_user(dossier, new_procedure)
|
||||
@dossier = dossier
|
||||
@dossier_kind = dossier.brouillon? ? 'brouillon' : 'dossier'
|
||||
@subject = "Changement de procédure pour votre #{@dossier_kind} n° #{@dossier.id}"
|
||||
@new_procedure = new_procedure
|
||||
|
||||
mail(to: dossier.user.email, subject: @subject)
|
||||
end
|
||||
end
|
||||
|
|
26
app/views/dossier_mailer/notify_unmigrated_to_user.html.haml
Normal file
26
app/views/dossier_mailer/notify_unmigrated_to_user.html.haml
Normal file
|
@ -0,0 +1,26 @@
|
|||
- content_for(:title, @subject)
|
||||
|
||||
%h1 Bonjour,
|
||||
|
||||
%p
|
||||
Vous avez commencé un #{@dossier_kind},
|
||||
= link_to("n° #{@dossier.id}", dossier_url(@dossier))
|
||||
sur la procédure « #{@dossier.procedure.libelle} ».
|
||||
En raison d’un changement dans la procédure, votre #{@dossier_kind} a été inaccessible pendant quelques jours.
|
||||
L’accès est à présent à nouveau possible.
|
||||
|
||||
%p
|
||||
Malheureusement, en raison des changements dans le procédure, vous ne pourrez pas mener à terme le #{@dossier_kind} commencé.
|
||||
Si votre démarche est toujours d’actualité, nous vous invitons à la recommencer sur
|
||||
= link_to("la nouvelle procédure", commencer_url(@new_procedure.path))
|
||||
\.
|
||||
|
||||
%p
|
||||
Nous avons pris des mesures pour nous assurer qu’un tel désagrément ne se reproduise pas,
|
||||
et vous présentons nos excuses pour la gène occasionnée.
|
||||
|
||||
%p
|
||||
Bonne journée,
|
||||
|
||||
%p
|
||||
L'équipe demarches-simplifiees.fr
|
|
@ -172,20 +172,37 @@ namespace :after_party do
|
|||
end
|
||||
|
||||
def restore_deleted_dossiers(deleted_procedure_id, new_procedure_id, champ_mapping, champ_private_mapping, pj_mapping)
|
||||
Dossier.unscoped
|
||||
.joins('JOIN procedures ON procedures.id = dossiers.procedure_id')
|
||||
.where(procedure_id: deleted_procedure_id)
|
||||
.where('dossiers.hidden_at >= procedures.hidden_at')
|
||||
.update_all(hidden_at: nil)
|
||||
|
||||
source_procedure = Procedure.unscoped.find(deleted_procedure_id)
|
||||
destination_procedure = Procedure.find(new_procedure_id)
|
||||
|
||||
deleted_dossiers = Dossier.unscoped
|
||||
.where(procedure_id: deleted_procedure_id)
|
||||
.where('dossiers.hidden_at >= ?', source_procedure.hidden_at)
|
||||
|
||||
deleted_dossier_ids = deleted_dossiers.pluck(:id).to_a
|
||||
deleted_dossiers.update_all(hidden_at: nil)
|
||||
|
||||
source_procedure
|
||||
.update_columns(
|
||||
hidden_at: nil,
|
||||
archived_at: source_procedure.hidden_at,
|
||||
aasm_state: :archivee
|
||||
)
|
||||
|
||||
migrator = Tasks::DossierProcedureMigrator.new(source_procedure, destination_procedure, champ_mapping, champ_private_mapping, pj_mapping) do |dossier|
|
||||
DossierMailer.notify_undelete_to_user(dossier).deliver_later
|
||||
end
|
||||
migrator.check_consistency
|
||||
migrator.migrate_dossiers
|
||||
|
||||
source_procedure.dossiers.where(id: deleted_dossier_ids).find_each do |dossier|
|
||||
if dossier.termine?
|
||||
DossierMailer.notify_undelete_to_user(dossier).deliver_later
|
||||
else
|
||||
rake_puts "Dossier #{dossier.id} non migré\n"
|
||||
DossierMailer.notify_unmigrated_to_user(dossier, destination_procedure).deliver_later
|
||||
end
|
||||
end
|
||||
end
|
||||
end.new.run
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue