feat(faq): dynamic substitutions support
Ce code avait été initalement codé, mais le contenu de la FAQ n'en a à ce stade plus besoin. On le garde sous le coude car c'est peu touchy et ça pourrait bientôt resservir.
This commit is contained in:
parent
e9920c76d5
commit
417cac5b83
3 changed files with 25 additions and 3 deletions
|
@ -21,7 +21,7 @@ class FAQController < ApplicationController
|
||||||
application_base_url: Current.application_base_url,
|
application_base_url: Current.application_base_url,
|
||||||
application_name: Current.application_name,
|
application_name: Current.application_name,
|
||||||
contact_email: Current.contact_email
|
contact_email: Current.contact_email
|
||||||
}
|
}.merge(dynamic_substitutions)
|
||||||
|
|
||||||
FAQsLoaderService.new(substitutions)
|
FAQsLoaderService.new(substitutions)
|
||||||
end
|
end
|
||||||
|
@ -36,4 +36,13 @@ class FAQController < ApplicationController
|
||||||
rescue KeyError
|
rescue KeyError
|
||||||
raise ActionController::RoutingError.new("FAQ not found: #{path}")
|
raise ActionController::RoutingError.new("FAQ not found: #{path}")
|
||||||
end
|
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
|
end
|
||||||
|
|
|
@ -9,13 +9,13 @@ class FAQsLoaderService
|
||||||
def initialize(substitutions)
|
def initialize(substitutions)
|
||||||
@substitutions = 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
|
load_faqs
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def find(path)
|
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)
|
file_path = @faqs_by_path.fetch(path).fetch(:file_path)
|
||||||
|
|
||||||
parse_with_substitutions(file_path)
|
parse_with_substitutions(file_path)
|
||||||
|
|
|
@ -9,6 +9,19 @@ title: "Comment trouver ma démarche ?"
|
||||||
|
|
||||||
# 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,
|
||||||
|
intervenant sous l’égide du ministère de la Transformation et de la Fonction publiques,
|
||||||
|
permettant aux administrations publiques de l’État, aux opérateurs et collectivités de dématérialiser leurs démarches administratives.
|
||||||
|
|
||||||
|
> À ce jour, [%{procedures_count} formulaires sont disponibles sur %{application_name}](/stats), mis en oeuvre par %{services_count} services et organismes publics.
|
||||||
|
>
|
||||||
|
> Les administrations peuvent utiliser d’autres dispositifs de dématérialisation et dont vous pouvez retrouver les informations sur le site [services-public.fr](https://www.service-public.fr), ou bien à partir des sites internet de chaque organisme.
|
||||||
|
|
||||||
|
> Ce site ne répertorie donc pas l’ensemble des démarches en ligne déployées par les administrations et services publics. Nous vous invitons à parcourir [service-public.fr](https://www.service-public.fr), le site officiel d’information et de démarches administratives si vous avez une question sur vos droits, une démarche à faire pour être davantage guidé(e).
|
||||||
|
>
|
||||||
|
> Pour effectuer un dépôt sur %{application_name} vous devez notamment disposer d’un lien qui vous a été communiqué par l’administration.
|
||||||
|
|
||||||
## 1. Trouver le lien de votre démarche
|
## 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 :
|
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 :
|
||||||
|
|
Loading…
Reference in a new issue