diff --git a/app/components/procedure/instructeurs_management_component/instructeurs_management_component.en.yml b/app/components/procedure/instructeurs_management_component/instructeurs_management_component.en.yml new file mode 100644 index 000000000..8f4f9dc73 --- /dev/null +++ b/app/components/procedure/instructeurs_management_component/instructeurs_management_component.en.yml @@ -0,0 +1,3 @@ +--- +en: + title: Instructors diff --git a/app/components/procedure/instructeurs_management_component/instructeurs_management_component.fr.yml b/app/components/procedure/instructeurs_management_component/instructeurs_management_component.fr.yml new file mode 100644 index 000000000..df1d83771 --- /dev/null +++ b/app/components/procedure/instructeurs_management_component/instructeurs_management_component.fr.yml @@ -0,0 +1,3 @@ +--- +fr: + title: Instructeurs diff --git a/app/components/procedure/instructeurs_management_component/instructeurs_management_component.html.haml b/app/components/procedure/instructeurs_management_component/instructeurs_management_component.html.haml index 3b538bdb1..d2f5701e0 100644 --- a/app/components/procedure/instructeurs_management_component/instructeurs_management_component.html.haml +++ b/app/components/procedure/instructeurs_management_component/instructeurs_management_component.html.haml @@ -1,5 +1,5 @@ -- content_for(:title, 'Instructeurs') -%h1.fr-h2 Instructeurs +- content_for(:title, t('.title')) +%h1.fr-h2=t('.title') = render partial: 'administrateurs/groupe_instructeurs/import_export', locals: { procedure: @procedure } diff --git a/app/components/procedure/instructeurs_menu_component/instructeurs_menu_component.en.yml b/app/components/procedure/instructeurs_menu_component/instructeurs_menu_component.en.yml new file mode 100644 index 000000000..bb7558137 --- /dev/null +++ b/app/components/procedure/instructeurs_menu_component/instructeurs_menu_component.en.yml @@ -0,0 +1,5 @@ +--- +en: + instructeurs: + one: "%{count} instructor" + other: "%{count} instructors" diff --git a/app/views/administrateurs/groupe_instructeurs/_instructeurs.html.haml b/app/views/administrateurs/groupe_instructeurs/_instructeurs.html.haml index 4c8c4371d..8797f6250 100644 --- a/app/views/administrateurs/groupe_instructeurs/_instructeurs.html.haml +++ b/app/views/administrateurs/groupe_instructeurs/_instructeurs.html.haml @@ -1,11 +1,11 @@ .card = render Procedure::InvitationWithTypoComponent.new(maybe_typos: @maybe_typos, url: add_instructeur_admin_procedure_groupe_instructeur_path(@procedure, groupe_instructeur.id), title: "Avant d'ajouter l'email, veuillez confirmer" ) - .card-title Affectation des instructeurs + .card-title= t('.instructeur_assignation') = form_for :instructeur, url: { action: :add_instructeur, id: groupe_instructeur.id }, html: { class: 'form' } do |f| .instructeur-wrapper - if !procedure.routing_enabled? - %p Entrez les adresses email des instructeurs que vous souhaitez affecter à cette démarche + %p=t('.instructeur_emails') - if disabled_as_super_admin = f.select :emails, available_instructeur_emails, {}, disabled: disabled_as_super_admin, id: 'instructeur_emails' @@ -13,7 +13,7 @@ %react-fragment = render ReactComponent.new 'ComboBox/MultiComboBox', items: available_instructeur_emails, id: 'instructeur_emails', name: 'emails[]', allows_custom_value: true, 'aria-label': 'Emails' - = f.submit 'Affecter', class: 'fr-btn', disabled: disabled_as_super_admin + = f.submit t('.assign'), class: 'fr-btn', disabled: disabled_as_super_admin %table.fr-table.fr-mt-2w.width-100 %thead @@ -27,7 +27,7 @@ #{instructeur.email} - confirmation_message = procedure.routing_enabled? ? "Êtes-vous sûr de vouloir retirer l’instructeur « #{instructeur.email} » du groupe « #{groupe_instructeur.label} » ?" : "Êtes-vous sûr de vouloir retirer l’instructeur « #{instructeur.email} » de la démarche ?" - %td.actions= button_to 'Retirer', + %td.actions= button_to t('.remove'), { action: :remove_instructeur, id: groupe_instructeur.id }, { method: :delete, data: { confirm: confirmation_message }, diff --git a/config/locales/views/administrateurs/groupe_instructeurs/en.yml b/config/locales/views/administrateurs/groupe_instructeurs/en.yml index f4690053a..2aa0133ef 100644 --- a/config/locales/views/administrateurs/groupe_instructeurs/en.yml +++ b/config/locales/views/administrateurs/groupe_instructeurs/en.yml @@ -20,22 +20,27 @@ en: one: "%{count} group exist" other: "%{count} groups exist" instructeurs: + title: Instructors assigned_instructeur: one: "%{count} instructor is assigned" other: "%{count} instructors are assigned" + instructeur_assignation: Instructors assignment + assign: Assign + remove: Remove + instructeur_emails: Email addresses of the instructors you want to assign to this procedure 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 + import_file: Import file + import_file_alert: All instructors added to the procedure will be notified by email. Do you want to continue? + import_file_procedure_not_published: CSV file import is available once the procedure is published 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 ». + title: Bulk Import / Export + notice_1_html: For the import, your csv file must have 2 columns (Group, Email) and be comma separated (example file). The file size must be less than %{csv_max_size}. + notice_2: The import does not overwrite existing groups and instructors. It only allows you to add them. 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 ». + title: Adding instructors with file import + notice_1_html: For the import, the csv file must have only 1 column (Email) with one instructor email address per line (example file). The file size must be less than %{csv_max_size}. + notice_2: The import does not overwrite existing instructors. It only allows you to add them. existing_groupe: one: "%{count} groupe existe" other: "%{count} groupes existent" diff --git a/config/locales/views/administrateurs/groupe_instructeurs/fr.yml b/config/locales/views/administrateurs/groupe_instructeurs/fr.yml index e44fda6ff..d72670381 100644 --- a/config/locales/views/administrateurs/groupe_instructeurs/fr.yml +++ b/config/locales/views/administrateurs/groupe_instructeurs/fr.yml @@ -27,9 +27,14 @@ fr: one: "%{count} groupe existe" other: "%{count} groupes existent" instructeurs: + title: Instructeurs assigned_instructeur: one: "%{count} instructeur est affecté" other: "%{count} instructeurs sont affectés" + instructeur_assignation: Affectation des instructeurs + assign: Affecter + remove: Retirer + instructeur_emails: Adresse électronique des instructeurs que vous souhaitez affecter à cette démarche import_export: csv_import: import_file: Importer le fichier @@ -40,7 +45,7 @@ fr: 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 et instructeurs existants. Il permet uniquement d'en ajouter. instructeurs: - title: Import en masse + title: Ajout d’instructeurs avec import de fichier 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. existing_groupe: diff --git a/spec/system/administrateurs/procedure_groupe_instructeur_spec.rb b/spec/system/administrateurs/procedure_groupe_instructeur_spec.rb index 48dc9a892..10c6ec43f 100644 --- a/spec/system/administrateurs/procedure_groupe_instructeur_spec.rb +++ b/spec/system/administrateurs/procedure_groupe_instructeur_spec.rb @@ -19,7 +19,7 @@ describe 'Manage procedure instructeurs', js: true do scenario 'it works' do visit admin_procedure_path(procedure) find('#groupe-instructeurs').click - expect(page).to have_css("h1", text: "Instructeurs") + expect(page).to have_css("h1", text: "Gestion des instructeurs") end end