feat(sva): more details with example dates on procedure description
This commit is contained in:
parent
73a28d2eca
commit
4aaf5566c3
9 changed files with 83 additions and 18 deletions
|
@ -22,6 +22,10 @@ module ProcedureSVASVRConcern
|
|||
@sva_svr_configuration ||= SVASVRConfiguration.new(sva_svr)
|
||||
end
|
||||
|
||||
def sva_svr_decision
|
||||
decision
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def decision
|
||||
|
|
|
@ -1,6 +1,17 @@
|
|||
class SVASVRDecisionDateCalculatorService
|
||||
attr_reader :dossier, :procedure, :unit, :period, :resume_method
|
||||
|
||||
EMPTY_DOSSIER = Struct.new(:depose_at) do
|
||||
def corrections
|
||||
[]
|
||||
end
|
||||
end
|
||||
|
||||
def self.decision_date_from_today(procedure)
|
||||
dossier = EMPTY_DOSSIER.new(Date.current)
|
||||
new(dossier, procedure).decision_date
|
||||
end
|
||||
|
||||
def initialize(dossier, procedure)
|
||||
@dossier = dossier
|
||||
@procedure = procedure
|
||||
|
|
|
@ -80,14 +80,13 @@
|
|||
.fr-my-3w
|
||||
= render Procedure::NoticeComponent.new(procedure:)
|
||||
|
||||
- if procedure.sva?
|
||||
= render Dsfr::CalloutComponent.new(title: t('shared.procedure_description.sva_title'), icon: "fr-fi-information-line") do |c|
|
||||
- if procedure.sva_svr_enabled?
|
||||
= render Dsfr::CalloutComponent.new(title: t('shared.procedure_description.sva_svr_title', rule: t(procedure.sva_svr_decision, scope: 'shared.procedures.sva_svr_rule_name')), icon: "fr-fi-information-line", extra_class_names: "fr-my-6w") do |c|
|
||||
- c.with_body do
|
||||
%p
|
||||
= t('shared.procedure_description.sva_text_html')
|
||||
= t("#{procedure.sva_svr_decision}_text_html", scope: 'shared.procedure_description') # i18n-tasks-use: t('shared.procedure_description.sva_text_html') t('shared.procedure_description.svr_text_html')
|
||||
%p.fr-mt-1w
|
||||
= t('shared.procedure_description.sva_svr_prevision_date',
|
||||
delay: t("x_#{procedure.sva_svr_configuration.unit}", count: procedure.sva_svr_configuration.period.to_i, scope: 'datetime.distance_in_words'),
|
||||
date: l(SVASVRDecisionDateCalculatorService.decision_date_from_today(procedure), format: :long).gsub(' ', " "))
|
||||
|
||||
- elsif procedure.svr?
|
||||
= render Dsfr::CalloutComponent.new(title: t('shared.procedure_description.svr_title'), icon: "fr-fi-information-line") do |c|
|
||||
- c.with_body do
|
||||
%p
|
||||
= t('shared.procedure_description.svr_text_html')
|
||||
|
|
|
@ -846,7 +846,10 @@ en:
|
|||
estimated_fill_duration_detail: "The fill time is etimated to %{estimated_minutes} min. This period may vary depending on the options you choose"
|
||||
pieces_jointes : What are the required attachments ?
|
||||
pieces_jointes_conditionnal_list_title : Attachments list according to your situation
|
||||
sva_title: "Qu’est-ce que le cadre législatif « Silence Vaut Accord » ?"
|
||||
sva_text_html: "Le SVA « <strong>Silence Vaut Accord</strong> » est un principe législatif qui définit le comportement d’une demande en cas de silence de l’administration : la demande est automatiquement acceptée (par opposition au « Silence Vaut Rejet » où elle serait automatiquement refusée)."
|
||||
svr_title: "Qu’est-ce que le cadre législatif « Silence Vaut Rejet » ?"
|
||||
svr_text_html: "Le SVR « <strong>Silence Vaut Rejet</strong> » est un principe législatif qui définit le comportement d’une demande en cas de silence de l’administration : la demande est automatiquement refusée (par opposition au « Silence Vaut Accord » où elle serait automatiquement acceptée)."
|
||||
sva_svr_title: "This procedure applies the « %{rule} »"
|
||||
sva_text_html: "SVA, or « <strong>Silence Vaut Rejet</strong> » is a legislative principle that defines the behavior of a request in the event of silence from the administration: the request is automatically accepted after a certain period if your file is complete."
|
||||
svr_text_html: "SVR, or « <strong>Silence Vaut Rejet</strong> » is a legislative principle that defines the behavior of a request in the event of silence from the administration: the request is automatically refused after a certain period if your file is complete."
|
||||
sva_svr_prevision_date:
|
||||
Thus, you will receive an answer to your request within %{delay} of submitting your complete file.
|
||||
For example, if you submit your application today, you will receive a reply no later than %{date}.
|
||||
If your file is incomplete, this date may be postponed until submitting a completed file.
|
||||
|
|
|
@ -900,7 +900,10 @@ fr:
|
|||
estimated_fill_duration_detail: "La durée de remplissage est estimée à %{estimated_minutes} min. Ce délai peut varier selon les options que vous choisirez."
|
||||
pieces_jointes : Quelles sont les pièces justificatives à fournir ?
|
||||
pieces_jointes_conditionnal_list_title : Liste des pièces en fonction de votre situation
|
||||
sva_title: "Qu’est-ce que le cadre législatif « Silence Vaut Accord » ?"
|
||||
sva_text_html: "Le SVA « <strong>Silence Vaut Accord</strong> » est un principe législatif qui définit le comportement d’une demande en cas de silence de l’administration : la demande est automatiquement acceptée (par opposition au « Silence Vaut Rejet » où elle serait automatiquement refusée)."
|
||||
svr_title: "Qu’est-ce que le cadre législatif « Silence Vaut Rejet » ?"
|
||||
svr_text_html: "Le SVR « <strong>Silence Vaut Rejet</strong> » est un principe législatif qui définit le comportement d’une demande en cas de silence de l’administration : la demande est automatiquement refusée (par opposition au « Silence Vaut Accord » où elle serait automatiquement acceptée)."
|
||||
sva_svr_title: "Cette démarche applique le « %{rule} »"
|
||||
sva_text_html: "Le SVA, ou « <strong>Silence Vaut Accord</strong> », est un principe législatif qui définit le comportement d’une demande en cas d’absence de réponse de l’administration : la demande sera automatiquement acceptée à l’issue d’un délai si votre dossier est complet."
|
||||
svr_text_html: "Le SVR, ou « <strong>Silence Vaut Rejet</strong> », est un principe législatif qui définit le comportement d’une demande en cas d’absence de réponse de l’administration : la demande sera automatiquement refusée à l’issue d’un délai si votre dossier est complet."
|
||||
sva_svr_prevision_date:
|
||||
Ainsi, vous recevrez une réponse à votre demande dans les %{delay} après avoir déposé votre dossier complet.
|
||||
Par exemple, si vous déposez votre dossier aujourd'hui, vous aurez une réponse au plus tard le %{date}.
|
||||
Si votre dossier est incomplet, cette date pourrait être repoussée jusqu’à la soumission d’un dossier complété.
|
||||
|
|
|
@ -6,6 +6,15 @@
|
|||
:message_date_with_year => lambda { |time, _| "%B #{time.day.ordinalize} %Y at %H:%M" },
|
||||
:message_date_without_time => lambda { |_time, _| "%Y/%m/%d" }
|
||||
}
|
||||
},
|
||||
|
||||
datetime: {
|
||||
distance_in_words: {
|
||||
x_weeks: {
|
||||
one: "1 week",
|
||||
other: "%{count} weeks"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,6 +13,15 @@
|
|||
:message_date_with_year => lambda { |time, _| "le #{time.day == 1 ? '1er' : time.day} %B %Y à %H h %M" },
|
||||
:message_date_without_time => lambda { |_time, _| "%d/%m/%Y" }
|
||||
}
|
||||
},
|
||||
|
||||
datetime: {
|
||||
distance_in_words: {
|
||||
x_weeks: {
|
||||
one: "1 semaine",
|
||||
other: "%{count} semaines"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,9 +6,9 @@ describe SVASVRDecisionDateCalculatorService do
|
|||
let(:procedure) { create(:procedure, sva_svr: config) }
|
||||
let(:dossier) { create(:dossier, :en_instruction, procedure:, depose_at: DateTime.new(2023, 5, 15, 12)) }
|
||||
|
||||
subject { described_class.new(dossier, procedure).decision_date }
|
||||
|
||||
describe '#decision_date' do
|
||||
subject { described_class.new(dossier, procedure).decision_date }
|
||||
|
||||
context 'when sva has a months period' do
|
||||
let(:config) { { decision: :sva, period: 2, unit: :months, resume: :continue } }
|
||||
|
||||
|
@ -153,4 +153,15 @@ describe SVASVRDecisionDateCalculatorService do
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#decision_date_from_today' do
|
||||
let(:config) { { decision: :sva, period: 2, unit: :months, resume: :continue } }
|
||||
before { travel_to DateTime.new(2023, 4, 15, 12) }
|
||||
|
||||
subject { described_class.decision_date_from_today(procedure) }
|
||||
|
||||
it 'calculates the date based on today' do
|
||||
expect(subject).to eq(Date.new(2023, 6, 16))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -73,10 +73,26 @@ describe 'shared/_procedure_description', type: :view do
|
|||
end
|
||||
|
||||
context 'when the procedure is sva' do
|
||||
before { travel_to DateTime.new(2023, 1, 1) }
|
||||
let(:procedure) { create(:procedure, :published, :sva) }
|
||||
|
||||
it 'shows an explanation text' do
|
||||
subject
|
||||
expect(rendered).to have_text('Cette démarche applique le « Silence Vaut Accord »')
|
||||
expect(rendered).to have_text('dans les 2 mois')
|
||||
expect(rendered).to have_text("2 mars 2023")
|
||||
end
|
||||
|
||||
context 'when unit is weeks' do
|
||||
before {
|
||||
procedure.sva_svr["unit"] = "weeks"
|
||||
}
|
||||
|
||||
it 'shows an human period' do
|
||||
subject
|
||||
expect(rendered).to have_text('dans les 2 semaines')
|
||||
expect(rendered).to have_text("16 janvier 2023")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue