diff --git a/app/views/layouts/mailers/_signature.html.haml b/app/views/layouts/mailers/_signature.html.haml index f425b70be..82d83f7b1 100644 --- a/app/views/layouts/mailers/_signature.html.haml +++ b/app/views/layouts/mailers/_signature.html.haml @@ -4,4 +4,5 @@ - if defined?(service) && service && service.nom.present? = service.nom - else - L’équipe demarches-simplifiees.fr + -# The WORD JOINER unicode entity prevents email clients from auto-linking the signature + L’équipe demarches-simplifiees⁠.fr diff --git a/lib/tasks/deployment/20190819142551_create_default_groupe_instructeur.rake b/lib/tasks/deployment/20190819142551_create_default_groupe_instructeur.rake index 4e3021da7..df9cfc3f6 100644 --- a/lib/tasks/deployment/20190819142551_create_default_groupe_instructeur.rake +++ b/lib/tasks/deployment/20190819142551_create_default_groupe_instructeur.rake @@ -1,7 +1,11 @@ namespace :after_party do desc 'Deployment task: create_default_groupe_instructeur' task create_default_groupe_instructeur: :environment do - Procedure.find_each do |procedure| + Procedure + .unscoped + .left_outer_joins(:groupe_instructeurs) + .where('groupe_instructeurs.id is null') + .find_each do |procedure| procedure.groupe_instructeurs.create(label: GroupeInstructeur::DEFAULT_LABEL) end diff --git a/lib/tasks/deployment/20190826153115_link_dossier_and_groupe_instructeur.rake b/lib/tasks/deployment/20190826153115_link_dossier_and_groupe_instructeur.rake index 623e617d0..aeb50123b 100644 --- a/lib/tasks/deployment/20190826153115_link_dossier_and_groupe_instructeur.rake +++ b/lib/tasks/deployment/20190826153115_link_dossier_and_groupe_instructeur.rake @@ -2,9 +2,10 @@ namespace :after_party do desc 'Deployment task: link_dossier_and_groupe_instructeur' task link_dossier_and_groupe_instructeur: :environment do sql = <<~SQL - UPDATE dossiers SET groupe_instructeur_id = groupe_instructeurs.id - FROM dossiers AS d1 INNER JOIN groupe_instructeurs ON groupe_instructeurs.procedure_id = d1.procedure_id - WHERE dossiers.id = d1.id; + UPDATE dossiers AS d1 SET groupe_instructeur_id = g.id + FROM groupe_instructeurs AS g + WHERE g.procedure_id = d1.procedure_id + and d1.groupe_instructeur_id is null; SQL ActiveRecord::Base.connection.execute(sql) diff --git a/spec/lib/tasks/deployment/20190819142551_create_default_groupe_instructeur.rake_spec.rb b/spec/lib/tasks/deployment/20190819142551_create_default_groupe_instructeur.rake_spec.rb new file mode 100644 index 000000000..e6a264564 --- /dev/null +++ b/spec/lib/tasks/deployment/20190819142551_create_default_groupe_instructeur.rake_spec.rb @@ -0,0 +1,45 @@ +describe '20190819142551_create_default_groupe_instructeur.rake' do + let(:rake_task) { Rake::Task['after_party:create_default_groupe_instructeur'] } + + subject { rake_task.invoke } + after { rake_task.reenable } + + context 'with a procedure without gi' do + let!(:procedure_without_gi) { create(:procedure) } + + before do + procedure_without_gi.groupe_instructeurs.destroy_all + end + + it do + expect(procedure_without_gi.groupe_instructeurs).to be_empty + subject + expect(procedure_without_gi.reload.groupe_instructeurs.pluck(:label)).to eq(['défaut']) + end + end + + context 'with a procedure hidden without gi' do + let!(:procedure_hidden_without_gi) { create(:procedure, :hidden) } + + before do + procedure_hidden_without_gi.groupe_instructeurs.destroy_all + end + + it do + expect(procedure_hidden_without_gi.groupe_instructeurs).to be_empty + subject + expect(procedure_hidden_without_gi.reload.groupe_instructeurs.pluck(:label)).to eq(['défaut']) + end + end + + context 'with a procedure with a gi' do + let!(:procedure_with_gi) { create(:procedure) } + + it do + gi = procedure_with_gi.groupe_instructeurs.first + expect(gi).to be_present + subject + expect(procedure_with_gi.reload.groupe_instructeurs).to eq([gi]) + end + end +end diff --git a/spec/lib/tasks/deployment/20190819145528_link_assign_and_groupe_instructeur.rake_spec.rb b/spec/lib/tasks/deployment/20190819145528_link_assign_and_groupe_instructeur.rake_spec.rb new file mode 100644 index 000000000..01dc3a8c7 --- /dev/null +++ b/spec/lib/tasks/deployment/20190819145528_link_assign_and_groupe_instructeur.rake_spec.rb @@ -0,0 +1,36 @@ +describe '20190819145528_link_assign_and_groupe_instructeur.rake' do + let(:rake_task) { Rake::Task['after_party:link_assign_and_groupe_instructeur'] } + + subject { rake_task.invoke } + after { rake_task.reenable } + + context 'with an assign_to without groupe_instructeur' do + let!(:procedure) { create(:procedure) } + let!(:instructeur) { create(:instructeur) } + let!(:assign_to) do + at = AssignTo.create!(instructeur: instructeur) + at.update_column(:procedure_id, procedure.id) + at + end + + it 'assigns its defaut groupe instructeur' do + expect(assign_to.groupe_instructeur).to be_nil + subject + expect(assign_to.reload.groupe_instructeur).to eq(procedure.defaut_groupe_instructeur) + end + end + + context 'with an assign_to with groupe_instructeur' do + let!(:procedure) { create(:procedure) } + let!(:instructeur) { create(:instructeur, groupe_instructeurs: [procedure.defaut_groupe_instructeur]) } + let!(:assign_to) { instructeur.assign_to.first } + + it 'assigns its defaut groupe instructeur' do + expect(assign_to.groupe_instructeur).to eq(procedure.defaut_groupe_instructeur) + expect(procedure.reload.defaut_groupe_instructeur.assign_tos.count).to eq(1) + subject + expect(instructeur.assign_to).to eq([assign_to]) + expect(procedure.reload.defaut_groupe_instructeur.assign_tos.count).to eq(1) + end + end +end