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