[Fix #2494] Improve deletion warning text

This commit is contained in:
gregoirenovel 2018-08-30 23:51:50 +02:00
parent 23e3409247
commit 75ee41b7fa
3 changed files with 79 additions and 2 deletions

View file

@ -21,4 +21,29 @@ module ProcedureHelper
action = procedure.archivee? ? :reopen : :publish
t(action, scope: [:modal, :publish, key])
end
def dossiers_deletion_warning(procedure)
dossiers_count = procedure.dossiers.state_not_brouillon.count
brouillons_count = procedure.dossiers.state_brouillon.count
formatted_dossiers_count = nil
formatted_brouillons_count = nil
if dossiers_count > 0
formatted_dossiers_count = pluralize(dossiers_count, "dossier", "dossiers")
end
if brouillons_count > 0
formatted_brouillons_count = pluralize(brouillons_count, "brouillon", "brouillons")
end
formatted_combination = [formatted_dossiers_count, formatted_brouillons_count]
.compact
.join(" et ")
[
formatted_combination,
dossiers_count + brouillons_count == 1 ? "est rattaché" : "sont rattachés",
"à cette procédure, la suppression de cette procédure entrainera également leur suppression."
].join(" ")
end
end

View file

@ -109,11 +109,12 @@
.alert.alert-danger
%p
Attention : la suppression dune procédure est définitive.
- dossiers_count = @procedure.dossiers.count
- if dossiers_count > 0
%p
= pluralize(dossiers_count, "dossier est rattaché", "dossiers sont rattachés")
à cette procédure, la suppression de cette procédure entrainera également leur suppression.
= dossiers_deletion_warning(@procedure)
%p.text-right
= link_to "J'ai compris, je supprime la procédure",
hide_admin_procedure_path(@procedure),

View file

@ -0,0 +1,51 @@
RSpec.describe ProcedureHelper, type: :helper do
let(:procedure) { create(:procedure) }
describe '#dossiers_deletion_warning' do
subject { dossiers_deletion_warning(procedure) }
context 'with 1 submitted dossier' do
before do
dossier_1 = create(:dossier, :en_construction, procedure: procedure)
end
it { is_expected.to eq('1 dossier est rattaché à cette procédure, la suppression de cette procédure entrainera également leur suppression.') }
end
context 'with 2 submitted dossiers' do
before do
dossier_1 = create(:dossier, :en_construction, procedure: procedure)
dossier_2 = create(:dossier, :en_instruction, procedure: procedure)
end
it { is_expected.to eq('2 dossiers sont rattachés à cette procédure, la suppression de cette procédure entrainera également leur suppression.') }
end
context 'with 1 brouillon dossier' do
before do
dossier_1 = create(:dossier, procedure: procedure)
end
it { is_expected.to eq('1 brouillon est rattaché à cette procédure, la suppression de cette procédure entrainera également leur suppression.') }
end
context 'with 2 brouillons dossiers' do
before do
dossier_1 = create(:dossier, procedure: procedure)
dossier_2 = create(:dossier, procedure: procedure)
end
it { is_expected.to eq('2 brouillons sont rattachés à cette procédure, la suppression de cette procédure entrainera également leur suppression.') }
end
context 'with 2 submitted dossiers and 1 brouillon dossier' do
before do
dossier_1 = create(:dossier, :en_instruction, procedure: procedure)
dossier_2 = create(:dossier, :en_instruction, procedure: procedure)
dossier_3 = create(:dossier, procedure: procedure)
end
it { is_expected.to eq('2 dossiers et 1 brouillon sont rattachés à cette procédure, la suppression de cette procédure entrainera également leur suppression.') }
end
end
end