diff --git a/app/views/administrateurs/groupe_instructeurs/_import_export.html.haml b/app/views/administrateurs/groupe_instructeurs/_import_export.html.haml
new file mode 100644
index 000000000..67ac977e2
--- /dev/null
+++ b/app/views/administrateurs/groupe_instructeurs/_import_export.html.haml
@@ -0,0 +1,28 @@
+- key = @procedure.groupe_instructeurs.one? ? 'instructeurs' : 'groupes'
+%section.fr-accordion.fr-mb-3w
+ %h3.fr-accordion__title
+ %button.fr-accordion__btn{ "aria-controls" => "accordion-106", "aria-expanded" => "false" }
+ = t(".csv_import.#{key}.title")
+ .fr-collapse#accordion-106
+ - csv_max_size = Administrateurs::GroupeInstructeursController::CSV_MAX_SIZE
+ - if procedure.publiee_or_close?
+ %p.notice
+ = t(".csv_import.#{key}.notice_1_html", csv_max_size: number_to_human_size(csv_max_size))
+ %p.notice
+ = 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
+ = 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') }
+ - else
+ %p.mt-4.form.font-weight-bold.mb-2.text-lg
+ = t(".csv_import.#{key}.title")
+ %p.notice
+ = t('.csv_import.import_file_procedure_not_published')
+ - if groupe_instructeurs.many?
+ .flex.justify-between.align-center.mt-4
+ %div
+ = t(".existing_groupe", count: groupe_instructeurs.total_count)
+ = button_to "Exporter au format CSV",
+ export_groupe_instructeurs_admin_procedure_groupe_instructeurs_path(@procedure, format: :csv),
+ method: :get,
+ class: 'fr-btn fr-btn--secondary'
diff --git a/config/locales/views/administrateurs/groupe_instructeurs/en.yml b/config/locales/views/administrateurs/groupe_instructeurs/en.yml
index 31f04dee5..60f5a0492 100644
--- a/config/locales/views/administrateurs/groupe_instructeurs/en.yml
+++ b/config/locales/views/administrateurs/groupe_instructeurs/en.yml
@@ -24,6 +24,29 @@ en:
assigned_instructeur:
one: "%{count} instructor is assigned"
other: "%{count} instructors are assigned"
+ import_export:
+ csv_import:
+ import_file: Importer le fichier
+ import_file_alert: Tous les instructeurs ajoutés à la procédure vont être notifiés par email. Voulez-vous continuer ?
+ import_file_procedure_not_published: L’import par fichier CSV est disponible une fois la démarche publiée
+ groupes:
+ 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 (exemple de fichier). 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 ».
+ instructeurs:
+ 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 (exemple de fichier). 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 ».
+ existing_groupe:
+ one: "%{count} groupe existe"
+ other: "%{count} groupes existent"
+ groupe:
+ one: "%{count} groupe"
+ other: "%{count} groupes"
+ found:
+ one: "trouvé"
+ other: "trouvés"
+
edit:
routing:
title: Label of the groups list
@@ -39,16 +62,6 @@ en:
add_a_group:
title: Add a group
notice: This group will be a choice from the list "%{routing_criteria_name}"
- csv_import:
- title: CSV Import
- notice_1_html: The csv file must have 1 column with instructors emails(%{instructeurs_link}). For routed procedures, the csv file must have 2 columns (Group, Email) and be separated by commas (%{groupes_link}). The import does not overwrite existing groups and instructors.
- notice_2: The size of the file must be less than %{csv_max_size}.
- import_file: Import file
- import_file_procedure_not_published: The import of instructors by CSV file is available once the process has been published
- import_file_alert: Instructors added to the procedure will receive an email. Are you sure you want to continue ?"
- link_text: file example
- instructeurs_file_path: /csv/import-instructeurs-test.csv
- groupes_file_path: /csv/en/import-groupe-test.csv
set_up: set up
button:
add_group: Add group
diff --git a/config/locales/views/administrateurs/groupe_instructeurs/fr.yml b/config/locales/views/administrateurs/groupe_instructeurs/fr.yml
index dc49c86b6..542597b08 100644
--- a/config/locales/views/administrateurs/groupe_instructeurs/fr.yml
+++ b/config/locales/views/administrateurs/groupe_instructeurs/fr.yml
@@ -30,6 +30,28 @@ fr:
assigned_instructeur:
one: "%{count} instructeur est affecté"
other: "%{count} instructeurs sont affectés"
+ import_export:
+ csv_import:
+ import_file: Importer le fichier
+ import_file_alert: Tous les instructeurs ajoutés à la procédure vont être notifiés par email. Voulez-vous continuer ?
+ import_file_procedure_not_published: L’import par fichier CSV est disponible une fois la démarche publiée
+ groupes:
+ 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 (exemple de fichier). 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 ».
+ instructeurs:
+ 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 (exemple de fichier). 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 ».
+ existing_groupe:
+ one: "%{count} groupe existe"
+ other: "%{count} groupes existent"
+ groupe:
+ one: "%{count} groupe"
+ other: "%{count} groupes"
+ found:
+ one: "trouvé"
+ other: "trouvés"
edit:
routing:
title: Libellé de la liste de groupes
@@ -46,14 +68,6 @@ fr:
title: Ajouter un nom de groupe
notice: Ce groupe sera un choix de la liste "%{routing_criteria_name}"
csv_import:
- title: Importer par CSV
- notice_1_html: |
- Pour une procédure standard, le fichier csv doit comporter 1 seule colonne (Email) avec une adresse email d'instructeur par ligne (%{instructeurs_link}).
- Pour une procédure routée, le fichier doit comporter 2 colonnes (Groupe, Email) et être séparé par des virgules (%{groupes_link}).
- 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 ». Le poids du fichier doit être inférieur %{csv_max_size}.
- import_file: Importer le fichier
- import_file_procedure_not_published: L’import d’instructeurs par fichier CSV est disponible une fois la démarche publiée
- import_file_alert: Tous les instructeurs ajoutés à la procédure vont être informés par email. Voulez-vous continuer ?
link_text: exemple de fichier
instructeurs_file_path: /csv/import-instructeurs-test.csv
groupes_file_path: /csv/fr/import-groupe-test.csv