diff --git a/Gemfile b/Gemfile index cb06d2eca..8d78db84d 100644 --- a/Gemfile +++ b/Gemfile @@ -37,6 +37,7 @@ gem 'flipper' gem 'flipper-active_record' gem 'flipper-active_support_cache_store' gem 'flipper-ui' +gem 'front_matter_parser' gem 'fugit' gem 'geocoder' gem 'geo_coord', require: "geo/coord" diff --git a/Gemfile.lock b/Gemfile.lock index 5eef464d1..2e54015de 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -278,6 +278,7 @@ GEM fog-core (~> 2.1) fog-json (>= 1.0) formatador (1.1.0) + front_matter_parser (1.0.1) fugit (1.10.1) et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) @@ -923,6 +924,7 @@ DEPENDENCIES flipper-active_record flipper-active_support_cache_store flipper-ui + front_matter_parser fugit geo_coord geocoder diff --git a/app/assets/images/faq/administrateur-add-administrateur.png b/app/assets/images/faq/administrateur-add-administrateur.png new file mode 100644 index 000000000..bb8e5d30d Binary files /dev/null and b/app/assets/images/faq/administrateur-add-administrateur.png differ diff --git a/app/assets/images/faq/administrateur-all-procedures.png b/app/assets/images/faq/administrateur-all-procedures.png new file mode 100644 index 000000000..db6ef0bc8 Binary files /dev/null and b/app/assets/images/faq/administrateur-all-procedures.png differ diff --git a/app/assets/images/faq/administrateur-button-copy-procedure.png b/app/assets/images/faq/administrateur-button-copy-procedure.png new file mode 100644 index 000000000..2d2fbcdb3 Binary files /dev/null and b/app/assets/images/faq/administrateur-button-copy-procedure.png differ diff --git a/app/assets/images/faq/administrateur-create-declarative.png b/app/assets/images/faq/administrateur-create-declarative.png new file mode 100644 index 000000000..22d01085f Binary files /dev/null and b/app/assets/images/faq/administrateur-create-declarative.png differ diff --git a/app/assets/images/faq/administrateur-example-markup-preview.png b/app/assets/images/faq/administrateur-example-markup-preview.png new file mode 100644 index 000000000..6b2613757 Binary files /dev/null and b/app/assets/images/faq/administrateur-example-markup-preview.png differ diff --git a/app/assets/images/faq/administrateur-example-markup.png b/app/assets/images/faq/administrateur-example-markup.png new file mode 100644 index 000000000..7890881a7 Binary files /dev/null and b/app/assets/images/faq/administrateur-example-markup.png differ diff --git a/app/assets/images/faq/administrateur-link-all-procedures.png b/app/assets/images/faq/administrateur-link-all-procedures.png new file mode 100644 index 000000000..350d6c811 Binary files /dev/null and b/app/assets/images/faq/administrateur-link-all-procedures.png differ diff --git a/app/assets/images/faq/administrateur-list-champs-repetition.png b/app/assets/images/faq/administrateur-list-champs-repetition.png new file mode 100644 index 000000000..2f8c88bea Binary files /dev/null and b/app/assets/images/faq/administrateur-list-champs-repetition.png differ diff --git a/app/assets/images/faq/administrateur-procedure-action-close.png b/app/assets/images/faq/administrateur-procedure-action-close.png new file mode 100644 index 000000000..e9aa0c1f7 Binary files /dev/null and b/app/assets/images/faq/administrateur-procedure-action-close.png differ diff --git a/app/assets/images/faq/administrateur-procedure-auto-archive.png b/app/assets/images/faq/administrateur-procedure-auto-archive.png new file mode 100644 index 000000000..b67453d38 Binary files /dev/null and b/app/assets/images/faq/administrateur-procedure-auto-archive.png differ diff --git a/app/assets/images/faq/administrateur-procedure-close-message.png b/app/assets/images/faq/administrateur-procedure-close-message.png new file mode 100644 index 000000000..ee6b2b592 Binary files /dev/null and b/app/assets/images/faq/administrateur-procedure-close-message.png differ diff --git a/app/assets/images/faq/administrateur-procedure-close-replace.png b/app/assets/images/faq/administrateur-procedure-close-replace.png new file mode 100644 index 000000000..1ef5f17e5 Binary files /dev/null and b/app/assets/images/faq/administrateur-procedure-close-replace.png differ diff --git a/app/assets/images/faq/administrateur-procedure-test-button.png b/app/assets/images/faq/administrateur-procedure-test-button.png new file mode 100644 index 000000000..593acb38b Binary files /dev/null and b/app/assets/images/faq/administrateur-procedure-test-button.png differ diff --git a/app/assets/images/faq/administrateur-procedure-test-commencer.png b/app/assets/images/faq/administrateur-procedure-test-commencer.png new file mode 100644 index 000000000..942523612 Binary files /dev/null and b/app/assets/images/faq/administrateur-procedure-test-commencer.png differ diff --git a/app/assets/images/faq/administrateur-procedure-test-link.png b/app/assets/images/faq/administrateur-procedure-test-link.png new file mode 100644 index 000000000..e505e7a45 Binary files /dev/null and b/app/assets/images/faq/administrateur-procedure-test-link.png differ diff --git a/app/assets/images/faq/administrateur-procedure-test-publish.png b/app/assets/images/faq/administrateur-procedure-test-publish.png new file mode 100644 index 000000000..3314fd047 Binary files /dev/null and b/app/assets/images/faq/administrateur-procedure-test-publish.png differ diff --git a/app/assets/images/faq/administrateur-procedure-test-thanks.png b/app/assets/images/faq/administrateur-procedure-test-thanks.png new file mode 100644 index 000000000..b241fff64 Binary files /dev/null and b/app/assets/images/faq/administrateur-procedure-test-thanks.png differ diff --git a/app/assets/images/faq/administrateur-procedure-test-usager.png b/app/assets/images/faq/administrateur-procedure-test-usager.png new file mode 100644 index 000000000..290a24709 Binary files /dev/null and b/app/assets/images/faq/administrateur-procedure-test-usager.png differ diff --git a/app/assets/images/faq/administrateur-procedures-list-header.png b/app/assets/images/faq/administrateur-procedures-list-header.png new file mode 100644 index 000000000..2feab43ac Binary files /dev/null and b/app/assets/images/faq/administrateur-procedures-list-header.png differ diff --git a/app/assets/images/faq/administrateur-procedures-list.png b/app/assets/images/faq/administrateur-procedures-list.png new file mode 100644 index 000000000..b3a58d9c8 Binary files /dev/null and b/app/assets/images/faq/administrateur-procedures-list.png differ diff --git a/app/assets/images/faq/administrateur-profile-switch.png b/app/assets/images/faq/administrateur-profile-switch.png new file mode 100644 index 000000000..148aed96d Binary files /dev/null and b/app/assets/images/faq/administrateur-profile-switch.png differ diff --git a/app/assets/images/faq/administrateur-repetition-create.png b/app/assets/images/faq/administrateur-repetition-create.png new file mode 100644 index 000000000..f86f5bc1e Binary files /dev/null and b/app/assets/images/faq/administrateur-repetition-create.png differ diff --git a/app/assets/images/faq/administrateur-repetition-view-usager-empty.png b/app/assets/images/faq/administrateur-repetition-view-usager-empty.png new file mode 100644 index 000000000..dcd32df08 Binary files /dev/null and b/app/assets/images/faq/administrateur-repetition-view-usager-empty.png differ diff --git a/app/assets/images/faq/administrateur-repetition-view-usager-fill.png b/app/assets/images/faq/administrateur-repetition-view-usager-fill.png new file mode 100644 index 000000000..bfb2c72ce Binary files /dev/null and b/app/assets/images/faq/administrateur-repetition-view-usager-fill.png differ diff --git a/app/assets/images/faq/administrateur-set-auto-close-date.png b/app/assets/images/faq/administrateur-set-auto-close-date.png new file mode 100644 index 000000000..37dfd32e1 Binary files /dev/null and b/app/assets/images/faq/administrateur-set-auto-close-date.png differ diff --git a/app/assets/images/faq/administrateur-test-instruction-dossiers-list.png b/app/assets/images/faq/administrateur-test-instruction-dossiers-list.png new file mode 100644 index 000000000..d53508f60 Binary files /dev/null and b/app/assets/images/faq/administrateur-test-instruction-dossiers-list.png differ diff --git a/app/assets/images/faq/instructeur-accepter-add-justificatif.png b/app/assets/images/faq/instructeur-accepter-add-justificatif.png new file mode 100644 index 000000000..aa46c42a5 Binary files /dev/null and b/app/assets/images/faq/instructeur-accepter-add-justificatif.png differ diff --git a/app/assets/images/faq/instructeur-dossiers-list-header.png b/app/assets/images/faq/instructeur-dossiers-list-header.png new file mode 100644 index 000000000..a4e225099 Binary files /dev/null and b/app/assets/images/faq/instructeur-dossiers-list-header.png differ diff --git a/app/assets/images/faq/instructeur-filtres-and.png b/app/assets/images/faq/instructeur-filtres-and.png new file mode 100644 index 000000000..b602aef38 Binary files /dev/null and b/app/assets/images/faq/instructeur-filtres-and.png differ diff --git a/app/assets/images/faq/instructeur-filtres-date.png b/app/assets/images/faq/instructeur-filtres-date.png new file mode 100644 index 000000000..3d3106a5a Binary files /dev/null and b/app/assets/images/faq/instructeur-filtres-date.png differ diff --git a/app/assets/images/faq/instructeur-filtres-dropdown.png b/app/assets/images/faq/instructeur-filtres-dropdown.png new file mode 100644 index 000000000..610fe2ee1 Binary files /dev/null and b/app/assets/images/faq/instructeur-filtres-dropdown.png differ diff --git a/app/assets/images/faq/instructeur-filtres-list.png b/app/assets/images/faq/instructeur-filtres-list.png new file mode 100644 index 000000000..878f3ddcc Binary files /dev/null and b/app/assets/images/faq/instructeur-filtres-list.png differ diff --git a/app/assets/images/faq/instructeur-filtres-or.png b/app/assets/images/faq/instructeur-filtres-or.png new file mode 100644 index 000000000..bca3a8876 Binary files /dev/null and b/app/assets/images/faq/instructeur-filtres-or.png differ diff --git a/app/assets/images/faq/instructeur-procedure-header.png b/app/assets/images/faq/instructeur-procedure-header.png new file mode 100644 index 000000000..74307bab9 Binary files /dev/null and b/app/assets/images/faq/instructeur-procedure-header.png differ diff --git a/app/assets/images/faq/instructeur-procedure-notifications.png b/app/assets/images/faq/instructeur-procedure-notifications.png new file mode 100644 index 000000000..ea56143c2 Binary files /dev/null and b/app/assets/images/faq/instructeur-procedure-notifications.png differ diff --git a/app/assets/images/faq/instructeur-procedure-show.png b/app/assets/images/faq/instructeur-procedure-show.png new file mode 100644 index 000000000..837cc39c7 Binary files /dev/null and b/app/assets/images/faq/instructeur-procedure-show.png differ diff --git a/app/assets/images/faq/sign-in-page.png b/app/assets/images/faq/sign-in-page.png new file mode 100644 index 000000000..c5500c9b8 Binary files /dev/null and b/app/assets/images/faq/sign-in-page.png differ diff --git a/app/assets/images/faq/usager-confirm-update-email.png b/app/assets/images/faq/usager-confirm-update-email.png new file mode 100644 index 000000000..b93ff5680 Binary files /dev/null and b/app/assets/images/faq/usager-confirm-update-email.png differ diff --git a/app/assets/images/faq/usager-dossier-accepte-summary.png b/app/assets/images/faq/usager-dossier-accepte-summary.png new file mode 100644 index 000000000..63ac6714a Binary files /dev/null and b/app/assets/images/faq/usager-dossier-accepte-summary.png differ diff --git a/app/assets/images/faq/usager-dossier-actions-menu-clone.png b/app/assets/images/faq/usager-dossier-actions-menu-clone.png new file mode 100644 index 000000000..fac555853 Binary files /dev/null and b/app/assets/images/faq/usager-dossier-actions-menu-clone.png differ diff --git a/app/assets/images/faq/usager-dossier-actions-menu-start-new.png b/app/assets/images/faq/usager-dossier-actions-menu-start-new.png new file mode 100644 index 000000000..f49e9ca86 Binary files /dev/null and b/app/assets/images/faq/usager-dossier-actions-menu-start-new.png differ diff --git a/app/assets/images/faq/usager-dossier-actions-menu-transfer.png b/app/assets/images/faq/usager-dossier-actions-menu-transfer.png new file mode 100644 index 000000000..6f9259230 Binary files /dev/null and b/app/assets/images/faq/usager-dossier-actions-menu-transfer.png differ diff --git a/app/assets/images/faq/usager-dossier-cloned-draft.png b/app/assets/images/faq/usager-dossier-cloned-draft.png new file mode 100644 index 000000000..743a065f5 Binary files /dev/null and b/app/assets/images/faq/usager-dossier-cloned-draft.png differ diff --git a/app/assets/images/faq/usager-dossiers-list.png b/app/assets/images/faq/usager-dossiers-list.png new file mode 100644 index 000000000..fa425f094 Binary files /dev/null and b/app/assets/images/faq/usager-dossiers-list.png differ diff --git a/app/assets/images/faq/usager-dropdown.png b/app/assets/images/faq/usager-dropdown.png new file mode 100644 index 000000000..6fd5f65a2 Binary files /dev/null and b/app/assets/images/faq/usager-dropdown.png differ diff --git a/app/assets/images/faq/usager-edit-email.png b/app/assets/images/faq/usager-edit-email.png new file mode 100644 index 000000000..6a8b0b48d Binary files /dev/null and b/app/assets/images/faq/usager-edit-email.png differ diff --git a/app/assets/images/faq/usager-edit-identity-brouillon-1.png b/app/assets/images/faq/usager-edit-identity-brouillon-1.png new file mode 100644 index 000000000..7739aa717 Binary files /dev/null and b/app/assets/images/faq/usager-edit-identity-brouillon-1.png differ diff --git a/app/assets/images/faq/usager-edit-identity-brouillon-2.png b/app/assets/images/faq/usager-edit-identity-brouillon-2.png new file mode 100644 index 000000000..0f49e2c7a Binary files /dev/null and b/app/assets/images/faq/usager-edit-identity-brouillon-2.png differ diff --git a/app/assets/images/faq/usager-edit-identity-construction-1.png b/app/assets/images/faq/usager-edit-identity-construction-1.png new file mode 100644 index 000000000..29de87923 Binary files /dev/null and b/app/assets/images/faq/usager-edit-identity-construction-1.png differ diff --git a/app/assets/images/faq/usager-edit-identity-construction-2.png b/app/assets/images/faq/usager-edit-identity-construction-2.png new file mode 100644 index 000000000..f71ceef24 Binary files /dev/null and b/app/assets/images/faq/usager-edit-identity-construction-2.png differ diff --git a/app/assets/images/faq/usager-email-dossier-repasser-instruction.png b/app/assets/images/faq/usager-email-dossier-repasser-instruction.png new file mode 100644 index 000000000..031804e22 Binary files /dev/null and b/app/assets/images/faq/usager-email-dossier-repasser-instruction.png differ diff --git a/app/assets/images/faq/usager-footer-contact.png b/app/assets/images/faq/usager-footer-contact.png new file mode 100644 index 000000000..51a729760 Binary files /dev/null and b/app/assets/images/faq/usager-footer-contact.png differ diff --git a/app/assets/images/faq/usager-form-footer-submit.png b/app/assets/images/faq/usager-form-footer-submit.png new file mode 100644 index 000000000..27922fe6d Binary files /dev/null and b/app/assets/images/faq/usager-form-footer-submit.png differ diff --git a/app/assets/images/faq/usager-messagerie.png b/app/assets/images/faq/usager-messagerie.png new file mode 100644 index 000000000..a0578bdff Binary files /dev/null and b/app/assets/images/faq/usager-messagerie.png differ diff --git a/app/assets/images/faq/usager-procedure-close-focus-contact.png b/app/assets/images/faq/usager-procedure-close-focus-contact.png new file mode 100644 index 000000000..86affd931 Binary files /dev/null and b/app/assets/images/faq/usager-procedure-close-focus-contact.png differ diff --git a/app/assets/images/faq/usager-transfer-dossier.png b/app/assets/images/faq/usager-transfer-dossier.png new file mode 100644 index 000000000..a578b1f28 Binary files /dev/null and b/app/assets/images/faq/usager-transfer-dossier.png differ diff --git a/app/assets/stylesheets/markdown-content.scss b/app/assets/stylesheets/markdown-content.scss new file mode 100644 index 000000000..c166078e8 --- /dev/null +++ b/app/assets/stylesheets/markdown-content.scss @@ -0,0 +1,20 @@ +.markdown-content { + img { + max-width: 100%; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); + + display: block; + + // In markdown img are always wrapped in p, + // which already contains vertical margin. + // We only add margin when there are siblings. + // NOTE: CSS consider the img is only-child even + // when there are only text node siblings, but it's still fine for us. + margin: 1.5rem auto; + + &:only-child { + margin-top: 0; + margin-bottom: 0; + } + } +} diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 9b0a6ffef..32d8c088f 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -339,7 +339,7 @@ class ApplicationController < ActionController::Base environment: sentry[:environment], browser: { modern: BrowserSupport.supported?(browser) }, user: sentry_user, - release: SentryRelease.current + release: ApplicationVersion.current } end diff --git a/app/controllers/faq_controller.rb b/app/controllers/faq_controller.rb new file mode 100644 index 000000000..deafe5984 --- /dev/null +++ b/app/controllers/faq_controller.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true + +class FAQController < ApplicationController + before_action :load_faq_data, only: :show + + def index + @faqs = loader_service.all + end + + def show + @renderer = Redcarpet::Markdown.new(Redcarpet::TrustedRenderer.new(view_context), autolink: true) + + @siblings = loader_service.faqs_for_category(@metadata[:category]) + end + + private + + def loader_service + @loader_service ||= begin + substitutions = { + application_base_url: Current.application_base_url, + application_name: Current.application_name, + contact_email: Current.contact_email + } + + FAQsLoaderService.new(substitutions) + end + end + + def load_faq_data + path = "#{params[:category]}/#{params[:slug]}" + faq_data = loader_service.find(path) + + @content = faq_data.content + @metadata = faq_data.front_matter.symbolize_keys + rescue KeyError + raise ActionController::RoutingError.new("FAQ not found: #{path}") + end +end diff --git a/app/lib/redcarpet/bare_renderer.rb b/app/lib/redcarpet/bare_renderer.rb index d8944374c..39bfc9342 100644 --- a/app/lib/redcarpet/bare_renderer.rb +++ b/app/lib/redcarpet/bare_renderer.rb @@ -33,7 +33,7 @@ module Redcarpet when :url link(link, nil, link) when :email - # NOTE: As of Redcarpet 3.6.0, autolinking email containing is broken https://github.com/vmg/redcarpet/issues/402 + # NOTE: As of Redcarpet 3.6.0, autolinking email containing underscore is broken https://github.com/vmg/redcarpet/issues/402 content_tag(:a, link, { href: "mailto:#{link}" }) else link diff --git a/app/lib/redcarpet/trusted_renderer.rb b/app/lib/redcarpet/trusted_renderer.rb new file mode 100644 index 000000000..f0ee50129 --- /dev/null +++ b/app/lib/redcarpet/trusted_renderer.rb @@ -0,0 +1,41 @@ +module Redcarpet + class TrustedRenderer < Redcarpet::Render::HTML + include ActionView::Helpers::TagHelper + include Sprockets::Rails::Helper + include ApplicationHelper + + attr_reader :view_context + + def initialize(view_context, extensions = {}) + @view_context = view_context + + super extensions + end + + def link(href, title, content) + html_options = { + href: href + } + + unless href.starts_with?('/') + html_options.merge!(title: new_tab_suffix(title), **external_link_attributes) + end + + content_tag(:a, content, html_options, false) + end + + def autolink(link, link_type) + case link_type + when :url + link(link, nil, link) + when :email + # NOTE: As of Redcarpet 3.6.0, autolinking email containing underscore is broken https://github.com/vmg/redcarpet/issues/402 + content_tag(:a, link, { href: "mailto:#{link}" }) + end + end + + def image(link, title, alt) + view_context.image_tag(link, title:, alt:, loading: :lazy) + end + end +end diff --git a/app/services/faqs_loader_service.rb b/app/services/faqs_loader_service.rb new file mode 100644 index 000000000..563a05775 --- /dev/null +++ b/app/services/faqs_loader_service.rb @@ -0,0 +1,63 @@ +# frozen_string_literal: true + +class FAQsLoaderService + PATH = Rails.root.join('doc', 'faqs').freeze + ORDER = ['usager', 'instructeur', 'administrateur'].freeze + + attr_reader :substitutions + + def initialize(substitutions) + @substitutions = substitutions + + @faqs_by_path ||= Rails.cache.fetch(["faqs_data", ApplicationVersion.current, substitutions], expires_in: 1.week) do + load_faqs + end + end + + def find(path) + Rails.cache.fetch(["faq", path, ApplicationVersion.current, substitutions], expires_in: 1.week) do + file_path = @faqs_by_path.fetch(path).fetch(:file_path) + + parse_with_substitutions(file_path) + end + end + + def faqs_for_category(category) + @faqs_by_path.values + .filter { |faq| faq[:category] == category } + .group_by { |faq| faq[:subcategory] } + end + + def all + @faqs_by_path.values + .group_by { |faq| faq.fetch(:category) } + .sort_by { |category, _| ORDER.index(category) || ORDER.size } + .to_h + .transform_values do |faqs| + faqs.group_by { |faq| faq.fetch(:subcategory) } + end + end + + private + + def load_faqs + Dir.glob("#{PATH}/**/*.md").each_with_object({}) do |file_path, faqs_by_path| + parsed = parse_with_substitutions(file_path) + front_matter = parsed.front_matter.symbolize_keys + + faq_data = front_matter.slice(:slug, :title, :category, :subcategory, :locale, :keywords).merge(file_path: file_path) + + path = front_matter.fetch(:category) + '/' + front_matter.fetch(:slug) + faqs_by_path[path] = faq_data + end + end + + # Substitute all string before front matter parser so metadata are also substituted. + # using standard ruby formatting, ie => `%{my_var} % { my_var: 'value' }` + # We have to escape % chars not used for substitutions, ie. not preceeded by { + def parse_with_substitutions(file_path) + substituted_content = File.read(file_path).gsub(/%(?!{)/, '%%') % substitutions + + FrontMatterParser::Parser.new(:md).call(substituted_content) + end +end diff --git a/app/views/administrateurs/_breadcrumbs.html.haml b/app/views/administrateurs/_breadcrumbs.html.haml index 95c4295ac..d19911f36 100644 --- a/app/views/administrateurs/_breadcrumbs.html.haml +++ b/app/views/administrateurs/_breadcrumbs.html.haml @@ -35,7 +35,7 @@ - else %p.fr-mb-1w = t('more_info_on_test', scope: [:layouts, :breadcrumb]) - = link_to t('go_to_FAQ', scope: [:layouts, :breadcrumb]), t("url_FAQ", scope: [:layouts, :breadcrumb]), title: new_tab_suffix(t('go_to_FAQ', scope: [:layouts, :breadcrumb])), **external_link_attributes + = link_to t('go_to_FAQ', scope: [:layouts, :breadcrumb]), t("url_FAQ", scope: [:layouts, :breadcrumb]), title: new_tab_suffix(t('go_to_FAQ', scope: [:layouts, :breadcrumb])) .flex %span.fr-badge.fr-badge--new.fr-mr-1w = t('draft', scope: [:layouts, :breadcrumb]) diff --git a/app/views/administrateurs/procedures/_publication_form.html.haml b/app/views/administrateurs/procedures/_publication_form.html.haml index 94ff52d42..85a8f083c 100644 --- a/app/views/administrateurs/procedures/_publication_form.html.haml +++ b/app/views/administrateurs/procedures/_publication_form.html.haml @@ -16,7 +16,7 @@ - c.with_body do %p = t('.faq_test_alert') - = link_to t('.faq_test_alert_link'), t('.faq_test_alert_link_url'), **external_link_attributes + = link_to t('.faq_test_alert_link'), t('.faq_test_alert_link_url') = render partial: 'publication_form_inputs', locals: { procedure: procedure, closed_procedures: @closed_procedures, form: f } = render Dsfr::CalloutComponent.new(title: t('.dpd_title'), heading_level: 'h2') do |c| - c.with_body do diff --git a/app/views/faq/_breadcrumb.html.haml b/app/views/faq/_breadcrumb.html.haml new file mode 100644 index 000000000..205b5effb --- /dev/null +++ b/app/views/faq/_breadcrumb.html.haml @@ -0,0 +1,13 @@ +%nav.fr-breadcrumb{ role: "navigation", 'aria-label': t('you_are_here', scope: [:layouts, :breadcrumb]) } + %button.fr-breadcrumb__button{ 'aria-expanded' => "false", 'aria-controls' => "breadcrumb-1" } + = t('show', scope: [:layouts, :breadcrumb]) + .fr-collapse#breadcrumb-1 + %ol.fr-breadcrumb__list + %li= link_to t('root', scope: [:layouts, :breadcrumb]), root_path, class: 'fr-breadcrumb__link' + + %li + %a.fr-breadcrumb__link{ **(defined?(faq_title) ? { href: faq_index_path } : { "aria-current": "page" }) }= t('faq', scope: [:layouts, :breadcrumb]) + + - if defined?(faq_title) + %li + %a.fr-breadcrumb__link{ 'aria-current' => "page" }= faq_title diff --git a/app/views/faq/_sidebar.html.haml b/app/views/faq/_sidebar.html.haml new file mode 100644 index 000000000..d6055490a --- /dev/null +++ b/app/views/faq/_sidebar.html.haml @@ -0,0 +1,20 @@ +%nav.fr-sidemenu.fr-sidemenu--sticky{ role: "navigation", 'aria-labelledby': "fr-sidemenu-title" } + .fr-sidemenu__inner + %button.fr-sidemenu__btn{ 'aria-controls': "fr-sidemenu-wrapper", 'aria-expanded': "false" } + = t(:sidebar_button, scope: [:faq]) + .fr-collapse#fr-sidemenu-wrapper + .fr-sidemenu__title#fr-sidemenu-title + = t(:name, scope: [:faq, :categories, current[:category]]) + %ul.fr-sidemenu__list + - faqs.each_with_index do |(subcategory, faqs), index| + %li{ class: class_names("fr-sidemenu__item", "fr-sidemenu__item--active" => subcategory == current[:subcategory]) } + %button.fr-sidemenu__btn{ aria: { 'expanded': subcategory == current[:subcategory] ? "true" : "false", + 'controls': "fr-sidemenu-item-#{index}", + 'current' => subcategory == current[:subcategory] ? "true" : nil } } + = t(:name, scope: [:faq, :subcategories, subcategory]) + .fr-collapse{ id: "fr-sidemenu-item-#{index}" } + %ul.fr-sidemenu__list + - faqs.each do |faq| + %li{ class: class_names("fr-sidemenu__item", "fr-sidemenu__item--active" => faq[:slug] == current[:slug]) } + = link_to faq[:title], faq_path(category: faq[:category], slug: faq[:slug]), + class: 'fr-sidemenu__link', target: "_self", "aria-current" => current[:slug] == faq[:slug] ? "page" : nil diff --git a/app/views/faq/index.html.haml b/app/views/faq/index.html.haml new file mode 100644 index 000000000..d467388d0 --- /dev/null +++ b/app/views/faq/index.html.haml @@ -0,0 +1,26 @@ +- content_for(:title, t('.meta_title')) + +.fr-container.fr-my-4w + = render partial: "breadcrumb" + .fr-grid-row + .fr-col-12.fr-col-md-10 + %h1= t('.title', app_name: Current.application_name) + + - @faqs.each do |category, subcategories| + %h2= t(:name, scope: [:faq, :categories, category], raise: true) # i18n-tasks-use t("faq.categories.#{category}.name") + %p= t(:description, scope: [:faq, :categories, category], raise: true) # i18n-tasks-use t("faq.categories.#{category}.description") + + .fr-accordions-group.fr-mb-6w + - subcategories.each_with_index do |(subcategory, faqs), index| + %section.fr-accordion + %h3.fr-accordion__title + %button.fr-accordion__btn{ 'aria-expanded': "false", 'aria-controls': "accordion-#{category}-#{index}" } + = t(:name, scope: [:faq, :subcategories, subcategory], raise: true) # i18n-tasks-use t("faq.subcategories.#{subcategory}.name") + + .fr-collapse{ id: "accordion-#{category}-#{index}" } + - description = t(:description, scope: [:faq, :subcategories, subcategory], default: nil) # i18n-tasks-use t("faq.subcategories.#{subcategory}.description") + %p= description if description.present? + + %ul + - faqs.each do |faq| + %li= link_to faq[:title], faq_path(category: faq[:category], slug: faq[:slug]), class: "fr-link" diff --git a/app/views/faq/show.html.haml b/app/views/faq/show.html.haml new file mode 100644 index 000000000..45cfb50fb --- /dev/null +++ b/app/views/faq/show.html.haml @@ -0,0 +1,13 @@ +- content_for(:title, @metadata[:title]) + +.fr-container.fr-my-4w + + .fr-grid-row + .fr-col-12.fr-col-md-4 + = render partial: "sidebar", locals: { faqs: @siblings, current: @metadata } + .fr-col-12.fr-col-md-8 + -# i18n-tasks-use t("faq.categories.#{@metadata[:category]}.short_name") + = render partial: "breadcrumb", locals: { faq_title: "#{t(:short_name, scope: [:faq, :categories, @metadata[:category]])} : #{@metadata[:title]}" } + + .markdown-content + = @renderer.render(@content).html_safe diff --git a/app/views/layouts/_header.haml b/app/views/layouts/_header.haml index 4048831e0..75e2f9b14 100644 --- a/app/views/layouts/_header.haml +++ b/app/views/layouts/_header.haml @@ -52,7 +52,7 @@ = render partial: 'shared/help/help_dropdown_instructeur' - else // NB: on mobile in order to have links correctly aligned, we need a left icon - = link_to t('help'), t("links.common.faq.url"), class: 'fr-btn dropdown-button', title: new_tab_suffix(t('help')), **external_link_attributes + = link_to t('help'), t("links.common.faq.url"), class: 'fr-btn dropdown-button', title: t('help') diff --git a/app/views/layouts/commencer/_no_procedure.html.haml b/app/views/layouts/commencer/_no_procedure.html.haml index 36fb66cae..d579efb3e 100644 --- a/app/views/layouts/commencer/_no_procedure.html.haml +++ b/app/views/layouts/commencer/_no_procedure.html.haml @@ -7,4 +7,4 @@ %p= t('.line3') %hr %p.small-simple= t('.are_you_new', app_name: Current.application_name) - = link_to t('views.users.sessions.new.find_procedure'), t("links.common.faq.comment_trouver_ma_demarche_url"), title: new_tab_suffix(t('views.users.sessions.new.find_procedure')), class: "fr-btn fr-btn--secondary", **external_link_attributes + = link_to t('views.users.sessions.new.find_procedure'), t("links.common.faq.comment_trouver_ma_demarche_url"), title: new_tab_suffix(t('views.users.sessions.new.find_procedure')), class: "fr-btn fr-btn--secondary" diff --git a/app/views/root/landing.html.haml b/app/views/root/landing.html.haml index 851a8bb47..7d32d4689 100644 --- a/app/views/root/landing.html.haml +++ b/app/views/root/landing.html.haml @@ -23,7 +23,7 @@ %h2= t(".have_a_procedure") %p.fr-h5= t(".fill_procedure") - = link_to t(".how_to_find_procedure"), t("links.common.faq.comment_trouver_ma_demarche_url"), class: "fr-btn fr-btn--lg fr-mr-1w fr-mb-2w", title: new_tab_suffix(t(".how_to_find_procedure")), **external_link_attributes + = link_to t(".how_to_find_procedure"), t("links.common.faq.comment_trouver_ma_demarche_url"), class: "fr-btn fr-btn--lg fr-mr-1w fr-mb-2w", title: new_tab_suffix(t(".how_to_find_procedure")) = link_to t("views.users.sessions.new.connection"), new_user_session_path, class: "fr-btn fr-btn--secondary fr-btn--lg" .fr-py-6w @@ -51,7 +51,7 @@ %h2= t(".question") %p.fr-h5= t(".answer_in_faq") %div - = link_to t(".online_help"), t("links.common.faq.url"), class: "fr-btn fr-btn--lg", title: new_tab_suffix(t(".online_help")), **external_link_attributes + = link_to t(".online_help"), t("links.common.faq.url"), class: "fr-btn fr-btn--lg", title: t(".online_help") .fr-py-6w .container diff --git a/app/views/shared/champs/siret/_etablissement.html.haml b/app/views/shared/champs/siret/_etablissement.html.haml index efaaa901c..6aec8510c 100644 --- a/app/views/shared/champs/siret/_etablissement.html.haml +++ b/app/views/shared/champs/siret/_etablissement.html.haml @@ -8,7 +8,7 @@ - when :not_found %p.fr-error-text Nous n’avons pas trouvé d’établissement correspondant à ce numéro de SIRET. - = link_to('Plus d’informations', t("links.common.faq.erreur_siret_url"), **external_link_attributes) + = link_to('Plus d’informations', t("links.common.faq.erreur_siret_url")) - when :network_error %p.fr-error-text= t('errors.messages.siret_network_error') diff --git a/app/views/static_pages/accessibility_statement.html.haml b/app/views/static_pages/accessibility_statement.html.haml index 7859f8554..1676164cf 100644 --- a/app/views/static_pages/accessibility_statement.html.haml +++ b/app/views/static_pages/accessibility_statement.html.haml @@ -95,10 +95,10 @@ = t("views.accessibility_statement.preparation.page_six") %li = link_to t("views.accessibility_statement.preparation.page_seven.label"), t("views.accessibility_statement.preparation.page_seven.url"), - title: t("views.accessibility_statement.preparation.page_seven.title"), **external_link_attributes + title: t("views.accessibility_statement.preparation.page_seven.title") %li = link_to t("views.accessibility_statement.preparation.page_eight.label"), t("views.accessibility_statement.preparation.page_eight.url"), - title: t("views.accessibility_statement.preparation.page_eight.title"), **external_link_attributes + title: t("views.accessibility_statement.preparation.page_eight.title") %li = t("views.accessibility_statement.preparation.page_nine") %li diff --git a/app/views/users/dossiers/_dossiers_list.html.haml b/app/views/users/dossiers/_dossiers_list.html.haml index 877ab6f96..465003f57 100644 --- a/app/views/users/dossiers/_dossiers_list.html.haml +++ b/app/views/users/dossiers/_dossiers_list.html.haml @@ -131,4 +131,4 @@ %p.empty-text-details = t('views.users.dossiers.dossiers_list.no_result_text_html', app_base: Current.application_base_url) %p - = link_to t("root.landing.how_to_find_procedure"), t("links.common.faq.comment_trouver_ma_demarche_url"), class: "fr-btn fr-btn--lg fr-mr-1w fr-mb-2w", **external_link_attributes + = link_to t("root.landing.how_to_find_procedure"), t("links.common.faq.comment_trouver_ma_demarche_url"), class: "fr-btn fr-btn--lg fr-mr-1w fr-mb-2w" diff --git a/app/views/users/sessions/link_sent.html.haml b/app/views/users/sessions/link_sent.html.haml index b0cbd891f..66ef59192 100644 --- a/app/views/users/sessions/link_sent.html.haml +++ b/app/views/users/sessions/link_sent.html.haml @@ -24,6 +24,6 @@ %section %p.fr-mt-3w - Si vous voyez cette page trop souvent, consultez notre aide : #{link_to t("links.common.faq.confirmer_compte_chaque_connexion_url"), t("links.common.faq.confirmer_compte_chaque_connexion_url"), **external_link_attributes} + Si vous voyez cette page trop souvent, #{link_to "consultez notre aide", t("links.common.faq.confirmer_compte_chaque_connexion_url")} %p.fr-mt-3w = t('views.users.shared.contact_us_if_any_trouble_html', href: contact_admin_url) diff --git a/config/brakeman.ignore b/config/brakeman.ignore index 404123563..bf9b76294 100644 --- a/config/brakeman.ignore +++ b/config/brakeman.ignore @@ -15,7 +15,7 @@ "type": "controller", "class": "Users::DossiersController", "method": "merci", - "line": 302, + "line": 309, "file": "app/controllers/users/dossiers_controller.rb", "rendered": { "name": "users/dossiers/merci", @@ -67,6 +67,40 @@ ], "note": "" }, + { + "warning_type": "Cross-Site Scripting", + "warning_code": 2, + "fingerprint": "a7d18cc3434b4428a884f1217791f9a9db67839e73fb499f1ccd0f686f08eccc", + "check_name": "CrossSiteScripting", + "message": "Unescaped parameter value", + "file": "app/views/faq/show.html.haml", + "line": 12, + "link": "https://brakemanscanner.org/docs/warning_types/cross_site_scripting", + "code": "Redcarpet::Markdown.new(Redcarpet::TrustedRenderer.new(view_context), :autolink => true).render(loader_service.find(\"#{params[:category]}/#{params[:slug]}\").content)", + "render_path": [ + { + "type": "controller", + "class": "FAQController", + "method": "show", + "line": 14, + "file": "app/controllers/faq_controller.rb", + "rendered": { + "name": "faq/show", + "file": "app/views/faq/show.html.haml" + } + } + ], + "location": { + "type": "template", + "template": "faq/show" + }, + "user_input": "params[:category]", + "confidence": "Weak", + "cwe_id": [ + 79 + ], + "note": "Theses params are not rendered" + }, { "warning_type": "SQL Injection", "warning_code": 0, @@ -153,7 +187,7 @@ "check_name": "CrossSiteScripting", "message": "Unescaped model attribute", "file": "app/views/notification_mailer/send_notification_for_tiers.html.haml", - "line": 29, + "line": 31, "link": "https://brakemanscanner.org/docs/warning_types/cross_site_scripting", "code": "Current.application_name.gsub(\".\", \"⁠.\")", "render_path": null, @@ -169,6 +203,6 @@ "note": "Current is not a model" } ], - "updated": "2024-03-27 17:15:54 +0100", + "updated": "2024-04-23 18:27:12 +0200", "brakeman_version": "6.1.2" } diff --git a/config/initializers/application_version.rb b/config/initializers/application_version.rb new file mode 100644 index 000000000..c615edc05 --- /dev/null +++ b/config/initializers/application_version.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class ApplicationVersion + @@current = nil + + # Detect the current release version, which helps Sentry identifying the current release + # or can be used as cache key when for some contents susceptible to change between releases. + # + # The deploy process can write a "version" file at root + # containing a string identifying the release, like the sha256 commit used by its release. + # It defaults to a random string if the file is not found (so each restart will behave like a new version) + def self.current + @@current ||= begin + version = Rails.root.join('version') + version.readable? ? version.read.strip : SecureRandom.hex + end + @@current.presence + end +end diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb index 6b101ffa2..c444fa05e 100644 --- a/config/initializers/inflections.rb +++ b/config/initializers/inflections.rb @@ -18,6 +18,8 @@ ActiveSupport::Inflector.inflections(:en) do |inflect| inflect.acronym 'URL' inflect.acronym 'SVA' inflect.acronym 'SVR' + inflect.acronym 'FAQ' + inflect.acronym 'FAQs' inflect.irregular 'type_de_champ', 'types_de_champ' inflect.irregular 'type_de_champ_private', 'types_de_champ_private' inflect.irregular 'procedure_revision_type_de_champ', 'procedure_revision_types_de_champ' diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index 473efa285..6273b0f13 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -1,15 +1,3 @@ -class SentryRelease - @@current = nil - - def self.current - @@current ||= begin - version = Rails.root.join('version') - version.readable? ? version.read.strip : '' - end - @@current.presence - end -end - Sentry.init do |config| secrets = Rails.application.secrets.sentry @@ -19,7 +7,7 @@ Sentry.init do |config| config.dsn = secrets[:enabled] ? secrets[:rails_client_key] : nil config.send_default_pii = false - config.release = SentryRelease.current + config.release = ApplicationVersion.current config.environment = secrets[:environment] || Rails.env config.enabled_environments = ['production', secrets[:environment].presence].compact config.breadcrumbs_logger = [:active_support_logger] diff --git a/config/locales/en.yml b/config/locales/en.yml index 153bb9ae5..b8413b1eb 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -174,12 +174,12 @@ en: page_six: "Home page - User search results" page_seven: label: "FAQ" - url: "https://faq.demarches-simplifiees.fr/" + url: "/faq" title: "FAQ - new tab" page_eight: label: "FAQ - User (submission of a file)" - url: "https://faq.demarches-simplifiees.fr/collection/17-usager-depot-dun-dossier" - title: "FAQ - User (submission of a file) - new tab" + url: "/faq#accordion-usager-0" + title: "FAQ - User (submission of a file)" page_nine: "Documentation - Presentation" page_ten: "Documentation - Start-up" page_eleven: "Documentation - General" diff --git a/config/locales/faqs.en.yml b/config/locales/faqs.en.yml new file mode 100644 index 000000000..8721ff136 --- /dev/null +++ b/config/locales/faqs.en.yml @@ -0,0 +1,46 @@ +en: + faq: + index: + meta_title: "Frequently Asked Questions" + title: Frequently Asked Questions (FAQ) of %{app_name} + sidebar_button: In this FAQ + categories: + usager: + short_name: User + name: User (file application) + description: Help users submit and follow up on files, including resolving common problems. + instructeur: + short_name: Instructor + name: Instructor (file processing) + description: For instructors on accessing and managing files. + administrateur: + short_name: Administrator + name: Administrator (form creation) + description: Information for administrators on configuring the platform or creating procedures. + subcategories: + dossier_technical_issue: + name: I'm encountering a technical problem with my file + find_dossier: + name: I want to find my file + description: What if I can't find my file? + fill_dossier: + name: I want to make a + dossier_state: + name: I want to follow the progress of my application + account: + name: Manage my account + instructeur_account: + name: Login to my account + instruction: + name: Instruction + create_procedure: + name: I want to create an online procedure + description: How do you create a new procedure? + general: + name: General + administrateur_departure: + name: I'm leaving my job + description: Good practices to anticipate before my departure + procedure_test: + name: How to test my form + description: How do you test a new procedure? diff --git a/config/locales/faqs.fr.yml b/config/locales/faqs.fr.yml new file mode 100644 index 000000000..b7bf89765 --- /dev/null +++ b/config/locales/faqs.fr.yml @@ -0,0 +1,46 @@ +fr: + faq: + index: + meta_title: "Foire aux Questions" + title: Foire aux Questions (FAQ) de %{app_name} + sidebar_button: Dans cette Foire Aux Questions + categories: + usager: + short_name: Usager + name: Usager (dépôt d’un dossier) + description: Aide pour les usagers sur la soumission et le suivi des dossiers, incluant la résolution des problèmes courants. + instructeur: + short_name: Instructeur + name: Instructeur (traitement des dossiers) + description: À destination des instructeurs sur l’accès et la gestion des dossiers. + administrateur: + short_name: Administrateur + name: Administrateur (création d’un formulaire) + description: Informations pour les administrateurs sur la configuration de la plateforme ou la création de démarches. + subcategories: + dossier_technical_issue: + name: Je rencontre un problème technique avec ma démarche + find_dossier: + name: Je veux retrouver mon dossier + description: Quelles sont les solutions si je ne retrouve pas mon dossier ? + fill_dossier: + name: Je veux faire une démarche + dossier_state: + name: Je veux suivre l’instruction de ma démarche + account: + name: Gestion de mon compte + instructeur_account: + name: Connexion à mon espace + instruction: + name: Instruction + create_procedure: + name: Je veux créer une démarche en ligne + description: Comment créer une nouvelle démarche ? + general: + name: Général + administrateur_departure: + name: Je quitte mon poste + description: Les bonnes pratiques à anticiper avant mon départ + procedure_test: + name: Comment tester ma démarche + description: Comment tester une nouvelle demarche ? diff --git a/config/locales/fr.yml b/config/locales/fr.yml index f7643b183..7378f6ff7 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -170,12 +170,12 @@ fr: page_six: "Accueil connecté - Résultats de recherche usager" page_seven: label: "FAQ" - url: "https://faq.demarches-simplifiees.fr/" + url: "/faq" title: "FAQ - nouvel onglet" page_eight: label: "FAQ - Usager (dépôt d'un dossier)" - url: "https://faq.demarches-simplifiees.fr/collection/17-usager-depot-dun-dossier" - title: "FAQ - Usager (dépôt d'un dossier) - nouvel onglet" + url: "/faq#accordion-usager-0" + title: "FAQ - Usager (dépôt d'un dossier)" page_nine: "Documentation - Présentation" page_ten: "Documentation - Démarrage" page_eleven: "Documentation - Généralités" diff --git a/config/locales/links.en.yml b/config/locales/links.en.yml index a825f368b..b7697d43a 100644 --- a/config/locales/links.en.yml +++ b/config/locales/links.en.yml @@ -6,14 +6,13 @@ en: faq: label: "FAQ" title: "Frequently Asked Questions" - url: "https://faq.demarches-simplifiees.fr" - autosave_url: "https://faq.demarches-simplifiees.fr/article/77-enregistrer-mon-formulaire-pour-le-reprendre-plus-tard?preview=5ec28ca1042863474d1aee00" - comment_trouver_ma_demarche_url: "https://faq.demarches-simplifiees.fr/article/59-comment-trouver-ma-demarche" - confirmer_compte_chaque_connexion_url: "https://faq.demarches-simplifiees.fr/article/34-je-dois-confirmer-mon-compte-a-chaque-connexion" - contacter_service_en_charge_url: "https://faq.demarches-simplifiees.fr/article/12-contacter-le-service-en-charge-de-ma-demarche" - email_non_recu_url: "https://faq.demarches-simplifiees.fr/article/79-je-ne-recois-pas-demail" - erreur_siret_url: "https://faq.demarches-simplifiees.fr/article/4-erreur-siret" - ou_en_est_mon_dossier_url: "https://faq.demarches-simplifiees.fr/article/11-je-veux-savoir-ou-en-est-linstruction-de-ma-demarche" + url: "/faq" + autosave_url: "/faq/usager/je-veux-enregistrer-mon-formulaire-pour-le-reprendre-plus-tard" + comment_trouver_ma_demarche_url: "/faq/usager/comment-trouver-ma-demarche" + confirmer_compte_chaque_connexion_url: "/faq/instructeur/je-dois-confirmer-mon-compte-a-chaque-connexion" + contacter_service_en_charge_url: "/faq/usager/je-veux-contacter-le-service-en-charge-de-ma-demarche" + erreur_siret_url: "/faq/usager/erreur-siret-lors-d-un-depot-de-dossier" + ou_en_est_mon_dossier_url: "/faq/usager/je-veux-savoir-ou-en-est-l-instruction-de-ma-demarche" footer: top_labels: hidden_title: Useful links diff --git a/config/locales/links.fr.yml b/config/locales/links.fr.yml index 4c20d26e0..1923776f9 100644 --- a/config/locales/links.fr.yml +++ b/config/locales/links.fr.yml @@ -8,14 +8,13 @@ fr: faq: label: "FAQ" title: "Foire aux Questions" - url: "https://faq.demarches-simplifiees.fr" - autosave_url: "https://faq.demarches-simplifiees.fr/article/77-enregistrer-mon-formulaire-pour-le-reprendre-plus-tard?preview=5ec28ca1042863474d1aee00" - comment_trouver_ma_demarche_url: "https://faq.demarches-simplifiees.fr/article/59-comment-trouver-ma-demarche" - confirmer_compte_chaque_connexion_url: "https://faq.demarches-simplifiees.fr/article/34-je-dois-confirmer-mon-compte-a-chaque-connexion" - contacter_service_en_charge_url: "https://faq.demarches-simplifiees.fr/article/12-contacter-le-service-en-charge-de-ma-demarche" - email_non_recu_url: "https://faq.demarches-simplifiees.fr/article/79-je-ne-recois-pas-demail" - erreur_siret_url: "https://faq.demarches-simplifiees.fr/article/4-erreur-siret" - ou_en_est_mon_dossier_url: "https://faq.demarches-simplifiees.fr/article/11-je-veux-savoir-ou-en-est-linstruction-de-ma-demarche" + url: "/faq" + autosave_url: "/faq/usager/je-veux-enregistrer-mon-formulaire-pour-le-reprendre-plus-tard" + comment_trouver_ma_demarche_url: "/faq/usager/comment-trouver-ma-demarche" + confirmer_compte_chaque_connexion_url: "/faq/instructeur/je-dois-confirmer-mon-compte-a-chaque-connexion" + contacter_service_en_charge_url: "/faq/usager/je-veux-contacter-le-service-en-charge-de-ma-demarche" + erreur_siret_url: "/faq/usager/erreur-siret-lors-d-un-depot-de-dossier" + ou_en_est_mon_dossier_url: "/faq/usager/je-veux-savoir-ou-en-est-l-instruction-de-ma-demarche" footer: top_labels: hidden_title: Liens pratiques diff --git a/config/locales/views/administrateurs/procedures/en.yml b/config/locales/views/administrateurs/procedures/en.yml index 8279cb808..db0bf6b5a 100644 --- a/config/locales/views/administrateurs/procedures/en.yml +++ b/config/locales/views/administrateurs/procedures/en.yml @@ -58,7 +58,7 @@ en: publication_form: faq_test_alert: Have you thought about testing your procedure before publishing it? To help you in this test phase, you can faq_test_alert_link: consult our best practices guide. - faq_test_alert_link_url: "https://faq.demarches-simplifiees.fr/category/49-comment-tester-ma-demarche" + faq_test_alert_link_url: "/faq#accordion-administrateur-2" draft_changed_procedure_alert: "Publish a new version of your procedure. The following changes will be applied:" dpd_title: Before publishing dpd_part_1: Have you thought about informing your Personal Data Protection Officer (DPO). diff --git a/config/locales/views/administrateurs/procedures/fr.yml b/config/locales/views/administrateurs/procedures/fr.yml index 930d08247..0fcc5ad96 100644 --- a/config/locales/views/administrateurs/procedures/fr.yml +++ b/config/locales/views/administrateurs/procedures/fr.yml @@ -58,7 +58,7 @@ fr: publication_form: faq_test_alert: Avez-vous bien pensé à tester votre démarche avant de la publier ? Pour vous aider dans cette phase de test, vous pouvez faq_test_alert_link: consulter notre guide de bonnes pratiques. - faq_test_alert_link_url: "https://faq.demarches-simplifiees.fr/category/49-comment-tester-ma-demarche" + faq_test_alert_link_url: "/faq#accordion-administrateur-2" draft_changed_procedure_alert: "Publiez une nouvelle version de votre démarche. Les modifications suivantes seront appliquées :" dpd_title: Avant de publier dpd_part_1: Avez-vous bien pensé à informer votre Délégué à la Protection des Données personnelles (DPD). diff --git a/config/locales/views/layouts/_breadcrumb.en.yml b/config/locales/views/layouts/_breadcrumb.en.yml index 167f44f30..8efbc086e 100644 --- a/config/locales/views/layouts/_breadcrumb.en.yml +++ b/config/locales/views/layouts/_breadcrumb.en.yml @@ -15,4 +15,5 @@ en: draft: "Draft" more_info_on_test: "For more information on test stage" go_to_FAQ: "read FAQ" - url_FAQ: "https://faq.demarches-simplifiees.fr/category/49-comment-tester-ma-demarche" + url_FAQ: "/faq#accordion-administrateur-2" + faq: Frequently Asked Questions diff --git a/config/locales/views/layouts/_breadcrumb.fr.yml b/config/locales/views/layouts/_breadcrumb.fr.yml index 27086e424..14f4fa15f 100644 --- a/config/locales/views/layouts/_breadcrumb.fr.yml +++ b/config/locales/views/layouts/_breadcrumb.fr.yml @@ -15,4 +15,5 @@ fr: draft: "En test" more_info_on_test: "Pour plus d’information sur la phase de test" go_to_FAQ: "consulter la FAQ" - url_FAQ: "https://faq.demarches-simplifiees.fr/category/49-comment-tester-ma-demarche" + url_FAQ: "/faq#accordion-administrateur-2" + faq: Foire aux Questions diff --git a/config/routes.rb b/config/routes.rb index fb0bc9302..cb068da33 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -715,6 +715,9 @@ Rails.application.routes.draw do resources :release_notes, only: [:index] + resources :faq, only: [:index] + get '/faq/:category/:slug', to: 'faq#show', as: :faq + get '/404', to: 'errors#not_found' get '/422', to: 'errors#unprocessable_entity' get '/500', to: 'errors#internal_server_error' diff --git a/doc/faqs/administrateur/ajouter-plusieurs-administrateurs-sur-une-meme-demarche.fr.md b/doc/faqs/administrateur/ajouter-plusieurs-administrateurs-sur-une-meme-demarche.fr.md new file mode 100644 index 000000000..8c2120f3d --- /dev/null +++ b/doc/faqs/administrateur/ajouter-plusieurs-administrateurs-sur-une-meme-demarche.fr.md @@ -0,0 +1,25 @@ +--- +category: "administrateur" +subcategory: "general" +slug: "ajouter-plusieurs-administrateurs-sur-une-meme-demarche" +locale: "fr" +keywords: "plusieurs administrateurs, droits d’administration, co-administrateur, gestion démarche" +title: "Ajouter plusieurs administrateurs sur une même démarche" +--- + +# Ajouter plusieurs administrateurs sur une même démarche + +Il est possible d’avoir plusieurs administrateurs sur une même démarche. Cela permet à chaque administrateur de consulter les dossiers et d’ajuster le fonctionnement de la démarche, facilitant ainsi la gestion et le transfert des droits d’administration à une autre personne. + +**Nous conseillons vivement à chaque administrateur de nommer un co-administrateur pour assurer une gestion continue de la démarche.** + +![Capture d’écran de la page gérant la liste des administrateurs](faq/administrateur-add-administrateur.png) + +## Comment ajouter un autre administrateur sur votre démarche ? + +1. Si les personnes en question n’ont pas encore de compte administrateur, **faites une [demande de compte administrateur](%{application_base_url}/demandes/new)** et attendez que le compte soit approuvé. +2. Connectez-vous en tant qu’Administrateur et **allez sur le tableau de bord de la démarche**. +3. Cliquez sur l’onglet **« Administrateurs »** de la démarche. +4. **Ajoutez l’adresse email** du nouvel administrateur à la liste. + +👏 La nouvelle personne pourra alors administrer la démarche ! diff --git a/doc/faqs/administrateur/comment-clore-une-demarche.fr.md b/doc/faqs/administrateur/comment-clore-une-demarche.fr.md new file mode 100644 index 000000000..5866224ae --- /dev/null +++ b/doc/faqs/administrateur/comment-clore-une-demarche.fr.md @@ -0,0 +1,37 @@ +--- +category: "administrateur" +subcategory: "general" +slug: "comment-clore-une-demarche" +locale: "fr" +keywords: "clôture démarche, dé-publication, programmation clôture, tableau de bord" +title: "Comment clore une démarche ?" +--- + +# Comment clore une démarche ? + +Pour rendre une démarche inaccessible au public, vous avez la possibilité de la clôturer à tout moment. Suite à la clôture, l’URL de la démarche redirige l’usager vers une page lui indiquant que la démarche recherchée est close accompagné d’un message optionnel, et qu’il n’est plus possible de commencer un nouveau dossier. + +## Pour clore une démarche + +Cliquez sur le bouton **« Clore »** situé à droite de la démarche. + +Bien que l’accès à la démarche soit restreint, les dossiers déjà déposés ne sont pas affectés et leur instruction peut se poursuivre normalement. + +![Capture d’écran de la page de clôture de la demarche](faq/administrateur-procedure-action-close.png) + +## Informer les usagers accédant à la démarche close + + Un usager qui suit un lien vers la démarche sera informé qu’elle est close. Cependant au moment de la clôture vous pouvez indiquer quelle démarche la remplace (nous le redigerons vers celle-ci), ou la raison pour laquelle est close. + +![Capture d'écran du remplacement de démarche](faq/administrateur-procedure-close-replace.png) + +![Capture d'écran pour saisir le motif de cloture de démarche](faq/administrateur-procedure-close-message.png) + +## Comment prévoir la clôture automatique d’une démarche ? + +Si vous anticipez la clôture de votre démarche à une date et/ou heure spécifique, il est possible de programmer cette clôture. Rendez-vous dans l’onglet **« Présentation »** de votre démarche, section **« Options avancées »**, pour définir les paramètres de clôture automatique. + +![Capture d’écran de la configuration de fermeture à une date donnée](faq/administrateur-procedure-auto-archive.png) + +Lorsqu’une démarche se clôture automatiquement, tous les dossiers en construction passent automatiquement au statut *« en instruction »* à la date limite de dépôt des dossiers. + diff --git a/doc/faqs/administrateur/comment-comprendre-mon-tableau-de-bord-administrateur.fr.md b/doc/faqs/administrateur/comment-comprendre-mon-tableau-de-bord-administrateur.fr.md new file mode 100644 index 000000000..9eea97fa5 --- /dev/null +++ b/doc/faqs/administrateur/comment-comprendre-mon-tableau-de-bord-administrateur.fr.md @@ -0,0 +1,32 @@ +--- +category: "administrateur" +subcategory: "general" +slug: "comment-comprendre-mon-tableau-de-bord-administrateur" +locale: "fr" +keywords: "tableau de bord, démarches publiées, démarches en test, démarches closes, démarches supprimées" +title: "Comment comprendre mon tableau de bord administrateur ?" +--- + +# Comment comprendre mon tableau de bord administrateur ? + +Votre tableau de bord présente l'ensemble de vos démarches, classées en 4 catégories : + +![Capture d'écran du tableau de bord administrateur](faq/administrateur-procedures-list-header.png) + +## Publiées + +Une démarche est considérée comme publiée lorsqu’elle est finalisée et active. Les usagers peuvent y déposer des dossiers. + +## En test + +Les démarches à l’état de brouillon sont celles créées mais non finalisées et non publiées. Aucun usager ne peut y déposer des dossiers (à moins de disposer du lien de test de la démarche) et la démarche peut être modifiée à volonté. + +**Attention : un dossier déposé sur une démarche en test sera définitivement supprimé**, et non récupérable, lorsque la démarche sera publiée. Ne publiez donc jamais le lien publiquement d’une demarche en test. Gardez ce lien pour des tests internes. + +## Closes + +Une démarche close est une démarche qui a été active mais qui désormais ne permet plus le dépôt de nouveaux dossiers par les usagers. Les dossiers déposés peuvent toutefois toujours être instruits. + +## Supprimées + +Il s'agit des démarches supprimées par l'administrateur, quel que soit leur état (*« publiée »*, *« en test »* ou *« close »*). Ces démarches peuvent être restaurées en cliquant sur le bouton **« Actions »** puis **« Restaurer »**. diff --git a/doc/faqs/administrateur/comment-creer-ma-demarche.fr.md b/doc/faqs/administrateur/comment-creer-ma-demarche.fr.md new file mode 100644 index 000000000..7dfd16b7d --- /dev/null +++ b/doc/faqs/administrateur/comment-creer-ma-demarche.fr.md @@ -0,0 +1,16 @@ +--- +category: "administrateur" +subcategory: "create_procedure" +slug: "comment-creer-ma-demarche" +locale: "fr" +keywords: "création démarche, tutoriel, guide bonnes pratiques, administrateur" +title: "Comment créer ma démarche ?" +--- + +# Comment créer ma démarche ? + +Envie de vous lancer dans l’aventure ? Bravo ! Pour vous accompagner tout au long de la création de votre démarche, nous avons préparé un petit tutoriel spécialement pour vous : + +[Tutoriel Administrateur](https://doc.demarches-simplifiees.fr/tutoriels/tutoriel-administrateur) + +Pour compléter cette prise en main de l’outil, n’hésitez pas à consulter [notre guide de bonnes pratiques](https://456404736-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L7_aKvpAJdAIEfxHudA%2Fuploads%2FGJm7S7LVjHPKVlMCE36e%2FGuide%20des%20bonnes%20pratiques%20démarches-simplifiees.pdf?alt=media&token=228e63c7-a168-4656-9cda-3f53a10645c2). diff --git a/doc/faqs/administrateur/comment-creer-une-demarche-declarative.fr.md b/doc/faqs/administrateur/comment-creer-une-demarche-declarative.fr.md new file mode 100644 index 000000000..ffec23732 --- /dev/null +++ b/doc/faqs/administrateur/comment-creer-une-demarche-declarative.fr.md @@ -0,0 +1,27 @@ +--- +category: "administrateur" +subcategory: "create_procedure" +slug: "comment-creer-une-demarche-declarative" +locale: "fr" +keywords: "démarche déclarative, co-construction, instruction automatique, configuration" +title: "Comment créer une démarche déclarative ?" +--- + +# Comment créer une démarche déclarative ? + +## Qu’est-ce qu’une démarche déclarative ? + +Une démarche déclarative est une démarche pour laquelle certaines étapes de l’instruction sont simplifiées. Ce type de démarche diffère de l’instruction classique par deux configurations possibles : + +- **Sauter l’étape de construction** : les dossiers déposés passent automatiquement en instruction, et l’usager ne peut plus modifier son dossier. +- **Sauter entièrement l’étape d’instruction** : les dossiers déposés sont tous automatiquement acceptés. + +**Attention** : si vous optez pour une démarche déclarative, les usagers ne pourront pas modifier leur dossier après dépôt. L’instructeur devra repasser le dossier *« en construction »* pour permettre toute modification. Il est désormais possible de demander à l’usager de modifier son dossier. + +## Comment rendre une démarche déclarative ? + +Pour configurer une démarche comme déclarative, accédez à la partie **« Présentation »** de la démarche depuis le tableau de bord administrateur. En bas de la page, dans l’onglet **« Options avancées »**, sélectionnez l’option souhaitée (*« En instruction »* ou *« Accepté »*) et enregistrez les modifications. + +![Capture d'écran de la page de configuration de la demarche déclarative](faq/administrateur-create-declarative.png) + +Vous avez la possibilité de revenir en arrière ou de modifier le type de démarche déclarative à tout moment, même après publication. diff --git a/doc/faqs/administrateur/comment-limiter-une-demarche-dans-le-temps.fr.md b/doc/faqs/administrateur/comment-limiter-une-demarche-dans-le-temps.fr.md new file mode 100644 index 000000000..cfbfd8870 --- /dev/null +++ b/doc/faqs/administrateur/comment-limiter-une-demarche-dans-le-temps.fr.md @@ -0,0 +1,27 @@ +--- +category: "administrateur" +subcategory: "create_procedure" +slug: "comment-limiter-une-demarche-dans-le-temps" +locale: "fr" +keywords: "clôture automatique, limite temporelle, appels à projet, fermer une démarche" +title: "Comment limiter une démarche dans le temps ?" +--- + +# Comment limiter une démarche dans le temps ? + +La clôture automatique est une fonctionnalité qui permet de clore automatiquement le dépôt des dossiers à une date et heure prédéfinies, s’avérant particulièrement utile pour les appels à projet ou les démarches avec une période de candidature limitée. + +## Fonctionnement de la clôture automatique + +Lorsque la date limite est atteinte, la démarche devient inaccessible pour le dépôt de nouveaux dossiers par le public. Cependant, les usagers peuvent toujours consulter leurs dossiers déposés, et les instructeurs peuvent poursuivre l’instruction des dossiers déjà reçus. Tous les dossiers déposés avant la date limite passent automatiquement en phase d’instruction, tandis que les dossiers encore en brouillon restent non soumis et ne peuvent plus être déposés. + +## Activation de la clôture automatique + +Pour mettre en place la clôture automatique : + +1. Accédez à l’onglet « _Présentation_ » de votre démarche depuis le tableau de bord administrateur. +2. Dans les « _Options avancées_ », recherchez le champ intitulé « _Date limite de dépôt des dossiers_ » et renseignez la date souhaitée. + +![Saisie de la date limite de dépôt](faq/administrateur-set-auto-close-date.png) + +**Attention** : Si vous fixez la date de clôture au « 14 septembre », la fin de dépôt des dossiers sera effective le **14 septembre à 23h59 (heure de Paris)**. diff --git a/doc/faqs/administrateur/comment-mettre-en-forme-le-texte-de-ma-demarche.fr.md b/doc/faqs/administrateur/comment-mettre-en-forme-le-texte-de-ma-demarche.fr.md new file mode 100644 index 000000000..e2499b86a --- /dev/null +++ b/doc/faqs/administrateur/comment-mettre-en-forme-le-texte-de-ma-demarche.fr.md @@ -0,0 +1,60 @@ +--- +category: "administrateur" +subcategory: "create_procedure" +slug: "comment-mettre-en-forme-le-texte-de-ma-demarche" +locale: "fr" +keywords: "mise en forme, HTML, balises, texte démarche, gras, italique, souligné" +title: "Comment mettre en forme le texte de ma démarche ?" +--- + +# Comment mettre en forme le texte de ma démarche ? + +Il est possible de mettre en forme certaines parties de votre démarche en utilisant des balises HTML. Ces éléments de code vous permettent de : + +- Mettre votre texte en *italique* +- Souligner votre texte +- Mettre votre texte en **gras** +- Faire un paragraphe +- Mettre votre texte sous forme de titre + +## Quels sont les textes que je peux mettre en forme ? + +Vous pouvez utiliser certaines balises HTML dans **les éléments de description générale** de votre démarche et dans **la description d’un champ** de votre démarche. Les balises ne sont pas reconnues dans le libellé de votre démarche et ne peuvent donc pas être mises en forme. + +## Comment mettre en forme mon texte ? + +Pour cela, utilisez les balises HTML, identifiées par les caractères `<` et `>`, avec une balise ouvrante (ex : `

`) et une balise fermante (ex : `

`). Notez que la balise fermante inclut une barre oblique `/` (slash) après le `<`. + +### Exemples de mise en forme : + +- **Mettre un texte en italique** + - Balise ouvrante : `` + - Balise fermante : `` + - Exemple : « `Mon texte en italique` » affiche « Mon texte en *italique* » + +- **Souligner un texte** + - Balise ouvrante : `` + - Balise fermante : `` + - Exemple : `« Mon texte souligné »` affiche « Mon texte souligné » + +- **Mettre un texte en gras** + - Balise ouvrante : `` + - Balise fermante : `` + - Exemple : `« Mon texte en gras »` donne « Mon texte en **gras** » + +- **Faire un paragraphe** + - Balise ouvrante : `

` + - Balise fermante : `

` + - Exemple : `

Mon paragraphe

`. + + Généralement vous n’aurez pas besoin de créer un paragraphe, car un saut de ligne vide en créé toujours un nouveau. + +## Aperçu du texte avec ces balises + +Exemple dans la description de la démarche : + +![Démonstration de texte qui contient des balises HTML de mises en forme](faq/administrateur-example-markup.png) + +Rendu côté usager : + +![Aperçu du même texte dans la description de la démarche lisible par l’usager](faq/administrateur-example-markup-preview.png) diff --git a/doc/faqs/administrateur/comment-modifier-une-demarche-deja-publiee.fr.md b/doc/faqs/administrateur/comment-modifier-une-demarche-deja-publiee.fr.md new file mode 100644 index 000000000..99f09dba9 --- /dev/null +++ b/doc/faqs/administrateur/comment-modifier-une-demarche-deja-publiee.fr.md @@ -0,0 +1,31 @@ +--- +category: "administrateur" +subcategory: "general" +slug: "comment-modifier-une-demarche-deja-publiee" +locale: "fr" +keywords: "modifier démarche, publication, mise à jour formulaire, brouillon" +title: "Comment modifier une démarche déjà publiée ?" +--- + +# Comment modifier une démarche déjà publiée ? + +La plupart des caractéristiques de la démarche peuvent être modifiées après la publication, comme : + +- le nom et la description +- le formulaire en lui-même +- la délivrance et le contenu de l’attestation +- la plupart des réglages, à l’exception du chemin (l’url) et les réglages liées au *Silence Vaut Accord* ou *Silence Vaut Rejet* + + +## Modification du formulaire + +Vous disposez des mêmes options que lors de la création d’un formulaire. Pour valider les changements sur votre formulaire, cliquez simplement sur le bouton **« Publier »**. + +Les modifications apportées au formulaire s’appliqueront uniquement sur : + +- les dossiers en *« brouillon »* et les futurs dossiers (c’est-à-dire ceux déposés après la publication de vos modifications) +- les dossiers en *« en construction »* et *« en instruction »* compatibles (par exemple : si vous supprimez un champ ou modifiez les annotations privées) +- les autres dossiers en *« en construction »* au moment où l’usager modifier son dossier + +**Les dossiers *terminés* ne sont pas modifiés.** + diff --git a/doc/faqs/administrateur/comment-obtenir-un-compte-administrateur.fr.md b/doc/faqs/administrateur/comment-obtenir-un-compte-administrateur.fr.md new file mode 100644 index 000000000..25099ab68 --- /dev/null +++ b/doc/faqs/administrateur/comment-obtenir-un-compte-administrateur.fr.md @@ -0,0 +1,18 @@ +--- +category: "administrateur" +subcategory: "general" +slug: "comment-obtenir-un-compte-administrateur" +locale: "fr" +keywords: "compte administrateur, demande, organisme public, sécurité" +title: "Comment obtenir un compte administrateur ?" +--- + +# Comment obtenir un compte administrateur ? + +Pour obtenir un compte administrateur, il suffit d’en faire la demande en déposant un dossier via le lien suivant : [Demande d'inscription à %{application_name}](%{application_base_url}/commencer/demande-d-inscription-a-demarches-simplifiees) + +Le profil administrateur est le seul profil réservé strictement aux agents publics. Nous vous demandons donc de bien vouloir **faire la demande avec votre adresse mail professionnelle**. + +👉 **Attention**, la création de compte administrateur est **réservée uniquement aux organismes publics**. Elle ne concerne ni les particuliers, ni les entreprises, ni les associations (sauf celles reconnues d'utilité publique), ni les personnes souhaitant remplir un dossier ou faire une démarche en ligne. Ce compte vous permettra de dématérialiser des démarches papier sur demarches-simplifiees.fr, vous pourrez ensuite les diffuser en ligne auprès de vos usagers (sur votre site web, par exemple). + +Une fois votre demande acceptée, vous recevrez un email vous invitant à créer votre mot de passe. Pour des raisons de sécurité, celui-ci doit atteindre une certaine complexité (nous aussi on aurait préféré vous laisser choisir « chouchou1234 » mais, malheureusement, nous devons protéger vos usagers !). diff --git a/doc/faqs/administrateur/faire-tester-une-demarche-par-un-collegue.fr.md b/doc/faqs/administrateur/faire-tester-une-demarche-par-un-collegue.fr.md new file mode 100644 index 000000000..4afd8de48 --- /dev/null +++ b/doc/faqs/administrateur/faire-tester-une-demarche-par-un-collegue.fr.md @@ -0,0 +1,23 @@ +--- +category: "administrateur" +subcategory: "procedure_test" +slug: "faire-tester-une-demarche-par-un-collegue" +locale: "fr" +keywords: "démarche en test, lien URL, accès démarche, erreur message" +title: "Faire tester une démarche par un collègue" +--- + +# Faire tester une démarche par un(e) collègue + +Si vous êtes administrateur, vous pouvez partager le lien de votre démarche en test à un collègue. Il n’a pas besoin d’être administrateur pour tester le formulaire, mais doit avoir un compte sur %{application_name}. + +**Attention : tout dossier déposé, même instruit, sera supprimé une fois la démarche publiée. Ne communiquez pas ce lien à des vrais usagers !** + +## Message: *« La demarche n’existe pas »* + +Si la personne qui teste voit un bandeau avec le message *« La démarche n’existe pas »* après s’être identifié(e), cela indique généralement un problème avec le lien. + +Vérifiez les points suivants : + +- **Connexion requise** : Pour accéder à une démarche de test, l’usager doit d’abord être connecté à %{application_name}. La création d’un compte est donc indispensable. +- **Vérification du lien** : Assurez-vous que le lien transmis est correct. Un lien erroné conduira à l’affichage du message d’erreur mentionné. diff --git a/doc/faqs/administrateur/guide-de-bonnes-pratiques-pour-tester-une-demarche.fr.md b/doc/faqs/administrateur/guide-de-bonnes-pratiques-pour-tester-une-demarche.fr.md new file mode 100644 index 000000000..6e00f34d6 --- /dev/null +++ b/doc/faqs/administrateur/guide-de-bonnes-pratiques-pour-tester-une-demarche.fr.md @@ -0,0 +1,104 @@ +--- +category: "administrateur" +subcategory: "procedure_test" +slug: "guide-de-bonnes-pratiques-pour-tester-une-demarche" +locale: "fr" +keywords: "test démarche, étapes test, dépôt dossier, instruction, fonctionnalités secondaires" +title: "Guide de bonnes pratiques pour tester une démarche" +--- + +# Guide de bonnes pratiques pour tester une démarche + +Tester une démarche est nécessaire avant toute publication. En effet, il s’agit d’une étape essentielle pour déployer un formulaire de qualité, cela permet notamment de : + +- corriger les erreurs de votre formulaire et de le transmettre à votre délégué à la protection des données +- vérifier que le processus d’instruction envisagé correspond à vos besoins ainsi que toutes les fonctionnalités associées (emails automatiques, attestations, annotations privées, etc…) +- préparer votre service et vos usagers à l’utilisation de %{application_name}. + + +## Déroulé du test + +Le test d’une démarche se déroule en trois étapes : + +1. le test de la partie usager (dépôt de dossiers) +2. le test de la partie instructeur (instruction du dossier) +3. le test des fonctionnalités secondaires + +Vous pouvez faire tester la partie usager (étape 1) et instructeur (étape 2) par des collaborateurs. Cependant, nous vous recommandons fortement de les tester vous-même une première fois. + +**Vous pouvez effectuer toutes les modifications que vous souhaitez sur votre démarche pendant cette phase de test.** + +Bien évidemment, avant de tester la démarche, il faut l’avoir créé. Pour cela, vous pouvez vous aider de [notre guide de la dématérialisation réussie via %{application_name}](https://456404736-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L7_aKvpAJdAIEfxHudA%2Fuploads%2FGJm7S7LVjHPKVlMCE36e%2FGuide%20des%20bonnes%20pratiques%20démarches-simplifiees.pdf?alt=media&token=228e63c7-a168-4656-9cda-3f53a10645c2). Vous pouvez également consulter la documentation [Comment créer une nouvelle démarche](https://doc.demarches-simplifiees.fr/tutoriels/tutoriel-administrateur) + +## Étape 1 : Déposer un dossier de test côté usager + +Vous devez commencer par cette étape afin de tester le parcours d’un usager pour déposer un dossier. De plus, sans dossier déposé, vous ne pourrez pas tester les fonctionnalités relatives à l’instruction. + +1. Utilisez le bouton **« Tester la démarche »** (ou suivez le lien de la démarche), accessibles depuis votre interface administrateur. Toute personne ayant connaissance du lien pourra remplir des dossiers test sur votre démarche qui seront supprimés plus tard. + ![Bouton Tester la démarche depuis la tableau de bord de la démarche](faq/administrateur-procedure-test-button.png) + ![Affichage du lien de test de la démarche](faq/administrateur-procedure-test-link.png) + +2. Commencez à remplir votre dossier en suivant le bouton **« Commencer la démarche »**. + ![Page d’accueil usager de la démarche](faq/administrateur-procedure-test-commencer.png) + +3. Après avoir complété le dossier et éventuellement testé les fonctionnalités dédiées à l'interface usagers (invitation à compléter un dossier…), cliquez sur **« Déposer le dossier »** pour finaliser le dépôt et voir le message de confirmation de dépôt. + ![Test de la démarche par l’usager](faq/administrateur-procedure-test-usager.png) + +Une fois votre dossier de test déposé, un message de confirmation de dépôt sera affiché : + +![Message de confirmation de dépôt d’un dossier](faq/administrateur-procedure-test-thanks.png) + +N’hésitez pas à [transmettre le lien vers la démarche test à vos collègues](/faq/administrateur/faire-tester-une-demarche-par-un-collegue) afin qu’ils puissent la tester et vous transmettre leur retour. Gardez à l’esprit que **tous les dossiers déposés pendant le test seront supprimés** lorsque la démarche sera modifiée ou publiée. + +## Étape 2 : Instruire le dossier de test + +Vous avez déposé à l’étape précédente un premier dossier. Rendez-vous désormais dans la partie instructeur. + +Passez à l’interface instructeur via le lien [%{application_base_url}/procedures](/procedures) ou en changeant de profil depuis le menu en haut à droite en cliquant sur votre adresse email. + +![Menu pour passer instructeur](faq/administrateur-profile-switch.png) + +⚠️ **Vous devez être instructeur de la démarche pour accéder aux dossiers déposés**. Par défaut, en tant que créateur de la démarche (administrateur), vous êtes instructeur de celle-ci. Si vous ne testez pas vous-même cette partie, ajoutez votre collaborateur en tant qu’instructeur. + +Vous arrivez alors sur l’interface instructeur. Il vous suffit de cliquer sur l’onglet **« En test »** puis suivez le lien de votre démarche avec un dossier **« à suivre »** . + +![Page d’accueil instructeur de la démarche](faq/administrateur-procedures-list.png) + +Trouvez le dossier à suivre, puis testez l’instruction du dossier. + +![Dossier à suivre](faq/administrateur-test-instruction-dossiers-list.png) + +Voici le tutoriel pour instruire un dossier en tant qu’instructeur : [Tutoriel Instructeur](https://doc.demarches-simplifiees.fr/tutoriels/tutoriel-instructeur) + +## Étape 3 : Tester les fonctionnalités secondaires + +Vous pourrez ici tester différents éléments secondaires : + +- Demande d’**avis externe** (partie instruction) . Pour plus d’information, vous pouvez consulter [notre tutoriel expert invité](https://doc.demarches-simplifiees.fr/tutoriels/tutoriel-expert-invite) +- **Vérifiez les e-mails** d’accusé de réception, de passage en instruction, d’acceptation, de refus et de classement sans suite (partie usager) +- Testez la **messagerie du dossier** en envoyant un message à l’usager. Si vous souhaitez anonymiser l’adresse mail des instructeurs dans la messagerie, vous pouvez [nous contacter à l’adresse %{contact_email}](mailto:%{contact_email}) +- Si l’**attestation automatique d’acceptation** et la partie annotations privées ont été paramétrées, vérifiez qu’il n’y a pas d’erreur + +En cas d’erreur et/ou en fonction des retours de vos collègues suite à la phase de test, vous pouvez modifier la démarche depuis votre profil administrateur. + +**⚠️ Attention, suite aux modifications, tous les dossiers seront supprimés.** + + +## Fin du test : Passage en production + +Après avoir minutieusement testé votre démarche, il est temps de la rendre accessible à tous en la publiant. + +1. **Accédez au tableau de bord administrateur** de votre démarche et cliquez sur le bouton **« Publier »** situé en haut à droite. + ![Bouton Publier](faq/administrateur-procedure-test-publish.png) + +2. **Personnalisez le lien** du formulaire pour le diffuser plus facilement à vos usagers. Cette étape vous permet de simplifier l’accès à votre démarche. + +3. **Indiquez le lien de diffusion** de votre démarche, comme le site internet de votre organisme, pour faciliter la communication auprès des usagers. + +4. **Prenez connaissance des mentions RGPD** avant la publication pour assurer la conformité de votre démarche avec le **Règlement Général sur la Protection des Données**. + +5. **Finalisez la publication** en cliquant sur le bouton **« Publier »** situé en bas de l’écran. + +Félicitations, vous êtes désormais administrateur d’une démarche publiée sur %{application_name} ! + +⚠️ **N’oubliez pas de diffuser le lien** de votre démarche auprès de vos usagers, accessible depuis votre interface administrateur. Ce lien est différent du lien de la démarche test. diff --git a/doc/faqs/administrateur/je-dois-confirmer-mon-compte-a-chaque-connexion.fr.md b/doc/faqs/administrateur/je-dois-confirmer-mon-compte-a-chaque-connexion.fr.md new file mode 100644 index 000000000..cb1232330 --- /dev/null +++ b/doc/faqs/administrateur/je-dois-confirmer-mon-compte-a-chaque-connexion.fr.md @@ -0,0 +1,36 @@ +--- +category: "administrateur" +subcategory: "general" +slug: "je-dois-confirmer-mon-compte-a-chaque-connexion" +locale: "fr" +keywords: "authentification, navigateur, configuration, cookies, sécurité compte" +title: "Je dois confirmer mon compte à chaque connexion" +--- + +# Je dois confirmer mon compte à chaque connexion + +Afin de sécuriser votre compte, %{application_name} vous demande tous les mois d’authentifier votre navigateur. Il vous faut alors cliquer sur le lien de confirmation envoyé par email. + +Ce processus peut parfois vous être demandé à chaque connexion. Nous avons identifié deux raisons possibles : + +- Une mauvaise configuration de votre navigateur. +- Le navigateur authentifié n’est pas celui que vous utilisez. + +**Le lien reçu** par email est **valide une semaine** et peut être **utilisé plusieurs fois**. Vous pouvez donc probablement le réutiliser pour authentifier votre navigateur sans attendre un nouvel email. + +## Mauvaise configuration de votre navigateur + +Ce problème apparaît lorsque votre navigateur est configuré de manière très sécurisée et efface les données provenant de %{application_name} à chaque fermeture. + +**Solution :** Pour corriger ce problème, configurez votre navigateur pour accepter les cookies du domaine %{application_name} : + +- Pour Firefox [https://support.mozilla.org/fr/kb/sites-disent-cookies-bloques-les-debloquer](https://support.mozilla.org/fr/kb/sites-disent-cookies-bloques-les-debloquer), +- Pour Chrome [https://support.google.com/accounts/answer/61416?co=GENIE.Platform%3DDesktop&hl=fr](https://support.google.com/accounts/answer/61416?co=GENIE.Platform%3DDesktop&hl=fr). + +Si vous n’avez pas les droits suffisants pour modifier cette configuration, contactez votre support informatique et mettez-nous en copie : %{contact_email} + +## Le navigateur authentifié n’est pas celui que vous utilisez + +Il est possible que lorsque vous cliquez sur le lien de l’email, celui-ci ouvre le navigateur par défaut, souvent Internet Explorer, alors que vous utilisez un autre navigateur, comme Firefox, pour accéder à %{application_name}. Le lendemain, lorsque vous ouvrez Firefox, le navigateur n’est toujours pas authentifié et vous devez à nouveau cliquer sur le lien de connexion. + +**Solution :** Copiez le lien de l’email et ouvrez-le avec le navigateur que vous utilisez habituellement pour aller sur %{application_name}. diff --git a/doc/faqs/administrateur/je-ne-trouve-pas-ma-demarche-dans-le-catalogue-de-demarches.fr.md b/doc/faqs/administrateur/je-ne-trouve-pas-ma-demarche-dans-le-catalogue-de-demarches.fr.md new file mode 100644 index 000000000..e84b306e0 --- /dev/null +++ b/doc/faqs/administrateur/je-ne-trouve-pas-ma-demarche-dans-le-catalogue-de-demarches.fr.md @@ -0,0 +1,35 @@ +--- +category: "administrateur" +subcategory: "create_procedure" +slug: "je-ne-trouve-pas-ma-demarche-dans-le-catalogue-de-demarches" +locale: "fr" +keywords: "catalogue démarches, cloner démarche, partager démarche, critères répertoriation" +title: "Je ne trouve pas ma démarche dans le catalogue de démarches" +--- + +# Je ne trouve pas ma démarche dans le catalogue de démarches + +Si vous avez publié votre démarche et qu’un collègue souhaite la cloner mais ne la trouve pas sous « _Nouvelle démarche_ » dans le catalogue _Créer une nouvelle démarche à partir d’une démarche existante_, voici quelques étapes à suivre : + +1. Utiliser la fonction de recherche du navigateur (Ctrl + F) pour chercher par mot clé plutôt que par le titre complet de la démarche et vérifier sa présence. +2. Si la démarche n’est pas trouvée, cela peut être dû au critère de répertoriation qui requiert que 30 dossiers soient déposés sur la démarche pour figurer dans le catalogue. + +## Partager la démarche +Dans cette situation, vous pouvez partager directement votre démarche avec votre collègue : + +- Allez sur votre profil administrateur. +- Cliquez sur votre démarche. +- Accédez à l’onglet publication. +- Suivez le bouton « _Envoyer une copie_ » en haut à droite. +- Entrez l’adresse email de votre collègue. + +Votre collègue trouvera alors une copie de votre démarche dans ses démarches « En test ». + +![Capture d’écran du bouton Envoyer une copie de ma démarche](faq/administrateur-button-copy-procedure.png) + +## Recherche dans « Toutes les démarches » + +Vous pouvez également rechercher la démarche depuis la page « _Toutes les démarches_ », où il est possible de filtrer les démarches par zones, statut, SIRET ou tags, y compris celles avec moins de 30 dossiers déposés. + +![Capture d’écran du lien vers la page Toute les démarches](faq/administrateur-link-all-procedures.png) +![Capture d’écran de la page Toutes les démarches](faq/administrateur-all-procedures.png) diff --git a/doc/faqs/administrateur/je-suis-une-collectivite-quelle-cadre-juridique-puis-je-indiquer-pour-ma-demarche.fr.md b/doc/faqs/administrateur/je-suis-une-collectivite-quelle-cadre-juridique-puis-je-indiquer-pour-ma-demarche.fr.md new file mode 100644 index 000000000..7769a2a86 --- /dev/null +++ b/doc/faqs/administrateur/je-suis-une-collectivite-quelle-cadre-juridique-puis-je-indiquer-pour-ma-demarche.fr.md @@ -0,0 +1,20 @@ +--- +category: "administrateur" +subcategory: "create_procedure" +slug: "je-suis-une-collectivite-quelle-cadre-juridique-puis-je-indiquer-pour-ma-demarche" +locale: "fr" +keywords: "collectivité, cadre juridique, compétence, dématérialisation, arrêté 2013" +title: "Je suis une collectivité, quel cadre juridique puis-je indiquer pour ma démarche ?" +--- + +# Je suis une collectivité, quel cadre juridique puis-je indiquer pour ma démarche ? + +Lors de la création d’une démarche, nous vous demandons d’indiquer le cadre juridique sur lequel elle repose. + +Pour les collectivités, ce cadre juridique peut notamment faire référence à leur compétence générale, +mais il peut s’avérer difficile de trouver un texte correspondant. +Dans cette optique, l’arrêté du 4 juillet 2013 regroupe un nombre important de domaines +pour lesquels les collectivités sont compétentes et peuvent dématérialiser. + +Nous vous invitons donc à [consulter cet arrêté sur LegiFrance](https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=JORFTEXT000027697207&dateTexte=20190715) +et à le citer le cas échéant. diff --git a/doc/faqs/administrateur/les-blocs-repetables.fr.md b/doc/faqs/administrateur/les-blocs-repetables.fr.md new file mode 100644 index 000000000..bb28f9b3e --- /dev/null +++ b/doc/faqs/administrateur/les-blocs-repetables.fr.md @@ -0,0 +1,39 @@ +--- +category: "administrateur" +subcategory: "general" +slug: "les-blocs-repetables" +locale: "fr" +keywords: "blocs répétables, champs dynamiques, saisie multiple, configuration champ" +title: "Les blocs répétables" +--- + +# Les blocs répétables + +Les blocs répétables sont une fonctionnalité qui permet à l’usager de saisir un certain nombre de champs autant de fois qu’il le souhaite. + + +## Exemple d’utilisation + +Imaginez une situation où l’usager doit saisir plusieurs fois une commune. L’administrateur prévoit une seule fois ce « bloc » d’informations (champ commune), et l’usager peut ensuite le saisir autant de fois que nécessaire. + + +## Comment configurer un bloc répétable ? + +1. Sélectionnez comme type de champ le **« Bloc répétable »** et ajoutez son libellé. Dans notre exemple ce sera *Localisation*. + ![Exemple de choix du champ Bloc répétable](faq/administrateur-list-champs-repetition.png) + +2. Renseignez les différents champs à inclure au sein de ce bloc répétable en cliquant sur **« Ajouter un champ »** à l’intérieur du bloc. Vous pouvez ajouter tous les types de champ (texte, zone de texte, entier, etc…) + Dans l’exemple d’une liste de communes, l’administrateur ajoute donc le champ « Commune » mais d’autres champs pourraient être ajoutés. + ![Exemple de configuration d’une répétition](faq/administrateur-repetition-create.png) + +## Comment fonctionne-t-il pour l’usager ? + +- L’usager voit le champ répétable, vide par défaut, et peut cliquer sur **« Ajouter un élément »** pour saisir une nouvelle instance du bloc. + ![Vue usager vide du bloc répétable](faq/administrateur-repetition-view-usager-empty.png) + +- Après avoir ajouté un élément, il peut continuer à ajouter de nouvelles valeurs aussi souvent que nécessaire. + ![Vue usager remplie avec 2 communes du bloc répétable](faq/administrateur-repetition-view-usager-fill.png) + +- Si nécessaire, l’usager a la possibilité de supprimer un élément précédemment ajouté. + +Les blocs répétables simplifient grandement la saisie de données multiples. diff --git a/doc/faqs/administrateur/les-instructeurs-n-ont-pas-recu-d-email-d-invitation.fr.md b/doc/faqs/administrateur/les-instructeurs-n-ont-pas-recu-d-email-d-invitation.fr.md new file mode 100644 index 000000000..e7bd80e21 --- /dev/null +++ b/doc/faqs/administrateur/les-instructeurs-n-ont-pas-recu-d-email-d-invitation.fr.md @@ -0,0 +1,20 @@ +--- +category: "administrateur" +subcategory: "create_procedure" +slug: "les-instructeurs-n-ont-pas-recu-d-email-d-invitation" +locale: "fr" +keywords: "instructeurs, email, invitation, erreur, saisie, démarche" +title: "Les instructeurs n’ont pas reçu d’email d’invitation" +--- + +# Les instructeurs n’ont pas reçu d’email d’invitation + +En tant qu’administrateur, si après avoir nommé des instructeurs sur votre +démarche ces derniers ne reçoivent pas d’email d’invitation à se connecter à %{application_name}, +alors vous vous trouvez peut-être dans la situation suivante : + +- Vous avez fait une erreur dans la saisie des adresses email en nommant les instructeurs. + +- Les instructeurs sont déjà nommés sur une autre démarche. Leur compte étant déjà validé, ils ne reçoivent plus de nouvel email. + +- Vous ne vous trouvez dans aucune des situations mentionnées ? Nous vous prions de nous [contacter par email](mailto:%{contact_email}). diff --git a/doc/faqs/administrateur/nommer-un-nouvel-administrateur-des-demarches-les-bonnes-pratiques.fr.md b/doc/faqs/administrateur/nommer-un-nouvel-administrateur-des-demarches-les-bonnes-pratiques.fr.md new file mode 100644 index 000000000..4e4ee3c25 --- /dev/null +++ b/doc/faqs/administrateur/nommer-un-nouvel-administrateur-des-demarches-les-bonnes-pratiques.fr.md @@ -0,0 +1,20 @@ +--- +category: "administrateur" +subcategory: "administrateur_departure" +slug: "nommer-un-nouvel-administrateur-des-demarches-les-bonnes-pratiques" +locale: "fr" +keywords: "nouvel administrateur, compte administrateur, transmission, suppression compte" +title: "Nommer un nouvel administrateur des démarches" +--- + +# Nommer un nouvel administrateur des démarches + +Pour assurer une transition fluide et maintenir l’intégrité de vos démarches, voici quelques étapes à suivre lors de la nomination d’un nouvel administrateur : + +1. **Identifier le nouvel administrateur** au sein de votre service qui prendra en charge des démarches. Si cette personne n’a pas encore de compte administrateur, elle peut en demander un via le lien : [Demande d’inscription à %{application_name}](%{application_base_url}/demandes/new). + +2. **Ajouter ce nouvel administrateur à toutes vos démarches**. Consultez notre tutoriel dédié pour vous guider dans ce processus : [Plusieurs administrateurs sur une même démarche](/faq/administrateur/ajouter-plusieurs-administrateurs-sur-une-meme-demarche). + +3. **Demander la suppression de votre compte** à [%{contact_email}](mailto:%{contact_email}), à condition qu’aucun dossier ou démarche ne soit rattaché à votre compte. Si nécessaire, pour votre nouvelle fonction, demandez l’ouverture d’un nouveau compte administrateur avec notre nouvel email via le formulaire : [Demande d’inscription à %{application_name}](%{application_base_url}/demandes/new). + +Ces étapes assurent une gestion continue et efficace des démarches, tout en facilitant le passage de responsabilités entre administrateurs. diff --git a/doc/faqs/administrateur/qu-est-ce-qu-un-administrateur.fr.md b/doc/faqs/administrateur/qu-est-ce-qu-un-administrateur.fr.md new file mode 100644 index 000000000..2017ea8db --- /dev/null +++ b/doc/faqs/administrateur/qu-est-ce-qu-un-administrateur.fr.md @@ -0,0 +1,16 @@ +--- +category: "administrateur" +subcategory: "general" +slug: "qu-est-ce-qu-un-administrateur" +locale: "fr" +keywords: "administrateur, gestion démarche, nommer instructeurs, profil utilisateur" +title: "Qu’est-ce qu’un administrateur ?" +--- + +# Qu’est-ce qu’un administrateur ? + +Un administrateur est en charge de la construction du formulaire et de la gestion de la démarche en général. Il a la responsabilité de nommer les instructeurs et est automatiquement considéré comme instructeur, ce qui signifie qu’il a accès aux dossiers et peut les instruire. + +Pour passer de l’action administrative à l’instruction des dossiers, l’administrateur doit changer de profil pour adopter celui d’instructeur. Cela montre la flexibilité du rôle d’administrateur, qui peut également endosser les rôles d’instructeur, d’usager, ou encore d’expert-invité selon les besoins de la démarche. + +Pour plus d’informations concernant le profil administrateur, vous pouvez consulter notre documentation : [Tutoriel Administrateur](https://doc.demarches-simplifiees.fr/tutoriels/tutoriel-administrateur) diff --git a/doc/faqs/instructeur/a-quoi-correspondent-les-differentes-categories-de-dossiers.fr.md b/doc/faqs/instructeur/a-quoi-correspondent-les-differentes-categories-de-dossiers.fr.md new file mode 100644 index 000000000..45d9efaa4 --- /dev/null +++ b/doc/faqs/instructeur/a-quoi-correspondent-les-differentes-categories-de-dossiers.fr.md @@ -0,0 +1,23 @@ +--- +category: "instructeur" +subcategory: "instruction" +slug: "a-quoi-correspondent-les-differentes-categories-de-dossiers" +locale: "fr" +keywords: "catégories dossiers, à suivre, suivi, traités, supprimé récemment, archivés" +title: "À quoi correspondent les différentes catégories de dossiers ?" +--- + +# À quoi correspondent les différentes catégories de dossiers ? + +Pour chaque démarche, les dossiers sont répartis dans plusieurs onglets : + +- **À suivre** : regroupe l’ensemble des dossiers qui ne sont suivis par aucun instructeur. +- **Suivis** : n’affiche que les dossiers que *vous* suivez. Elle ne prend donc pas en compte les dossiers suivis par les autres instructeurs de la démarche. +- **Traités** : regroupe les dossiers dont le statut est *accepté*, *refusé* ou *classé sans suite* et qui n’ont pas été archivés. +- **Supprimé récemment** : regroupe l’ensemble des dossiers non archivés, terminés et supprimés par les instructeurs de la démarche. +- **Expirant** : les dossiers *en construction* ou *traités*, (archivés ou non), dont le délai d’expiration approche (moins d’un mois). À l’issue de ce délai, le dossier sera supprimé de la plateforme. +- **Archivés** : regroupe l’ensemble des dossiers archivés. Les instructeurs ne peuvent plus y répondre, et les demandeurs ne peuvent plus les modifier. La messagerie est désactivée. Ces dossiers seront supprimés lorsque leur délai de conservation sur %{application_name} sera expiré. + +Notez qu’**un dossier peut être suivi par plusieurs instructeurs**. Vous pourrez donc retrouver les dossiers que vous ne suivez pas dans l’onglet **au total**. La somme des onglets *à suivre*, *suivis* et *traités* n’est donc pas nécessairement égale au nombre affiché *au total*. + +![Différents onglets répartissant les dossiers d’une démarche.](faq/instructeur-procedure-show.png) diff --git a/doc/faqs/instructeur/comment-ajouter-un-justificatif-lors-de-l-acceptation-d-un-dossier.fr.md b/doc/faqs/instructeur/comment-ajouter-un-justificatif-lors-de-l-acceptation-d-un-dossier.fr.md new file mode 100644 index 000000000..942ccc13d --- /dev/null +++ b/doc/faqs/instructeur/comment-ajouter-un-justificatif-lors-de-l-acceptation-d-un-dossier.fr.md @@ -0,0 +1,22 @@ +--- +category: "instructeur" +subcategory: "instruction" +slug: "comment-ajouter-un-justificatif-lors-de-l-acceptation-d-un-dossier" +locale: "fr" +keywords: "ajouter justificatif, acceptation dossier, lien attestation, documentation administrateur" +title: "Comment ajouter un justificatif lors de l’acceptation d’un dossier" +--- + +# Comment ajouter un justificatif lors de l’acceptation d’un dossier + +Lorsque vous acceptez, refusez ou classez sans suite un dossier, il est possible de joindre un document après avoir indiqué la raison derrière ce choix. + +![L’interface de l’instructeur pour accepter, refuser ou classer sans suite un dossier.](faq/instructeur-accepter-add-justificatif.png) + +## Note importante + +Pour que l’usager reçoive par email un lien lui permettant d’accéder au document en question, il est nécessaire d’inclure la balise `--lien attestation--` dans l’email d’acceptation. Cette opération requiert des droits d’administrateur. Vous pouvez trouver [dans la documentation comment procéder à cette opération](https://doc.demarches-simplifiees.fr/tutoriels/tutoriel-administrateur#les-e-mails-automatiques). Ce lien de téléchargement est disponible directement dans l’email **uniquement** en cas d’acceptation du dossier. + +Dans tous les cas, le document sera accessible dans l’interface de l’usager, qui pourra le télécharger, comme illustré ci-dessous : + +![L’interface de l’usager pour accéder à l’attestation de dépôt d’un dossier](faq/usager-dossier-accepte-summary.png) diff --git a/doc/faqs/instructeur/comment-filtrer-la-liste-des-dossiers.fr.md b/doc/faqs/instructeur/comment-filtrer-la-liste-des-dossiers.fr.md new file mode 100644 index 000000000..40804127c --- /dev/null +++ b/doc/faqs/instructeur/comment-filtrer-la-liste-des-dossiers.fr.md @@ -0,0 +1,52 @@ +--- +category: "instructeur" +subcategory: "instruction" +slug: "comment-filtrer-la-liste-des-dossiers" +locale: "fr" +keywords: "filtre dossiers, instruction, personnaliser tableau, sélection filtre" +title: "Comment filtrer la liste des dossiers ?" +--- + +# Comment filtrer la liste des dossiers ? + +En tant qu’Instructeur, vous pouvez appliquer des filtres sur la liste des dossiers, pour n’afficher que certaines valeurs et ainsi vous **faciliter l’instruction des dossiers**. + +## Appliquer un filtre + +Pour appliquer un filtre à une liste de dossiers : + +1. Affichez la liste des dossiers de la démarche. +2. Cliquez sur le bouton **« Sélectionner un filtre »**. +3. Sélectionnez le nom du champ sur lequel vous souhaitez appliquer un filtre en cliquant sur l’espace à droite de *colonne*. +4. Sélectionnez ensuite la valeur à filtrer. +5. Cliquez enfin sur **« Ajouter le filtre »**. + +![Capture d’écran de l’interface de saisie d’un filtre](faq/instructeur-filtres-dropdown.png) + +![Capture d’écran de toutes les colonnes filtres](faq/instructeur-filtres-list.png) + +## Appliquer plusieurs filtres + +Vous pouvez appliquer plusieurs filtres à une même liste. Quand vous appliquez des filtres sur des **types de champs différents**, les dossiers affichés sont ceux qui correspondent à **tous les filtres**. + +![Capture d’écran récapitulant une combinaison de filtres différents addifitifs](faq/instructeur-filtres-and.png) + +Quand vous appliquez des filtres sur les **mêmes types de champs**, les dossiers affichés sont ceux qui correspondent à **l’une ou l’autre des valeurs**. + +![Capture d’écran récapitulant une combinaison de filtres sur une même colonne](faq/instructeur-filtres-and.png) + +## Appliquer un filtre à une date + +Pour appliquer un filtre sur une colonne de date, rentrez la date au format « JJ/MM/AAAA ». + +![Capture d’écran illustrant un filtre sur une date](faq/instructeur-filtres-date.png) + +## Conseils sur les filtres + +- Les filtres s’appliquent indépendamment des majuscules et des minuscules. Par exemple, un filtre avec la valeur « domicile » renverra les dossiers pour « **Domicile** à Paris » et « Sans **domicile** ». +- Les filtres s’appliquent indifféremment au début, au milieu et à la fin des mots. Par exemple, un filtre avec la valeur « Pierre » renverra les dossiers pour « **Pierre**-Olivier » et « Jean-**Pierre** ». +- Les filtres sont individuels : vous pouvez appliquer des filtres sur votre compte sans que cela affecte les autres instructeurs. Ils sont enregistrés et restent présents lorsque vous fermez la page. + +En complément, vous pouvez également utiliser le bouton **« Personnaliser le tableau »** afin d’avoir une idée des informations du dossier avant de l’instruire. + +![Capture d'écran de l’interface de personnalisation du tableau](faq/instructeur-dossiers-list-header.png) diff --git a/doc/faqs/instructeur/comment-recevoir-un-email-chaque-fois-qu-un-dossier-est-depose.fr.md b/doc/faqs/instructeur/comment-recevoir-un-email-chaque-fois-qu-un-dossier-est-depose.fr.md new file mode 100644 index 000000000..9dfc06835 --- /dev/null +++ b/doc/faqs/instructeur/comment-recevoir-un-email-chaque-fois-qu-un-dossier-est-depose.fr.md @@ -0,0 +1,28 @@ +--- +category: "instructeur" +subcategory: "instruction" +slug: "comment-recevoir-run-email-chaque-fois-qu-un-dossier-est-depose" +locale: "fr" +keywords: "notification, suivi dossier, alerte dépôt dossier" +title: "Comment recevoir un email chaque fois qu’un dossier est déposé ?" +--- + +# Comment recevoir un email chaque fois qu’un dossier est déposé ? + +Il suffit de configurer vos notifications pour recevoir un email. En effet, pour vous aider à mieux suivre l’instruction de vos dossiers, plusieurs types de mails automatiques sont disponibles selon vos besoins : + +- Notification à chaque dossier déposé +- Notification à chaque message déposé +- Notification quotidienne +- Notification hebdomadaire +- Notification pour chaque avis rendu par un expert + +Pour paramétrer vos notifications en tant qu’instructeur, vous devez cliquer sur la démarche pour laquelle vous souhaitez recevoir l’email, puis cliquer sur **« Gestion des notifications »** : + +![Écran d’en-tête d’une démarche affichant le lien vers la page de gestion des notifications](faq/instructeur-procedure-header.png) + +Sélectionnez les notifications que vous souhaitez recevoir par email et cliquez sur le bouton **« Enregistrer »** : + +![Capture d’écran de la page de gestion des notifications](faq/instructeur-procedure-notifications.png) + +**Il est nécessaire de répéter cette opération pour chaque démarche pour laquelle vous souhaitez recevoir des notifications par email.** diff --git a/doc/faqs/instructeur/comment-repasser-un-dossier-en-instruction.fr.md b/doc/faqs/instructeur/comment-repasser-un-dossier-en-instruction.fr.md new file mode 100644 index 000000000..fa7776217 --- /dev/null +++ b/doc/faqs/instructeur/comment-repasser-un-dossier-en-instruction.fr.md @@ -0,0 +1,22 @@ +--- +category: "instructeur" +subcategory: "instruction" +slug: "comment-repasser-un-dossier-en-instruction" +locale: "fr" +keywords: "repasser instruction, dossier clôt, droits usager, demande correction" +title: "Comment repasser un dossier en instruction ?" +--- + +# Comment repasser un dossier en instruction ? + +Une fois un dossier clôturé, vous avez la possibilité de le repasser en instruction, notamment si vous souhaitez que l’usager vous apporte des éléments complémentaires. + +Toutefois, **l’acceptation d’un dossier génère des droits pour l’usager**. De ce fait, **votre responsabilité peut être engagée en cas de retour sur des droits qui ont été octroyés**. + +## Repasser un dossier en instruction + +Pour cela, cliquez sur le bouton relatif au statut du dossier (*Accepter*, *Refuser* ou *Classer sans suite*), puis sur **Repasser le dossier en construction**. L’usager recevra alors un email suivant le modèle ci-dessous. + +![Email reçu par un usager lorsque son dossier repasse en instruction, mentionnant que la précédente décision sur ce dossier est caduque.](faq/usager-email-dossier-repasser-instruction.png) + +Par ailleurs, vous pouvez désormais demander à l’usager de corriger son dossier et lui indiquer les informations à modifier/compléter en cliquant sur le bouton **Demande de correction** depuis l’interface instructeur. diff --git a/doc/faqs/instructeur/je-dois-confirmer-mon-compte-a-chaque-connexion.fr.md b/doc/faqs/instructeur/je-dois-confirmer-mon-compte-a-chaque-connexion.fr.md new file mode 100644 index 000000000..cfcc96f2f --- /dev/null +++ b/doc/faqs/instructeur/je-dois-confirmer-mon-compte-a-chaque-connexion.fr.md @@ -0,0 +1,36 @@ +--- +category: "instructeur" +subcategory: "instructeur_account" +slug: "je-dois-confirmer-mon-compte-a-chaque-connexion" +locale: "fr" +keywords: "sécurité, navigateur, authentification, cookies, configuration" +title: "Je dois confirmer mon compte à chaque connexion" +--- + +# Je dois confirmer mon compte à chaque connexion + +Afin de sécuriser votre compte, %{application_name} vous demande tous les mois d’authentifier votre navigateur. Il vous faut alors cliquer sur le lien de confirmation envoyé par email. + +Ce processus peut parfois vous être demandé à chaque connexion, nous avons identifié deux raisons possibles : + +- Une mauvaise configuration de votre navigateur +- Le navigateur authentifié n’est pas celui que vous utilisez + +Finalement, le lien reçu par email est valide une semaine et peut-être utilisé plusieurs fois. Vous pouvez donc probablement le réutiliser pour authentifier votre navigateur sans attendre un nouvel email. + +## Mauvaise configuration de notre navigateur + +Ce problème apparaît lorsque votre navigateur est configuré de manière très sécurisée et efface les données provenant de %{application_name} à chaque fermeture. + +Solution : Pour corriger ce problème, configurez votre navigateur pour accepter les cookies du domaine %{application_name} : + +- pour Firefox [https://support.mozilla.org/fr/kb/sites-disent-cookies-bloques-les-debloquer](https://support.mozilla.org/fr/kb/sites-disent-cookies-bloques-les-debloquer), +- pour Chrome [https://support.google.com/accounts/answer/61416?co=GENIE.Platform%3DDesktop&hl=fr](https://support.google.com/accounts/answer/61416?co=GENIE.Platform%3DDesktop&hl=fr). + +Si vous n’avez pas les droits suffisant pour modifier cette configuration, contactez votre support informatique en nous mettant en copie : %{contact_email} + +## Le navigateur authentifié n’est pas celui que vous utilisez + +Il est possible que lorsque vous cliquez sur le lien de l’email, celui-ci ouvre le navigateur par défaut, la plupart du temps Internet Explorer. Or, le navigateur que vous utilisez pour aller sur %{application_name} est, par exemple, Firefox. Donc, le lendemain, lorsque vous ouvrez Firefox, le navigateur n’est toujours pas authentifié et vous devez à nouveau cliquer sur le lien de connexion. + +Solution : copiez le lien de l’email et ouvrez-le avec le navigateur que vous utilisez habituellement pour aller sur %{application_name}. diff --git a/doc/faqs/instructeur/je-n-arrive-pas-a-acceder-aux-dossiers-que-je-souhaite-instruire.fr.md b/doc/faqs/instructeur/je-n-arrive-pas-a-acceder-aux-dossiers-que-je-souhaite-instruire.fr.md new file mode 100644 index 000000000..ada17f5ab --- /dev/null +++ b/doc/faqs/instructeur/je-n-arrive-pas-a-acceder-aux-dossiers-que-je-souhaite-instruire.fr.md @@ -0,0 +1,27 @@ +--- +title: "Je n’arrive pas à accéder aux dossiers que je souhaite instruire" +category: instructeur +subcategory: instructeur_account +slug: "je-n-arrive-pas-a-acceder-aux-dossiers-que-je-souhaite-instruire" +locale: "fr" +keywords: "acces dossiers, administrateur demarche, affectation instructeur, +contact administrateur" +--- + +# Je n’arrive pas à accéder aux dossiers que je souhaite instruire + +Cela signifie que l’administrateur de la démarche qui vous intéresse ne vous a +pas affecté à celle-ci. En effet, seul l’administrateur est en mesure d’ajouter +ou de retirer l’affectation d’une démarche à un instructeur. Vous devez donc +lui envoyer un email pour lui demander l’accès. + +## Vous ne savez pas qui est l’administrateur de la démarche ? + +Si c’est le cas, envoyez un email à [%{contact_email}](mailto:%{contact_email}), +en décrivant précisément la démarche à laquelle vous voulez +être affecté (intitulé, organisation, région, ou département…) +afin que nous puissions retrouver +cette démarche et vous communiquer l’adresse email de l’administrateur. + +N’hésitez pas également à vous rapprocher de vos collègues déjà instructeurs +de la démarche concernée pour obtenir de l’aide. diff --git a/doc/faqs/instructeur/quels-sont-les-navigateurs-supportes.fr.md b/doc/faqs/instructeur/quels-sont-les-navigateurs-supportes.fr.md new file mode 100644 index 000000000..8585bd46a --- /dev/null +++ b/doc/faqs/instructeur/quels-sont-les-navigateurs-supportes.fr.md @@ -0,0 +1,32 @@ +--- +category: "instructeur" +subcategory: "instruction" +slug: "quels-sont-les-navigateurs-supportes" +locale: "fr" +keywords: "navigateur, compatibilité, mise à jour, carte" +title: "Quels sont les navigateurs supportés ?" +--- + +# Quels sont les navigateurs supportés ? + +Nous vous conseillons d’utiliser les navigateurs suivants, **idéalement dans leur dernière version disponible**. + +- Firefox (minimum 67) +- Chrome (minimum 79) +- Edge (minimum 79 et sans mode de compatibilité) +- Safari (minimum 12) +- Safari iOS (minimum 12) +- Samsung browser (minimum 12) + +**Mettez toujours à jour votre navigateur** notamment pour être protégé par leurs derniers correctifs de sécurité. + +Il est possible que le site marche à peu près sur des navigateurs plus anciens, +néanmoins nous n’assurons pas un support pour ceux-ci et ne garantissons pas que l’ensemble des pages soient fonctionnelles. + +## Les cartes ne s’affichent pas + +Si vous utilisez une ancienne version de Firefox, il est probable que le **webGL** soit désactivé. Pour l’activer : + +1. Entrez **about:config** dans la barre d’adresse (comme s’il s’agissait d'un site web, sans http devant). +2. Recherchez **webgl.force-enabled** et changez la valeur à **true** +3. Recherchez **webgl.disabled** et et assurez que la valeur est à **false** diff --git a/doc/faqs/usager/comment-deposer-un-autre-dossier-pour-une-meme-demarche.fr.md b/doc/faqs/usager/comment-deposer-un-autre-dossier-pour-une-meme-demarche.fr.md new file mode 100644 index 000000000..c4526e2f8 --- /dev/null +++ b/doc/faqs/usager/comment-deposer-un-autre-dossier-pour-une-meme-demarche.fr.md @@ -0,0 +1,14 @@ +--- +category: "usager" +subcategory: "fill_dossier" +slug: "comment-deposer-un-autre-dossier-pour-une-meme-demarche" +locale: "fr" +keywords: "nouveau dossier, même démarche, commencer, espace usager" +title: "Comment déposer un autre dossier pour une même démarche ?" +--- + +# Comment déposer un autre dossier pour une même démarche ? + +Pour commencer un nouveau dossier sur une démarche que vous avez déjà réalisée, cliquez sur le bouton **« Actions »** du dossier correspondant à la démarche que vous souhaitez faire. Sélectionnez enfin le bouton **« Commencer un autre dossier vide »**. + +![Image montrant le lien pour Commencer un autre dossier vide](faq/usager-dossier-actions-menu-start-new.png) diff --git a/doc/faqs/usager/comment-dupliquer-un-dossier-deja-depose.fr.md b/doc/faqs/usager/comment-dupliquer-un-dossier-deja-depose.fr.md new file mode 100644 index 000000000..f227a1f15 --- /dev/null +++ b/doc/faqs/usager/comment-dupliquer-un-dossier-deja-depose.fr.md @@ -0,0 +1,28 @@ +--- +category: "usager" +subcategory: "fill_dossier" +slug: "comment-dupliquer-un-dossier-deja-depose" +locale: "fr" +keywords: "dupliquer, dossier existant, préremplir, dépôt rapide" +title: "Comment dupliquer un dossier déjà déposé ?" +--- + +# Comment dupliquer un dossier déjà déposé ? + +En tant qu’usager, vous avez la possibilité de dupliquer un dossier existant si la démarche n’a pas été clôturée. **Cette action permet de préremplir de automatiquement votre dossier afin de le déposer rapidement !** + +Pour cela, il vous suffit de cliquer sur le bouton **« Dupliquer ce dossier »** depuis le menu déroulant **« Actions »** situé à droite du dossier concerné : + +![Image illustrant le menu Dupliquer ce dossier](faq/usager-dossier-actions-menu-clone.png) + +Votre nouveau dossier sera alors automatiquement prérempli avec les informations et les pièces justificatives déjà transmises lors du dépôt de votre précédent dossier. + +![Image montrant le dossier dupliqué en brouillon](faq/usager-dossier-cloned-draft.png) + +Vous avez la possibilité de : + +- Consulter le dossier +- Vérifier si les informations sont toujours correctes +- Et si besoin, modifier les informations + +Après avoir vérifié et/ou complété le dossier, vous pouvez cliquer sur le bouton **« Déposer le dossier »**. diff --git a/doc/faqs/usager/comment-trouver-ma-demarche.fr.md b/doc/faqs/usager/comment-trouver-ma-demarche.fr.md new file mode 100644 index 000000000..49fff79ae --- /dev/null +++ b/doc/faqs/usager/comment-trouver-ma-demarche.fr.md @@ -0,0 +1,59 @@ +--- +category: "usager" +subcategory: "fill_dossier" +slug: "comment-trouver-ma-demarche" +locale: "fr" +keywords: "lien démarche, démarches courantes, service-public, espace usager, nouveau dossier" +title: "Comment trouver ma démarche ?" +--- + +# Comment trouver ma 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 : + + %{application_base_url}/commencer/xxxxxxxxxxxxxx + + +Ce lien vous est communiqué par l’administration compétente pour votre démarche – généralement sur son site internet, ou par email. + +## 2. Les démarches les plus courantes + +Vous trouverez ci-dessous la liste des démarches les plus courantes dématérialisées sur %{application_name} : + +- [Démarches relatives au permis de conduire](https://doc.demarches-simplifiees.fr/listes-des-demarches/demarches-relatives-au-permis-de-conduire) +- [Démarches relatives au transporteur](https://doc.demarches-simplifiees.fr/listes-des-demarches/demarches-relatives-au-transporteur) +- [Démarches relative à l’inscription au service de restauration](https://doc.demarches-simplifiees.fr/listes-des-demarches/demarches-relative-a-linscription-au-service-de-restauration) +- [Démarches relatives aux cartes professionnelles de chauffeurs de voiture de tourisme (VTC)](https://doc.demarches-simplifiees.fr/listes-des-demarches/demarches-relatives-aux-cartes-professionnelles-de-chauffeurs-de-voiture-de-tourisme-vtc) +- [Démarches relatives aux étrangers résidant en France](https://doc.demarches-simplifiees.fr/listes-des-demarches/demarches-relatives-aux-titres-de-sejour-pour-les-etrangers) +- [Démarches relatives aux médailles d’honneur](https://doc.demarches-simplifiees.fr/listes-des-demarches/demarches-relatives-aux-medailles-dhonneur) +- [Démarche relative à la consultation du domaine](%{application_base_url}/commencer/consultation-du-domaine) + +## 3. Je ne trouve pas le lien pour ma démarche + +Si l’administration en charge de votre démarche n’a pas choisi d’utiliser %{application_name}, vous pouvez vous rendre sur [Service-public.fr](https://www.service-public.fr), qui référence la plupart des démarches administratives. + +**Pour être accompagné par un agent ou trouver des lieux d’inclusion numérique**, consultez également : + +- [Service-public.fr](https://www.service-public.fr), site public de renseignement administratif +- [Cartographie de l’inclusion numérique](https://cartographie.societenumerique.gouv.fr/orientation/besoin) permettant d’orienter les usagers vers les lieux d’inclusion numériques +- [France services](https://www.france-services.gouv.fr/demarches-et-services) qui peut vous aider dans l’accomplissement de vos démarches en ligne. + +## 4. Compléter un dossier déjà créé + +Pour compléter un dossier, [connectez-vous sur votre espace %{application_name}](/users/sign_in) en renseignant l’adresse email et le mot de passe utilisés lors de la création de votre dossier. + +## 5. Je veux déposer un nouveau dossier + +Pour commencer un nouveau dossier sur une démarche déjà réalisée, [connectez-vous](/users/sign_in) et cliquez sur **« Actions »** puis **« Commencer un autre dossier vide »**. + +![Image montrant le lien pour Commencer un autre dossier vide](faq/usager-dossier-actions-menu-start-new.png) + +### Si le bouton "Commencer un autre dossier vide" n’est pas affiché cela signifie que la démarche a été clôturée. + +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 d’une démarche](faq/usager-procedure-close-focus-contact.png) + + diff --git a/doc/faqs/usager/erreur-siret-lors-depot-de-dossier.fr.md b/doc/faqs/usager/erreur-siret-lors-depot-de-dossier.fr.md new file mode 100644 index 000000000..86c0816df --- /dev/null +++ b/doc/faqs/usager/erreur-siret-lors-depot-de-dossier.fr.md @@ -0,0 +1,79 @@ +--- +title: "Erreur SIRET lors d’un dépôt de dossier" +category: usager +subcategory: dossier_technical_issue +slug: "erreur-siret-lors-d-un-depot-de-dossier" +locale: "fr" +keywords: "erreur SIRET, dépôt de dossier, numéro SIRET, identification entreprise, URSSAF, INSEE, entreprise.data.gouv.fr" +--- + +# Erreur SIRET lors d’un dépôt de dossier sur %{application_name} + +Cet article s’adresse exclusivement aux utilisateurs de %{application_name}, +rencontrant un problème relatif à l’identification par numéro de SIRET lors d’un +dépôt de dossiers. + +Si votre problème n’est pas relatif à l’utilisation de la plateforme +%{application_name}, vous pouvez consulter la page suivante : +[Service-public.fr pour signaler un problème](https://www.service-public.fr/professionnels-entreprises/vosdroits/R17969/signaler-un-probleme) + +Si vous rencontrez le message « Erreur SIRET » lorsque vous identifiez votre +entreprise ou association lors d’un nouveau dépôt de dossier, le problème peut +se résoudre de trois manières : + +## Vérifiez que le numéro est bien le numéro SIRET + +Le numéro SIRET contient 14 chiffres, et il est facilement confondu avec le +numéro SIREN, qui lui n’en contient que 9. Assurez-vous que le numéro que vous +indiquez est bien le numéro SIRET. + +## Cas du SIRET transmis par l’URSSAF + +Pour les jeunes structures, il est possible que l’URSSAF vous ait transmis un +numéro de SIRET provisoire. Seuls les numéros de SIRET transmis par l’INSEE sont +pris en compte sur notre site. + +## Vérifiez la validité de votre numéro SIRET + +Il est possible que le SIRET de votre entreprise ou association ait changé (suite +à un déménagement par exemple, qui entraîne la fermeture de l’ancien +établissement et rend le numéro de SIRET invalide), et ne fonctionne donc plus. + +Pour vous assurer de la validité et du caractère public de votre SIRET, allez sur +[entreprise.data.gouv.fr](https://entreprise.data.gouv.fr), rentrez votre numéro +de SIRET dans le champ de recherche, et vérifiez si votre SIRET est encore valide +ou non. S’il ne l’est plus, la page affichée vous indiquera alors le nouveau +numéro de SIRET. + +Après l’immatriculation de votre entreprise, il faut compter quelques jours avant +que les informations relatives à celle-ci ne soient disponibles et récupérables +depuis entreprise.data.gouv.fr. + +## Vérifiez que les informations concernant votre entreprise sont publiques + +Certaines entreprises demandent à ce que leurs informations ne soient pas +accessibles dans la base publique des SIRET. Si c’est le cas, nous ne pouvons pas +récupérer les informations associées. + +Pour vous assurer que les informations de votre entreprises ne sont pas privées, +allez sur l’Annuaire des Entreprises, et rentrez votre numéro de SIRET dans le +champ de recherche. + +## Lorsque les informations SIRET sont temporairement indisponibles + +Si vous voyez un message _« Désolé, la récupération des informations SIRET est +temporairement indisponible. Veuillez réessayer dans quelques instants. »_, cela +signifie que le service externe de l’INSEE qui donne les informations d’entreprise +a une panne temporaire. + +La plupart du temps, le problème est résolu en quelques heures maximum. + +Pour plus d’information, vous pouvez consulter l’état du service SIRET. Si une des +lignes est rouge, c’est probablement la cause du problème. + +## Contactez-nous + +Il est également possible que notre prestataire technique qui nous permet de faire +de l’identification via un numéro SIRET rencontre des problèmes techniques. Si +votre numéro SIRET est valide et que vous rencontrez toujours la même erreur, +contactez-nous par email. diff --git a/doc/faqs/usager/j-ai-depose-moi-meme-mon-dossier-mais-je-ne-le-retrouve-pas.fr.md b/doc/faqs/usager/j-ai-depose-moi-meme-mon-dossier-mais-je-ne-le-retrouve-pas.fr.md new file mode 100644 index 000000000..6cb71d7ab --- /dev/null +++ b/doc/faqs/usager/j-ai-depose-moi-meme-mon-dossier-mais-je-ne-le-retrouve-pas.fr.md @@ -0,0 +1,24 @@ +--- +title: "J'ai déposé moi-même mon dossier mais je ne le retrouve pas" +category: usager +subcategory: find_dossier +slug: "j-ai-depose-moi-meme-mon-dossier-mais-je-ne-le-retrouve-pas" +locale: "fr" +keywords: "dossier perdu, retrouver dossier, email confirmation, attestation depot, +contact service instructeur" +--- + +# J'ai déposé moi-même mon dossier mais je ne le retrouve pas + +Il se peut que vous ayez déposé votre dossier en utilisant une autre adresse email. + +Si c'est le cas, vous avez 3 solutions pour le retrouver : + +- Recherchez parmi les emails reçus lors de la création de votre compte ou lors +du dépôt de votre dossier sur %{application_name}. L'adresse email associée à +votre dossier est mentionnée dans l'entête de ces emails. +- Consultez le corps de l'attestation de dépôt du dossier, où l'adresse email +utilisée est également indiquée. +- Contactez le service instructeur de la démarche pour qu'il vous aide dans la +procédure de transfert de votre dossier. Les coordonnées de ce service sont +disponibles en bas de la page de présentation de la démarche. diff --git a/doc/faqs/usager/j-ai-un-autre-probleme-technique.fr.md b/doc/faqs/usager/j-ai-un-autre-probleme-technique.fr.md new file mode 100644 index 000000000..83b89de78 --- /dev/null +++ b/doc/faqs/usager/j-ai-un-autre-probleme-technique.fr.md @@ -0,0 +1,23 @@ +--- +title: "J’ai un autre problème technique" +category: usager +subcategory: dossier_technical_issue +slug: "j-ai-un-autre-probleme-technique" +locale: "fr" +keywords: "problème technique, connexion, erreur formulaire, support technique" +--- + +# J’ai un autre problème technique + +Vous rencontrez une difficulté technique ? + +Par exemple, un problème pour vous connecter ; ou une erreur au moment d’enregistrer le formulaire ? + +Utilisez notre [page de contact](/contact) pour écrire au support technique. +Nous ferons de notre mieux pour vous répondre le plus rapidement possible. + +**Pour être clair : le support technique ne s’occupe que des questions techniques liées à l’utilisation de %{application_name}**. +Il ne pourra pas répondre aux questions concernant votre dossier ou le traitement de votre demande. + +Pour une question administrative, contactez plutôt l’administration en charge de votre dossier, +en cliquant sur le bouton « Aide » en haut à droite de la page ou depuis la messagerie de votre dossier. diff --git a/doc/faqs/usager/je-ne-peux-pas-faire-une-demande-car-je-n-ai-pas-de-SIRET.fr.md b/doc/faqs/usager/je-ne-peux-pas-faire-une-demande-car-je-n-ai-pas-de-SIRET.fr.md new file mode 100644 index 000000000..344896e6d --- /dev/null +++ b/doc/faqs/usager/je-ne-peux-pas-faire-une-demande-car-je-n-ai-pas-de-SIRET.fr.md @@ -0,0 +1,26 @@ +--- +title: "Je ne peux pas faire une demande car je n’ai pas de SIRET" +category: usager +subcategory: dossier_technical_issue +slug: "je-ne-peux-pas-faire-une-demande-car-je-n-ai-pas-de-SIRET" +locale: "fr" +keywords: "demande sans SIRET, service de l’État SIRET, association RNA, particulier procédure, INSEE SIRET" +--- + +# Je ne peux pas faire une demande car je n’ai pas de SIRET + +## Si vous êtes un service de l’État + +Vous avez normalement un numéro SIRET. Recherchez le nom de votre service sur l’[annuaire des entreprises](https://annuaire-entreprises.data.gouv.fr/), +vous devriez alors le trouver ainsi que le numéro SIRET associé. + +## Si vous êtes une association + +Vous avez sans doute un numéro au Registre National des Associations, mais pas forcément de numéro SIRET. +Il n’est pour l’instant malheureusement pas possible d’utiliser %{application_name} avec uniquement un numéro de RNA. + +La demande d’un numéro de SIRET à l’INSEE peut se faire assez simplement par email, en envoyant un message à *sirene-associations@insee.fr*. La procédure est décrite en détail sur cette page, avec un exemple de message-type : [https://www.service-public.fr/associations/vosdroits/F1926](https://www.service-public.fr/associations/vosdroits/F1926) + +## Si vous êtes un particulier + +Il est probable que la procédure sur laquelle vous voulez déposer une demande ne soit ouverte qu’aux entreprises. Si vous pensez que vous êtes bien la cible de cette procédure et que vous devriez pouvoir y déposer une demande, **contactez le service en charge de la démarche pour le signaler**. diff --git a/doc/faqs/usager/je-ne-recois-pas-d-email.fr.md b/doc/faqs/usager/je-ne-recois-pas-d-email.fr.md new file mode 100644 index 000000000..f1f3cf20b --- /dev/null +++ b/doc/faqs/usager/je-ne-recois-pas-d-email.fr.md @@ -0,0 +1,17 @@ +--- +title: "Je ne reçois pas d'email" +category: usager +subcategory: dossier_technical_issue +slug: "je-ne-recois-pas-d-email" +locale: "fr" +--- + +# Je ne reçois pas d’email + +Si vous ne recevez pas d’email, vous vous trouvez peut-être dans la situation suivante : + +- **Le mail est arrivé dans vos courriers indésirables.** Avez-vous vérifié dedans ? +- **Votre compte est associé à une autre adresse email.** Avez-vous bien vérifié qu'il s'agit de la bonne adresse mail de dépôt de dossier ? +- **Vous avez fait une erreur dans la saisie de votre adresse email.** Vous pouvez [créer à nouveau un compte](/users/sign_up), avec la bonne adresse. +- **Vous utilisez un outil de gestion des spams** (type MailInBlack) qui empêche la réception des emails. Il faut donc autoriser la réception des emails depuis %{application_name}. +- **Vous ne vous trouvez dans aucune des situations mentionnées** auquel cas nous vous prions de [nous contacter par email](/contact). diff --git a/doc/faqs/usager/je-souhaite-declarer-les-informations-relatives-aux-installations-de-combustion.fr.md b/doc/faqs/usager/je-souhaite-declarer-les-informations-relatives-aux-installations-de-combustion.fr.md new file mode 100644 index 000000000..9c68102df --- /dev/null +++ b/doc/faqs/usager/je-souhaite-declarer-les-informations-relatives-aux-installations-de-combustion.fr.md @@ -0,0 +1,16 @@ +--- +title: "Je souhaite déclarer les informations relatives aux installations de combustion" +category: usager +subcategory: fill_dossier +slug: "je-souhaite-declarer-les-informations-relatives-aux-installations-de-combustion" +locale: "fr" +keywords: "installations combustion, arrêté 2019, recueil données, démarche environnementale" +--- + +# Je souhaite déclarer les informations relatives aux installations de combustion + +Dans le cadre de l'arrêté du 2 janvier 2019 - JO du 18 janvier 2019 - précisant +les modalités de recueil de données relatives aux installations +de combustion moyennes, vous pouvez remplir la démarche suivante : + +[%{application_base_url}/commencer/installations-de-combustion-moyennes-mcp-recueil-d](/commencer/installations-de-combustion-moyennes-mcp-recueil-d) diff --git a/doc/faqs/usager/je-souhaite-m-inscrire-a-l-epreuve-du-permis-de-conduire.fr.md b/doc/faqs/usager/je-souhaite-m-inscrire-a-l-epreuve-du-permis-de-conduire.fr.md new file mode 100644 index 000000000..3e3befc7c --- /dev/null +++ b/doc/faqs/usager/je-souhaite-m-inscrire-a-l-epreuve-du-permis-de-conduire.fr.md @@ -0,0 +1,24 @@ +--- +category: "usager" +subcategory: "fill_dossier" +slug: "je-souhaite-m-inscrire-a-l-epreuve-du-permis-de-conduire" +locale: "fr" +keywords: "inscription, permis de conduire, épreuve pratique, démarches, préfecture" +title: "Je souhaite m’inscrire à l’épreuve du permis de conduire" +--- + +# Je souhaite m’inscrire à l’épreuve du permis de conduire + +Pour vous inscrire à l’épreuve pratique du permis de conduire, rendez-vous sur la page dédiée où vous trouverez les départements qui permettent d’utiliser %{application_name} pour vous inscrire. + +Par ailleurs, comme chaque administration choisit d’utiliser cette plateforme ou non, il n’est pas obligatoire que la démarche recherchée soit dématérialisée sur notre site. + +En ce sens, nous vous invitons à consulter le site de la préfecture pour prendre connaissance des modalités de dépôt de dossiers. + +Pour retrouver votre démarche ou être accompagné par un agent, nous vous invitons à consulter les sites suivants : + +- [Service-public.fr](https://www.service-public.fr), site public de renseignement administratif. + +- [Cartographie de l’inclusion numérique](https://cartographie.societenumerique.gouv.fr/orientation/besoin), cartographie permettant d’orienter les usagers vers les lieux d’inclusion numérique qui sauront répondre à vos besoins. + +- [France services](https://www.france-services.gouv.fr/demarches-et-services), pour vous aider dans l’accomplissement de vos démarches en ligne. diff --git a/doc/faqs/usager/je-souhaite-obtenir-un-duplicata-cerfa-02-neph.fr.md b/doc/faqs/usager/je-souhaite-obtenir-un-duplicata-cerfa-02-neph.fr.md new file mode 100644 index 000000000..71f79a708 --- /dev/null +++ b/doc/faqs/usager/je-souhaite-obtenir-un-duplicata-cerfa-02-neph.fr.md @@ -0,0 +1,27 @@ +--- +category: "usager" +subcategory: "fill_dossier" +slug: "je-souhaite-obtenir-un-duplicata-cerfa-02-neph" +locale: "fr" +keywords: "duplicata, CERFA 02, NEPH, préfecture, France services" +title: "Je souhaite obtenir un duplicata CERFA 02 - NEPH" +--- + +# Je souhaite obtenir un duplicata CERFA 02 - NEPH + +Pour obtenir un duplicata du CERFA 02, rendez-vous sur la page dédiée où vous trouverez les départements qui permettent d’utiliser %{application_name} pour réactiver son numéro NEPH. + +Pour savoir comment remplir votre démarche, vous pouvez consulter le tutoriel usager. + +Comme chaque administration choisit d’utiliser cette plateforme ou non, **il n’est pas obligatoire que la démarche recherchée soit dématérialisée sur %{application_name}**. +En ce sens, nous vous invitons à contacter votre préfecture ou à consulter leur site internet. + +*Comme chaque administration choisit d’utiliser cette plateforme ou non, il n’est pas obligatoire que la démarche recherchée soit dématérialisée sur notre site.* + +Pour retrouver votre démarche ou être accompagné(e) par un agent, nous vous invitons à consulter les sites suivants : + +- [Service-public.fr](https://www.service-public.fr), site public de renseignement administratif. + +- [Cartographie de l’inclusion numérique](https://cartographie.societenumerique.gouv.fr/orientation/besoin), cartographie permettant d’orienter les usagers vers les lieux d’inclusion numérique qui sauront répondre à vos besoins. + +- Ou encore le site [France services](https://www.france-services.gouv.fr/demarches-et-services) afin de vous aider dans l’accomplissement de vos démarches en ligne. diff --git a/doc/faqs/usager/je-veux-changer-mon-adresse-email.fr.md b/doc/faqs/usager/je-veux-changer-mon-adresse-email.fr.md new file mode 100644 index 000000000..ba4e68ed3 --- /dev/null +++ b/doc/faqs/usager/je-veux-changer-mon-adresse-email.fr.md @@ -0,0 +1,41 @@ + +--- +category: "usager" +subcategory: "account" +slug: "je-veux-changer-mon-adresse-email" +locale: "fr" +keywords: "adresse email, compte usager, sécurité, changement, profil" +title: "Je veux changer mon adresse email" +--- + +# Je veux changer mon adresse email + +Si vous disposez d’un compte usager sur %{application_name}, il est possible de changer l’adresse email associée à celui-ci. + +**Attention** : pour des raisons de sécurité, les comptes instructeur et administrateur sur %{application_name} doivent nous contacter à %{contact_email} pour demander ce changement. + +Cette adresse correspond à l’identifiant avec lequel vous vous connectez à %{application_name}. C’est également à cette adresse que nous envoyons les messages concernant l’avancement de votre dossier. + +## Changer mon adresse email + +Pour changer l’adresse email associée à votre compte, suivez les étapes suivantes : + +1. [Connectez-vous](/users/sign_in) à votre compte sur %{application_name} ; +2. Cliquez sur le menu contenant votre adresse email en haut à droite de la page, puis sur _« Voir mon profil »_, ou [suivez directement ce lien si vous êtes déjà connecté(e)](/profil). +![Menu Usager avec lien Voir mon profil](faq/usager-dropdown.png) + +3. Dans l’encadré _« 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 d’email](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é.
+ ![Capture d’écran de l’email de confirmation de changement d’adresse email](faq/usager-confirm-update-email.png) + +## Si l’adresse est déjà utilisée par un autre compte + +La nouvelle adresse email ne doit pas être déjà utilisée par un compte existant sur %{application_name}. + +**Si la nouvelle adresse est déjà utilisée, vous recevrez un email vous informant que le changement d’adresse ne peut pas être pris en compte.** + +Dans ce cas, revenez sur la page _« Profil »_, et choisissez une autre adresse email disponible. + +Par ailleurs, vous pouvez également transférer plusieurs dossiers depuis votre profil, cela vous permet tout de même de conserver votre compte. diff --git a/doc/faqs/usager/je-veux-changer-mon-mot-de-passe.fr.md b/doc/faqs/usager/je-veux-changer-mon-mot-de-passe.fr.md new file mode 100644 index 000000000..0688d7cc9 --- /dev/null +++ b/doc/faqs/usager/je-veux-changer-mon-mot-de-passe.fr.md @@ -0,0 +1,27 @@ +--- +title: "Je veux changer mon mot de passe" +category: usager +subcategory: account +slug: "je-veux-changer-mon-mot-de-passe" +locale: "fr" +keywords: "mot de passe, changement mot de passe, réinitialisation mot de passe, lien réinitialisation" +--- + +# Je veux changer mon mot de passe + +Si vous souhaitez modifier le mot de passe de votre compte, vous pouvez demander à le changer. + +Pour cela : + +1. Ouvrez la page de [réinitialisation de mot de passe](/users/password/new) +2. Indiquez l’adresse email de votre compte %{application_name} +3. Vous recevrez par email un lien pour réinitialiser votre mot de passe. +4. Cliquez sur ce lien, et rentrez le nouveau mot de passe que vous souhaitez utiliser. + +## Vous n’avez pas reçu de mail de réinitialisation du mot de passe : + +Vérifiez que le message ne se trouve pas dans les spams ou indésirables. +L’email peut mettre quelques minutes avant que vous le receviez. Réitérez la demande éventuellement. + +Si ce n’est pas le cas, vous pouvez nous contacter par [notre formulaire de contact](/contact) +ou par email à l’adresse *%{contact_email}*. diff --git a/doc/faqs/usager/je-veux-contacter-le-service-en-charge-de-ma-demarche.fr.md b/doc/faqs/usager/je-veux-contacter-le-service-en-charge-de-ma-demarche.fr.md new file mode 100644 index 000000000..c44ed5bb0 --- /dev/null +++ b/doc/faqs/usager/je-veux-contacter-le-service-en-charge-de-ma-demarche.fr.md @@ -0,0 +1,29 @@ +--- +category: "usager" +subcategory: "dossier_state" +slug: "je-veux-contacter-le-service-en-charge-de-ma-demarche" +locale: "fr" +keywords: "contact service, messagerie dossier, démarche administrative" +title: "Je veux contacter le service en charge de ma démarche" +--- + +# Je veux contacter le service en charge de ma démarche + +**L’équipe de %{application_name} ne peut pas vous renseigner sur l’avancée du traitement de votre dossier**. + +Pour contacter les services en charge de votre démarche, vous pouvez : + +1. Passer par la **messagerie du dossier** afin de contacter les services compétents + + Cela vous permet de communiquer directement avec l’équipe en charge de votre dossier à travers la plateforme. + + Pour cela, suivez le lien **« Messagerie »** depuis le dossier concerné, et envoyez-leur un message. + + ![Vue de l’interface de messagerie avec le service traitant un dossier](faq/usager-messagerie.png) + +2. Contacter **les services compétents aux contacts renseignés pour la démarche** + + Si des contacts d’adresse email ou numéro de téléphone sont spécifiés pour la démarche que vous suivez, vous pouvez les utiliser pour obtenir des renseignements supplémentaires ou pour toute question spécifique concernant votre dossier. + Ces informations se retrouvent dans le pied de page du dossier. + + ![Coordonnées de contact du service traitant un dossier](faq/usager-footer-contact.png) diff --git a/doc/faqs/usager/je-veux-enregistrer-mon-formulaire-pour-le-reprendre-plus-tard.fr.md b/doc/faqs/usager/je-veux-enregistrer-mon-formulaire-pour-le-reprendre-plus-tard.fr.md new file mode 100644 index 000000000..0b78f84c3 --- /dev/null +++ b/doc/faqs/usager/je-veux-enregistrer-mon-formulaire-pour-le-reprendre-plus-tard.fr.md @@ -0,0 +1,31 @@ +--- +category: "usager" +subcategory: "fill_dossier" +slug: "je-veux-enregistrer-mon-formulaire-pour-le-reprendre-plus-tard" +locale: "fr" +keywords: "enregistrer formulaire, reprendre formulaire, brouillon, France Connect" +title: "Je veux enregistrer mon formulaire pour le reprendre plus tard" +--- + +# Je veux enregistrer mon formulaire pour le reprendre plus tard + +## Comment enregistrer mon formulaire ? + +Lorsque vous remplissez un formulaire sur %{application_name}, les informations que vous saisissez sont **enregistrées automatiquement**. + +Si vous souhaitez terminer de remplir le formulaire plus tard, **il suffit de fermer la page du formulaire**. Lorsque vous retournerez sur %{application_name}, vous pourrez reprendre votre démarche là où vous l’avez laissée. + +![Le formulaire est enregistré automatiquement](faq/usager-form-footer-submit.png) + +## Comment reprendre mon formulaire plus tard ? + +Si vous avez déjà commencé à remplir une démarche, vous pouvez retrouver votre dossier déjà rempli. Pour cela : + +1. Connectez-vous à %{application_name}, utilisez votre identifiant et votre mot de passe, ou bien FranceConnect. + ![La page de connexion de %{application_name}](faq/sign-in-page.png) + +2. Dans [la liste de vos dossiers](/dossiers), **cliquez sur le dossier en brouillon** que vous souhaitez reprendre. Vous pouvez également faire une **recherche par numéro de dossier, mots-clés ou en filtrant par démarches**. + ![La liste de mes dossiers](faq/usager-dossiers-list.png) + +Vous pouvez alors reprendre votre formulaire là où vous l’aviez laissé en cliquant sur le bouton **« Continuer à remplir »**. Une fois que vous avez rempli le formulaire, cliquez sur **« Déposer le dossier »** pour l’envoyer à l’administration. + diff --git a/doc/faqs/usager/je-veux-savoir-ou-en-est-l-instruction-de-ma-demarche.fr.md b/doc/faqs/usager/je-veux-savoir-ou-en-est-l-instruction-de-ma-demarche.fr.md new file mode 100644 index 000000000..f20e51d1c --- /dev/null +++ b/doc/faqs/usager/je-veux-savoir-ou-en-est-l-instruction-de-ma-demarche.fr.md @@ -0,0 +1,28 @@ +--- +category: "usager" +subcategory: "dossier_state" +slug: "je-veux-savoir-ou-en-est-l-instruction-de-ma-demarche" +locale: "fr" +keywords: "instruction démarche, messagerie, dossier, services compétents, contact" +title: "Je veux savoir où en est l’instruction de ma démarche" +--- + +# Je veux savoir où en est l’instruction de ma démarche + +**L’équipe de %{application_name} n’est pas en mesure de vous renseigner sur l’avancée du traitement de votre dossier**. En effet, nous nous occupons uniquement de la partie technique de la plateforme. + +Pour contacter les services en charge de votre démarche, vous pouvez : + +1. Passer par la **messagerie du dossier** afin de contacter les services compétents + + Pour cela, il vous suffit de cliquer sur le lien **« Messagerie »** depuis le dossier concerné. + + ![Vue de l’interface de messagerie avec le service traitant un dossier](faq/usager-messagerie.png) + + N’oubliez pas de cliquer sur le bouton **« Envoyer le message »**. + +2. Contacter les **services compétents aux contacts renseignés pour la démarche** + + La messagerie peut être désactivée lorsque le dossier est archivé ou fait l’objet d’une décision finale. Dans ce cas, vous pouvez contacter le service grâce aux informations de contact situées en bas du formulaire. + + ![Coordonnées de contact du service traitant un dossier](faq/usager-footer-contact.png) diff --git a/doc/faqs/usager/modification-de-l-identite-du-demandeur-d-un-dossier.fr.md b/doc/faqs/usager/modification-de-l-identite-du-demandeur-d-un-dossier.fr.md new file mode 100644 index 000000000..8326e8daa --- /dev/null +++ b/doc/faqs/usager/modification-de-l-identite-du-demandeur-d-un-dossier.fr.md @@ -0,0 +1,40 @@ +--- +category: "usager" +subcategory: "fill_dossier" +slug: "modification-de-l-identite-du-demandeur-d-un-dossier" +locale: "fr" +keywords: "modification identité, dossier brouillon, dossier construction, changer identité" +title: "Modification de l’identité du demandeur d’un dossier" +--- + +# Modification de l’identité du demandeur d’un dossier + +En tant qu’usager, vous avez la possibilité de modifier l’identité associée au dossier, lorsqu’il s’agit d’un dossier en **brouillon** mais également lorsque le dossier est en **construction**. + +## Le dossier est en "brouillon" + +Pour modifier votre dossier en brouillon, il suffit de cliquer sur le dossier concerné puis de cliquer sur le bouton _« Mon identité »_ situé à droite de l’écran comme ci-dessous : + +![Image montrant où cliquer pour modifier l’identité d’un dossier en brouillon](faq/usager-edit-identity-brouillon-1.png) + +Vous pourrez ensuite modifier votre identité depuis le bouton _« Modifier l’identité »_ : + +![Image montrant le bouton pour modifier l’identité](faq/usager-edit-identity-brouillon-2.png) + +## Le dossier est en "construction" + +Une fois votre dossier déposé, il devient _en construction_ (tant que l’administration ne traite votre dossier), et vous avez la possibilité de modifier votre identité. + +Pour cela, cliquez sur le bouton _« Modifier le dossier »_ depuis la liste de vos dossiers. + +![Image illustrant où cliquer pour modifier un dossier en construction](faq/usager-edit-identity-construction-1.png) + +Après avoir cliqué sur l’onglet _« Demande »_, suivez le lien _« Modifier l’identité »_ comme ci-dessous : + +![Image montrant où modifier l’identité dans un dossier en construction](faq/usager-edit-identity-construction-2.png) + +## Le dossier a un autre statut + +Si le dossier est en déjà _en instruction_, vous ne pouvez plus modifier son identité. Échangez avec l’administration via la messagerie si nécessaire. + +Information : pour certaines démarches, un dossier déposé ne passe pas par le statut _"en construction"_ et il n’est alors pas possible de modifier l’identité sans contacter l’administration. diff --git a/doc/faqs/usager/mon-dossier-a-ete-depose-par-un-tiers-et-je-souhaite-y-acceder.fr.md b/doc/faqs/usager/mon-dossier-a-ete-depose-par-un-tiers-et-je-souhaite-y-acceder.fr.md new file mode 100644 index 000000000..5c22dd8ee --- /dev/null +++ b/doc/faqs/usager/mon-dossier-a-ete-depose-par-un-tiers-et-je-souhaite-y-acceder.fr.md @@ -0,0 +1,21 @@ +--- +category: "usager" +subcategory: "find_dossier" +slug: "mon-dossier-a-ete-depose-par-un-tiers-et-je-souhaite-y-acceder" +locale: "fr" +keywords: "dossier, tiers, accès dossier, transfert dossier, action dossier" +title: "Mon dossier a été déposé par un tiers et je souhaite y accéder" + +--- + +# Mon dossier a été déposé par un tiers et je souhaite y accéder + +Vous devez **contacter la personne qui a déposé le dossier** et lui demander de vous le transférer. + +Pour cela, la personne doit cliquer sur le bouton **« Action »** (ou _« Autres actions »_), situé à droite du dossier depuis son interface : + +![Image illustration le bouton Autres actions avec le menu de transfert de dossier](faq/usager-dossier-actions-menu-transfer.png) + +Et ensuite cliquer sur **« Transférer le dossier »** en indiquant votre adresse mail. + +![Image illustration l’interface de transfert de dossier vers un autre compte](faq/usager-transfer-dossier.png) diff --git a/doc/faqs/usager/quels-sont-les-navigateurs-supportes.fr.md b/doc/faqs/usager/quels-sont-les-navigateurs-supportes.fr.md new file mode 100644 index 000000000..934150d90 --- /dev/null +++ b/doc/faqs/usager/quels-sont-les-navigateurs-supportes.fr.md @@ -0,0 +1,22 @@ +--- +category: "usager" +subcategory: "dossier_technical_issue" +slug: "quels-sont-les-navigateurs-supportes" +locale: "fr" +keywords: "navigateur, compatibilité, mise à jour" +title: "Quels sont les navigateurs supportés ?" +--- + +# Quels sont les navigateurs supportés ? + +Nous vous conseillons d’utiliser les navigateurs suivants, **idéalement dans leur dernière version disponible**. + +- Firefox (minimum 67) +- Chrome (minimum 79) +- Edge (minimum 79 et sans mode de compatibilité) +- Safari (minimum 12) +- Safari iOS (minimum 12) +- Samsung browser (minimum 12) + +**Mettez toujours à jour votre navigateur** notamment pour être protégé par leurs derniers correctifs de sécurité. + diff --git a/public/500.html b/public/500.html index 778e9f022..cf28f520e 100644 --- a/public/500.html +++ b/public/500.html @@ -2110,10 +2110,8 @@ Aide diff --git a/public/502.html b/public/502.html index f4bea681f..9bfc1779c 100644 --- a/public/502.html +++ b/public/502.html @@ -2109,10 +2109,8 @@ Aide diff --git a/public/503.html b/public/503.html index 5e6dfebb4..4e44ea7c6 100644 --- a/public/503.html +++ b/public/503.html @@ -2109,10 +2109,8 @@ Aide diff --git a/public/504.html b/public/504.html index 90dd2745d..df8ee4e92 100644 --- a/public/504.html +++ b/public/504.html @@ -2109,10 +2109,8 @@ Aide diff --git a/spec/controllers/faq_controller_spec.rb b/spec/controllers/faq_controller_spec.rb new file mode 100644 index 000000000..4d1daf1b9 --- /dev/null +++ b/spec/controllers/faq_controller_spec.rb @@ -0,0 +1,65 @@ +RSpec.describe FAQController, type: :controller do + describe "GET #index" do + render_views + + it "displays titles and render links for all entries" do + get :index + + # Usager + expect(response.body).to include("Gestion de mon compte") + expect(response.body).to include("Je veux changer mon adresse email") + expect(response.body).to include(faq_path(category: "usager", slug: "je-veux-changer-mon-adresse-email")) + + # Instructeur + expect(response.body).to include("Je dois confirmer mon compte à chaque connexion") + + # Instructeur + expect(response.body).to include("Les blocs répétables") + end + + context "with invalid subcategory" do + before do + service = instance_double(FAQsLoaderService, all: faqs) + allow(FAQsLoaderService).to receive(:new).and_return(service) + end + + let(:faqs) do + { + 'usager' => { + 'oops' => [{ category: 'usager', subcategory: 'oops', title: 'FAQ Title 1', slug: 'faq1' }] + } + } + end + + it "fails so we can't make a typo and publish non translated subcategories" do + expect { get :index }.to raise_error(ActionView::Template::Error) + end + end + end + + describe "GET #show" do + before do + allow(Current).to receive(:application_name).and_return('demarches.gouv.fr') + end + + render_views + + context "when the FAQ exists" do + it "renders the show template with the FAQ content and metadata" do + get :show, params: { category: 'usager', slug: 'je-veux-changer-mon-adresse-email' } + expect(response.body).to include('Si vous disposez d’un compte usager sur demarches.gouv.fr') + + # link to siblings + expect(response.body).to include(faq_path(category: 'usager', slug: 'je-veux-changer-mon-mot-de-passe')) + end + end + + context "when the FAQ does not exist" do + it "raises a routing error for a missing FAQ" do + expect { + get :show, params: { category: 'nonexistent', slug: 'nofaq' } + }.to raise_error(ActionController::RoutingError) + end + end + end +end diff --git a/spec/lib/redcarpet/trusted_renderer_spec.rb b/spec/lib/redcarpet/trusted_renderer_spec.rb new file mode 100644 index 000000000..046472026 --- /dev/null +++ b/spec/lib/redcarpet/trusted_renderer_spec.rb @@ -0,0 +1,35 @@ +RSpec.describe Redcarpet::TrustedRenderer do + let(:view_context) { ActionController::Base.new.view_context } + subject(:renderer) { Redcarpet::Markdown.new(described_class.new(view_context), autolink: true) } + + context 'when rendering links' do + it 'renders internal links without target and rel attributes' do + markdown = "[Click here](/internal)" + expect(renderer.render(markdown)).to include('Click here') + end + + it 'renders external links with target="_blank" and rel="noopener noreferrer"' do + markdown = "[Visit](http://example.com)" + expect(renderer.render(markdown)).to include('Visit') + end + end + + context 'when rendering images' do + it 'renders an image tag with lazy loading' do + markdown = "![A cute cat](http://example.com/cat.jpg)" + expect(renderer.render(markdown)).to include('A cute cat') + end + end + + context 'when autolinking' do + it 'autolinks URLs' do + markdown = "Visit http://example.com" + expect(renderer.render(markdown)).to include('Visit http://example.com') + end + + it 'autolinks email addresses with mailto' do + markdown = "Email user@example.com" + expect(renderer.render(markdown)).to include('user@example.com') + end + end +end diff --git a/spec/services/faqs_loader_service_spec.rb b/spec/services/faqs_loader_service_spec.rb new file mode 100644 index 000000000..42ab8a95d --- /dev/null +++ b/spec/services/faqs_loader_service_spec.rb @@ -0,0 +1,101 @@ +require 'rails_helper' + +RSpec.describe FAQsLoaderService do + let(:substitutions) { { application_name: "demarches.gouv.fr", application_base_url: APPLICATION_BASE_URL, contact_email: CONTACT_EMAIL } } + let(:service) { FAQsLoaderService.new(substitutions) } + + context "behavior with stubbed markdown files" do + before do + allow(Dir).to receive(:glob).and_return(['path/to/faq1.md', 'path/to/faq2.md']) + + # Mock File.read calls to fake md files + # but call original otherwise (rspec or debuggning uses File.read to load some files) + allow(File).to receive(:read).and_wrap_original do |original_method, *args| + case args.first + when 'path/to/faq1.md' + <<~MD + --- + title: FAQ1 + slug: faq1 + category: usager + subcategory: account + --- + Welcome to %{application_name} + MD + when 'path/to/faq2.md' + <<~MD + --- + title: FAQ2 + slug: faq2 + category: admin + subcategory: general + --- + This is for %{application_base_url} + MD + else + original_method.call(*args) + end + end + end + + describe '#find' do + it 'returns a file with variable substitutions' do + expect(service.find('usager/faq1').content).to include('Welcome to demarches.gouv.fr') + end + + it 'caches file readings', caching: true do + service # this load paths, and create a first hit on file + expect(File).to have_received(:read).with('path/to/faq1.md').exactly(1).times + + 2.times { + service.find('usager/faq1') + expect(File).to have_received(:read).with('path/to/faq1.md').exactly(2).times + } + + # depends on substitutions and re-hit files + service = FAQsLoaderService.new(substitutions.merge(application_name: "other name")) + expect(File).to have_received(:read).with('path/to/faq1.md').exactly(3).times + + service.find('usager/faq1') + expect(File).to have_received(:read).with('path/to/faq1.md').exactly(4).times + end + end + + describe '#all' do + it 'returns all FAQs' do + expect(service.all).to eq({ + "usager" => { "account" => [{ category: "usager", file_path: "path/to/faq1.md", slug: "faq1", subcategory: "account", title: "FAQ1" }] }, + "admin" => { "general" => [{ category: "admin", file_path: "path/to/faq2.md", slug: "faq2", subcategory: "general", title: "FAQ2" }] } + }) + end + + it 'caches file readings', caching: true do + 2.times { + service = FAQsLoaderService.new(substitutions) + service.all + expect(Dir).to have_received(:glob).once + } + + # depends on substitutions + service = FAQsLoaderService.new(substitutions.merge(application_name: "other name")) + service.all + expect(Dir).to have_received(:glob).twice + end + end + + describe '#faqs_for_category' do + it 'returns FAQs grouped by subcategory for a given category' do + result = service.faqs_for_category('usager') + expect(result).to eq({ + 'account' => [{ category: 'usager', subcategory: 'account', title: 'FAQ1', slug: 'faq1', file_path: 'path/to/faq1.md' }] + }) + end + end + end + + context "with actual files" do + it 'load, perform substitutions and returns all FAQs' do + expect(service.all.keys).to match_array(["administrateur", "instructeur", "usager"]) + end + end +end