From 309e8b159b66e3f437650cebd755d9f2945599c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Delmaire=20Lo=C3=AFc?= Date: Wed, 22 Jan 2025 14:40:35 +0100 Subject: [PATCH] Make modalities form block generic Move FranceConnect management within related definitions --- .../_modalities.html.erb | 1 + .../_modalities.html.erb | 44 +++++++++++++++++++ .../blocks/default/_modalities.html.erb | 35 +++------------ 3 files changed, 50 insertions(+), 30 deletions(-) create mode 120000 app/views/authorization_request_forms/blocks/api_impot_particulier/_modalities.html.erb create mode 100644 app/views/authorization_request_forms/blocks/api_impot_particulier_sandbox/_modalities.html.erb diff --git a/app/views/authorization_request_forms/blocks/api_impot_particulier/_modalities.html.erb b/app/views/authorization_request_forms/blocks/api_impot_particulier/_modalities.html.erb new file mode 120000 index 000000000..b2e497325 --- /dev/null +++ b/app/views/authorization_request_forms/blocks/api_impot_particulier/_modalities.html.erb @@ -0,0 +1 @@ +../api_impot_particulier_sandbox/_modalities.html.erb \ No newline at end of file diff --git a/app/views/authorization_request_forms/blocks/api_impot_particulier_sandbox/_modalities.html.erb b/app/views/authorization_request_forms/blocks/api_impot_particulier_sandbox/_modalities.html.erb new file mode 100644 index 000000000..970e644c9 --- /dev/null +++ b/app/views/authorization_request_forms/blocks/api_impot_particulier_sandbox/_modalities.html.erb @@ -0,0 +1,44 @@ +<% if @authorization_request.display_prefilled_banner_for_each_block? && @authorization_request.prefilled_data?(%i[modalities france_connect_authorization_id]) %> + <%= render partial: "authorization_request_forms/shared/prefilled_banner" %> +<% end %> + +<%= f.info_for(:modalities) %> + +
+
+ <%= + f.dsfr_radio_buttons :modalities, + @authorization_request.available_modalities, + required: true, + multiple: true, + radio_group_class: "fr-radio-rich", + fieldset_element_class: "small", + checked: ->(value) { @authorization_request.modalities.include?(value) }, + input_options: { + "data-action": "click->choose-modalite-impot-particulier#trigger", + "data-choose-modalite-impot-particulier-target": "modality" + } + %> +
+ +
+ <% france_connect_authorizations = current_organization.valid_authorizations_of(AuthorizationRequest::FranceConnect).map(&:decorate) %> + + <% if france_connect_authorizations.empty? %> +
+

+ <%= t("authorization_request_forms.api_impot_particulier_sandbox.modalities.callout.title") %> +

+

+ <%= t("authorization_request_forms.api_impot_particulier_sandbox.modalities.callout.content") %> +

+ <%= link_to t("authorization_request_forms.api_impot_particulier_sandbox.modalities.callout.link"), new_authorization_request_form_path("france-connect"), class: "fr-link fr-btn--icon-right fr-icon-arrow-right-line" %> +
+ + <% else %> + <% options = france_connect_authorizations.map{ |authorization| [authorization.name_for_select, authorization.id] } %> + <% selected_option = @authorization_request.france_connect_authorization_id || france_connect_authorizations.first.id %> + <%= f.dsfr_select :france_connect_authorization_id, options_for_select(options, selected_option), class: %w[fr-select], include_blank: "Sélectionner une option", required: true, input_options: { "data-choose-modalite-impot-particulier-target": "franceConnectSelector" } %> + <% end %> +
+
diff --git a/app/views/authorization_request_forms/blocks/default/_modalities.html.erb b/app/views/authorization_request_forms/blocks/default/_modalities.html.erb index 970e644c9..6ba75ebbf 100644 --- a/app/views/authorization_request_forms/blocks/default/_modalities.html.erb +++ b/app/views/authorization_request_forms/blocks/default/_modalities.html.erb @@ -4,41 +4,16 @@ <%= f.info_for(:modalities) %> -
+
- <%= - f.dsfr_radio_buttons :modalities, - @authorization_request.available_modalities, + <%= + f.dsfr_radio_buttons :modalities, + @authorization_request.available_modalities, required: true, multiple: true, - radio_group_class: "fr-radio-rich", + radio_group_class: "fr-radio-rich", fieldset_element_class: "small", checked: ->(value) { @authorization_request.modalities.include?(value) }, - input_options: { - "data-action": "click->choose-modalite-impot-particulier#trigger", - "data-choose-modalite-impot-particulier-target": "modality" - } %>
- -
- <% france_connect_authorizations = current_organization.valid_authorizations_of(AuthorizationRequest::FranceConnect).map(&:decorate) %> - - <% if france_connect_authorizations.empty? %> -
-

- <%= t("authorization_request_forms.api_impot_particulier_sandbox.modalities.callout.title") %> -

-

- <%= t("authorization_request_forms.api_impot_particulier_sandbox.modalities.callout.content") %> -

- <%= link_to t("authorization_request_forms.api_impot_particulier_sandbox.modalities.callout.link"), new_authorization_request_form_path("france-connect"), class: "fr-link fr-btn--icon-right fr-icon-arrow-right-line" %> -
- - <% else %> - <% options = france_connect_authorizations.map{ |authorization| [authorization.name_for_select, authorization.id] } %> - <% selected_option = @authorization_request.france_connect_authorization_id || france_connect_authorizations.first.id %> - <%= f.dsfr_select :france_connect_authorization_id, options_for_select(options, selected_option), class: %w[fr-select], include_blank: "Sélectionner une option", required: true, input_options: { "data-choose-modalite-impot-particulier-target": "franceConnectSelector" } %> - <% end %> -