Merge pull request #10433 from colinux/faqs-wording

FAQ: précise périmètre d'application de DS
This commit is contained in:
Colin Darie 2024-06-24 14:41:05 +00:00 committed by GitHub
commit 52ec509c15
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 62 additions and 7 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -21,7 +21,7 @@ class FAQController < ApplicationController
application_base_url: Current.application_base_url,
application_name: Current.application_name,
contact_email: Current.contact_email
}
}.merge(dynamic_substitutions)
FAQsLoaderService.new(substitutions)
end
@ -36,4 +36,13 @@ class FAQController < ApplicationController
rescue KeyError
raise ActionController::RoutingError.new("FAQ not found: #{path}")
end
# Hash of dynamic values used for substitutions.
# The values are fetched from or calculated into the Rails cache.
def dynamic_substitutions
{
# Example:
# procedures_count: Rails.cache.fetch("faq/procedures_count", expires_in: 1.day) { helpers.number_with_delimiter(Procedure.publiee.count, delimiter: ' ') },
}
end
end

View file

@ -37,5 +37,20 @@ module Redcarpet
def image(link, title, alt)
view_context.image_tag(link, title:, alt:, loading: :lazy)
end
# rubocop:disable Rails/OutputSafety
def block_quote(raw_html)
if raw_html =~ /^<p>\[!(INFO|WARNING)\]\n/
state = Regexp.last_match(1).downcase.to_sym
content = raw_html.sub(/^<p>\[!(?:INFO|WARNING)\]\n/, '<p>')
component = Dsfr::AlertComponent.new(state:, heading_level: "h2", extra_class_names: "fr-my-3w")
component.render_in(view_context) do |c|
c.with_body { content.html_safe }
end
else
view_context.content_tag(:blockquote, raw_html.html_safe)
end
end
# rubocop:enable Rails/OutputSafety
end
end

View file

@ -9,13 +9,13 @@ class FAQsLoaderService
def initialize(substitutions)
@substitutions = substitutions
@faqs_by_path ||= Rails.cache.fetch(["faqs_data", ApplicationVersion.current, substitutions], expires_in: 1.week) do
@faqs_by_path ||= Rails.cache.fetch(["faqs_data", ApplicationVersion.current, substitutions], expires_in: 1.day) do
load_faqs
end
end
def find(path)
Rails.cache.fetch(["faq", path, ApplicationVersion.current, substitutions], expires_in: 1.week) do
Rails.cache.fetch(["faq", path, ApplicationVersion.current, substitutions], expires_in: 1.day) do
file_path = @faqs_by_path.fetch(path).fetch(:file_path)
parse_with_substitutions(file_path)

View file

@ -9,6 +9,16 @@ title: "Comment trouver ma démarche ?"
# Comment trouver ma démarche ?
> [!INFO]
> *%{application_name}* est un service de la direction interministérielle du numérique, service du Premier ministre.
> Ce site ne dispose pas dun annuaire comprenant lensemble des démarches administratives en ligne. Vous pouvez retrouver des informations soit :
> - sur le site [service-public.fr](https://www.service-public.fr) : site officiel d'information sur les démarches administratives
> - sur le site internet de ladministration concernée (ministère, organisme, préfecture, mairie…)
> Pour effectuer un dépôt sur %{application_name} vous devez notamment disposer dun lien qui vous a été communiqué par ladministration.
## 1. Trouver le lien de votre démarche
Pour déposer un dossier sur %{application_name}, il est nécessaire de disposer du lien de la démarche qui vous intéresse. Il ressemble à un lien de cette forme :
@ -55,5 +65,3 @@ Pour commencer un nouveau dossier sur une démarche déjà réalisée, [connecte
Pour connaitre le nouveau lien vers la démarche en ligne, nous vous invitons à contacter le service en charge de la démarche. Vous trouverez les informations de contact en bas du formulaire dans la partie **« Poser une questions sur la démarche »** (en cliquant sur le numéro de dossier).
![Image montrant comment trouver les informations de contact dune démarche](faq/usager-procedure-close-focus-contact.png)

View file

@ -27,8 +27,7 @@ Pour changer ladresse email associée à votre compte, suivez les étapes sui
3. Dans lencadré  Coordonnées »_, renseignez la nouvelle adresse email que vous souhaitez utiliser. Puis cliquez sur  Changer mon adresse »_. **Attention** : Cette adresse ne doit pas être déjà utilisée par un autre compte sur %{application_name}.
![Section Coordonées avec formulaire de modification demail](faq/usager-edit-email.png)
4. Ouvrez la boîte email de votre nouvelle adresse, et cliquez sur le lien de confirmation que nous vous avons envoyé.<br>
![Capture décran de lemail de confirmation de changement dadresse email](faq/usager-confirm-update-email.png)
4. Ouvrez la boîte email de votre nouvelle adresse, et cliquez sur le lien de confirmation que nous vous avons envoyé.
## Si ladresse est déjà utilisée par un autre compte

View file

@ -32,4 +32,28 @@ RSpec.describe Redcarpet::TrustedRenderer do
expect(renderer.render(markdown)).to include('<a href="mailto:user@example.com">user@example.com</a>')
end
end
context 'with block_quote DSFR alert' do
it 'renders [!INFO] blocks as DSFR info alerts' do
markdown = "> [!INFO]\n> This is an information alert with *emphasis*."
expected_html = <<~HTML
<div class='fr-alert fr-alert--info fr-my-3w'>
<h2 class="fr-alert__title">Information : </h2>
<p>This is an information alert with <em>emphasis</em>.</p>
</div>
HTML
expect(renderer.render(markdown).delete("\n")).to include(expected_html.delete("\n"))
end
it 'renders [!WARNING] blocks as DSFR warning alerts' do
markdown = "> [!WARNING]\n> This is a warning alert."
expected_html = <<~HTML
<div class='fr-alert fr-alert--warning fr-my-3w'>
<h2 class="fr-alert__title">Attention : </h2>
<p>This is a warning alert.</p>
</div>
HTML
expect(renderer.render(markdown).delete("\n")).to include(expected_html.delete("\n"))
end
end
end