feat(groupe instructeur): add import - export partial in group page
This commit is contained in:
parent
0d1754d715
commit
6bc15b8342
6 changed files with 21 additions and 20 deletions
|
@ -2,8 +2,7 @@
|
||||||
%h1 Ajout de groupes d'instructeurs
|
%h1 Ajout de groupes d'instructeurs
|
||||||
|
|
||||||
= render partial: 'administrateurs/groupe_instructeurs/import_export',
|
= render partial: 'administrateurs/groupe_instructeurs/import_export',
|
||||||
locals: { procedure: @procedure,
|
locals: { procedure: @procedure }
|
||||||
groupe_instructeurs: @groupe_instructeurs }
|
|
||||||
|
|
||||||
%section
|
%section
|
||||||
= form_for :groupe_instructeur,
|
= form_for :groupe_instructeur,
|
||||||
|
|
|
@ -2,8 +2,7 @@
|
||||||
%h1 Gestion des instructeurs
|
%h1 Gestion des instructeurs
|
||||||
|
|
||||||
= render partial: 'administrateurs/groupe_instructeurs/import_export',
|
= render partial: 'administrateurs/groupe_instructeurs/import_export',
|
||||||
locals: { procedure: @procedure,
|
locals: { procedure: @procedure }
|
||||||
groupe_instructeurs: @procedure.groupe_instructeurs }
|
|
||||||
|
|
||||||
= render partial: 'administrateurs/groupe_instructeurs/instructeurs',
|
= render partial: 'administrateurs/groupe_instructeurs/instructeurs',
|
||||||
locals: { procedure: @procedure,
|
locals: { procedure: @procedure,
|
||||||
|
|
|
@ -4,7 +4,7 @@ class Procedure::OneGroupeManagementComponent < ApplicationComponent
|
||||||
def initialize(revision:, groupe_instructeur:)
|
def initialize(revision:, groupe_instructeur:)
|
||||||
@revision = revision
|
@revision = revision
|
||||||
@groupe_instructeur = groupe_instructeur
|
@groupe_instructeur = groupe_instructeur
|
||||||
@procedure_id = revision.procedure_id
|
@procedure = revision.procedure
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
%div{ id: dom_id(@groupe_instructeur, :routing) }
|
%div{ id: dom_id(@groupe_instructeur, :routing) }
|
||||||
%h1 Paramètres du groupe
|
%h1 Paramètres du groupe
|
||||||
|
|
||||||
|
= render partial: 'administrateurs/groupe_instructeurs/import_export',
|
||||||
|
locals: { procedure: @procedure }
|
||||||
|
|
||||||
= form_for @groupe_instructeur,
|
= form_for @groupe_instructeur,
|
||||||
url: admin_procedure_groupe_instructeur_path(@procedure_id, @groupe_instructeur),
|
url: admin_procedure_groupe_instructeur_path(@procedure, @groupe_instructeur),
|
||||||
method: :patch do |f|
|
method: :patch do |f|
|
||||||
= f.label :label, 'Nom du groupe', class: 'fr-label fr-mb-1w'
|
= f.label :label, 'Nom du groupe', class: 'fr-label fr-mb-1w'
|
||||||
.flex
|
.flex
|
||||||
|
@ -10,7 +13,7 @@
|
||||||
= f.button 'Renommer', class: 'fr-btn fr-btn--secondary'
|
= f.button 'Renommer', class: 'fr-btn fr-btn--secondary'
|
||||||
|
|
||||||
= form_for @groupe_instructeur,
|
= form_for @groupe_instructeur,
|
||||||
url: admin_procedure_groupe_instructeur_update_state_path(@procedure_id, @groupe_instructeur),
|
url: admin_procedure_groupe_instructeur_update_state_path(@procedure, @groupe_instructeur),
|
||||||
method: :patch,
|
method: :patch,
|
||||||
data: { turbo: true, controller: 'autosubmit' } do |f|
|
data: { turbo: true, controller: 'autosubmit' } do |f|
|
||||||
.fr-checkbox-group.fr-my-3w
|
.fr-checkbox-group.fr-my-3w
|
||||||
|
@ -19,7 +22,7 @@
|
||||||
Groupe inactif
|
Groupe inactif
|
||||||
%span.fr-hint-text Si cette option est activée, les usagers ne pourront plus sélectionner ce groupe d’instructeurs
|
%span.fr-hint-text Si cette option est activée, les usagers ne pourront plus sélectionner ce groupe d’instructeurs
|
||||||
|
|
||||||
= form_tag admin_procedure_routing_rules_path(@procedure_id),
|
= form_tag admin_procedure_routing_rules_path(@procedure),
|
||||||
method: :post,
|
method: :post,
|
||||||
data: { controller: 'autosave' },
|
data: { controller: 'autosave' },
|
||||||
class: 'fr-mb-3w' do
|
class: 'fr-mb-3w' do
|
||||||
|
@ -41,18 +44,18 @@
|
||||||
.fr-hint-text
|
.fr-hint-text
|
||||||
%span Si vous ne trouvez pas l'option correspondant à votre groupe, veuillez l'ajouter dans le champ dédié au
|
%span Si vous ne trouvez pas l'option correspondant à votre groupe, veuillez l'ajouter dans le champ dédié au
|
||||||
%span
|
%span
|
||||||
= link_to 'routage', champs_admin_procedure_path(@procedure_id)
|
= link_to 'routage', champs_admin_procedure_path(@procedure)
|
||||||
|
|
||||||
.flex.fr-btns-group--sm.fr-btns-group--inline.fr-btns-group--icon-right
|
.flex.fr-btns-group--sm.fr-btns-group--inline.fr-btns-group--icon-right
|
||||||
- if @groupe_instructeur.can_delete?
|
- if @groupe_instructeur.can_delete?
|
||||||
%p= t('.delete')
|
%p= t('.delete')
|
||||||
= button_to admin_procedure_groupe_instructeur_path(@procedure_id, @groupe_instructeur),
|
= button_to admin_procedure_groupe_instructeur_path(@procedure, @groupe_instructeur),
|
||||||
class: 'fr-btn fr-btn--tertiary fr-btn--icon-left fr-icon-delete-line',
|
class: 'fr-btn fr-btn--tertiary fr-btn--icon-left fr-icon-delete-line',
|
||||||
method: :delete,
|
method: :delete,
|
||||||
data: { confirm: t('.delete_confirmation', group_name: @groupe_instructeur.label) } do
|
data: { confirm: t('.delete_confirmation', group_name: @groupe_instructeur.label) } do
|
||||||
Supprimer
|
Supprimer
|
||||||
- else
|
- else
|
||||||
= button_to reaffecter_dossiers_admin_procedure_groupe_instructeur_path(@procedure_id, @groupe_instructeur),
|
= button_to reaffecter_dossiers_admin_procedure_groupe_instructeur_path(@procedure, @groupe_instructeur),
|
||||||
class: 'fr-btn fr-btn--tertiary fr-icon-folder-2-line',
|
class: 'fr-btn fr-btn--tertiary fr-icon-folder-2-line',
|
||||||
title: t('.move_files_confirmation'),
|
title: t('.move_files_confirmation'),
|
||||||
method: :get do
|
method: :get do
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
- key = @procedure.groupe_instructeurs.one? ? 'instructeurs' : 'groupes'
|
- key = procedure.groupe_instructeurs.one? ? 'instructeurs' : 'groupes'
|
||||||
%section.fr-accordion.fr-mb-3w
|
%section.fr-accordion.fr-mb-3w
|
||||||
%h3.fr-accordion__title
|
%h3.fr-accordion__title
|
||||||
%button.fr-accordion__btn{ "aria-controls" => "accordion-106", "aria-expanded" => "false" }
|
%button.fr-accordion__btn{ "aria-controls" => "accordion-106", "aria-expanded" => "false" }
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
= t(".csv_import.#{key}.notice_1_html", csv_max_size: number_to_human_size(csv_max_size))
|
= t(".csv_import.#{key}.notice_1_html", csv_max_size: number_to_human_size(csv_max_size))
|
||||||
%p.notice
|
%p.notice
|
||||||
= t(".csv_import.#{key}.notice_2")
|
= t(".csv_import.#{key}.notice_2")
|
||||||
= form_tag import_admin_procedure_groupe_instructeurs_path(@procedure), method: :post, multipart: true, class: "mt-4 form flex justify-between align-center" do
|
= form_tag import_admin_procedure_groupe_instructeurs_path(procedure), method: :post, multipart: true, class: "mt-4 form flex justify-between align-center" do
|
||||||
= file_field_tag :csv_file, required: true, accept: 'text/csv', size: "1"
|
= file_field_tag :csv_file, required: true, accept: 'text/csv', size: "1"
|
||||||
= submit_tag t('.csv_import.import_file'), class: 'fr-btn fr-btn--secondary', data: { disable_with: "Envoi...", confirm: t('.csv_import.import_file_alert') }
|
= submit_tag t('.csv_import.import_file'), class: 'fr-btn fr-btn--secondary', data: { disable_with: "Envoi...", confirm: t('.csv_import.import_file_alert') }
|
||||||
- else
|
- else
|
||||||
|
@ -18,11 +18,11 @@
|
||||||
= t(".csv_import.#{key}.title")
|
= t(".csv_import.#{key}.title")
|
||||||
%p.notice
|
%p.notice
|
||||||
= t('.csv_import.import_file_procedure_not_published')
|
= t('.csv_import.import_file_procedure_not_published')
|
||||||
- if groupe_instructeurs.many?
|
- if procedure.groupe_instructeurs.many?
|
||||||
.flex.justify-between.align-center.mt-4
|
.flex.justify-between.align-center.mt-4
|
||||||
%div
|
%div
|
||||||
= t(".existing_groupe", count: groupe_instructeurs.total_count)
|
= t(".existing_groupe", count: procedure.groupe_instructeurs.count)
|
||||||
= button_to "Exporter au format CSV",
|
= button_to "Exporter au format CSV",
|
||||||
export_groupe_instructeurs_admin_procedure_groupe_instructeurs_path(@procedure, format: :csv),
|
export_groupe_instructeurs_admin_procedure_groupe_instructeurs_path(procedure, format: :csv),
|
||||||
method: :get,
|
method: :get,
|
||||||
class: 'fr-btn fr-btn--secondary'
|
class: 'fr-btn fr-btn--secondary'
|
||||||
|
|
|
@ -37,12 +37,12 @@ fr:
|
||||||
import_file_procedure_not_published: L’import par fichier CSV est disponible une fois la démarche publiée
|
import_file_procedure_not_published: L’import par fichier CSV est disponible une fois la démarche publiée
|
||||||
groupes:
|
groupes:
|
||||||
title: Import / Export en masse
|
title: Import / Export en masse
|
||||||
notice_1_html: Pour l’import, votre fichier csv doit comporter 2 colonnes (Groupe, Email) et être séparé par des virgules (<a href=/csv/fr/import-groupe-test.csv>exemple de fichier</a>). Le poids du fichier doit être inférieur %{csv_max_size}.
|
notice_1_html: Pour l’import, votre fichier csv doit comporter 2 colonnes (Groupe, Email) et être séparé par des virgules (<a href=/csv/fr/import-groupe-test.csv>exemple de fichier</a>). Le poids du fichier doit être inférieur à %{csv_max_size}.
|
||||||
notice_2: L’import n’écrase pas les groupes existants. Il permet uniquement d'en ajouter. Pour supprimer un groupe, allez dans la page dédiée et cliquez sur le bouton « Supprimer ».
|
notice_2: L’import n’écrase pas les groupes et instructeurs existants. Il permet uniquement d'en ajouter.
|
||||||
instructeurs:
|
instructeurs:
|
||||||
title: Import en masse
|
title: Import en masse
|
||||||
notice_1_html: Pour l’import, le fichier csv doit comporter 1 seule colonne (Email) avec une adresse email d'instructeur par ligne (<a href=/csv/import-instructeurs-test.csv>exemple de fichier</a>). Le poids du fichier doit être inférieur %{csv_max_size}.
|
notice_1_html: Pour l’import, le fichier csv doit comporter 1 seule colonne (Email) avec une adresse email d’instructeur par ligne (<a href=/csv/import-instructeurs-test.csv>exemple de fichier</a>). Le poids du fichier doit être inférieur à %{csv_max_size}.
|
||||||
notice_2: L’import n’écrase pas les instructeurs existants. Il permet uniquement d'en ajouter. Pour supprimer un instructeur, cliquez sur le bouton « Retirer ».
|
notice_2: L’import n’écrase pas les instructeurs existants. Il permet uniquement d'en ajouter.
|
||||||
existing_groupe:
|
existing_groupe:
|
||||||
one: "%{count} groupe existe"
|
one: "%{count} groupe existe"
|
||||||
other: "%{count} groupes existent"
|
other: "%{count} groupes existent"
|
||||||
|
|
Loading…
Reference in a new issue