diff --git a/canaille/templates/profile.html b/canaille/templates/profile.html
index 21860c61..bdb1b444 100644
--- a/canaille/templates/profile.html
+++ b/canaille/templates/profile.html
@@ -1,5 +1,5 @@
{% extends theme('base.html') %}
-{% import 'fomanticui.j2' as sui %}
+{% import 'fomanticui.html' as sui %}
{% block script %}
diff --git a/canaille/templates/reset-password.html b/canaille/templates/reset-password.html
index 1c1101fa..a4f81314 100644
--- a/canaille/templates/reset-password.html
+++ b/canaille/templates/reset-password.html
@@ -1,5 +1,5 @@
{% extends theme('base.html') %}
-{% import 'fomanticui.j2' as sui %}
+{% import 'fomanticui.html' as sui %}
{% block content %}
diff --git a/canaille/translations/fr/LC_MESSAGES/messages.mo b/canaille/translations/fr/LC_MESSAGES/messages.mo
index f8703bbf..bb05b76f 100644
Binary files a/canaille/translations/fr/LC_MESSAGES/messages.mo and b/canaille/translations/fr/LC_MESSAGES/messages.mo differ
diff --git a/canaille/translations/fr/LC_MESSAGES/messages.po b/canaille/translations/fr/LC_MESSAGES/messages.po
index 4a5873fd..46f6bb4b 100644
--- a/canaille/translations/fr/LC_MESSAGES/messages.po
+++ b/canaille/translations/fr/LC_MESSAGES/messages.po
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: contact@yaal.fr\n"
-"POT-Creation-Date: 2021-12-02 12:03+0100\n"
-"PO-Revision-Date: 2021-12-02 12:05+0100\n"
+"POT-Creation-Date: 2021-12-05 18:47+0100\n"
+"PO-Revision-Date: 2021-12-05 18:47+0100\n"
"Last-Translator: Éloi Rivard \n"
"Language: fr_FR\n"
"Language-Team: French - France \n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.1\n"
"X-Generator: Gtranslator 40.0\n"
@@ -47,7 +47,7 @@ msgstr ""
"Un lien d'initialisation de votre mot de passe vous a été envoyé par mail. "
"Vous devriez le recevoir d'ici une dizaine de minutes."
-#: canaille/account.py:137 canaille/account.py:326
+#: canaille/account.py:137 canaille/account.py:319
msgid "Could not send the password initialization email"
msgstr "Impossible d'envoyer le courriel d'initialisation de mot de passe."
@@ -55,31 +55,31 @@ msgstr "Impossible d'envoyer le courriel d'initialisation de mot de passe."
msgid "An error happened whilen sending the invitation link."
msgstr "Une erreur est survenue durant l'envoi du lien d'invitation"
-#: canaille/account.py:190 canaille/account.py:264
+#: canaille/account.py:185 canaille/account.py:257
msgid "User account creation failed."
msgstr "La création du compte utilisateur a échoué."
-#: canaille/account.py:211 canaille/account.py:232
+#: canaille/account.py:206 canaille/account.py:227
msgid "The invitation link that brought you here was invalid."
msgstr "Le lien d'invitation qui vous a amené ici est invalide."
-#: canaille/account.py:218
+#: canaille/account.py:213
msgid "Your account has already been created."
msgstr "Votre compte a déjà été créé."
-#: canaille/account.py:225
+#: canaille/account.py:220
msgid "You are already logged in, you cannot create an account."
msgstr "Vous êtes déjà connectés, vous ne pouvez pas créer de compte."
-#: canaille/account.py:269
+#: canaille/account.py:262
msgid "You account has been created successfuly."
msgstr "Votre compte utilisateur a été créé avec succès."
-#: canaille/account.py:299
+#: canaille/account.py:292
msgid "User account creation succeed."
msgstr "La création du compte utilisateur a réussi."
-#: canaille/account.py:320
+#: canaille/account.py:313
msgid ""
"A password initialization link has been sent at the user email address. It "
"should be received within 10 minutes."
@@ -87,7 +87,7 @@ msgstr ""
"Un lien d'initialisation de mot de passe a été envoyé à l'utilisateur par "
"mail. Il devrait arriver d'ici une dizaine de minutes."
-#: canaille/account.py:334
+#: canaille/account.py:327
msgid ""
"A password reset link has been sent at the user email address. It should be "
"received within 10 minutes."
@@ -95,28 +95,28 @@ msgstr ""
"Un lien de réinitialisation de mot de passe a été envoyé à l'utilisateur par "
"mail. Il devrait arriver d'ici une dizaine de minutes."
-#: canaille/account.py:340
+#: canaille/account.py:333
msgid "Could not send the password reset email"
msgstr "Impossible d'envoyer le lien de réinitialisation."
-#: canaille/account.py:374
+#: canaille/account.py:364
msgid "Profile edition failed."
msgstr "L'édition du profil a échoué."
-#: canaille/account.py:397
+#: canaille/account.py:389
msgid "Profile updated successfuly."
msgstr "Le profil a été mis à jour avec succès."
-#: canaille/account.py:416
+#: canaille/account.py:409
#, python-format
msgid "The user %(user)s has been sucessfuly deleted"
msgstr "L'utilisateur %(user)s a bien été supprimé"
-#: canaille/account.py:439
+#: canaille/account.py:432
msgid "Could not send the password reset link."
msgstr "Impossible d'envoyer le lien de réinitialisation."
-#: canaille/account.py:446 canaille/account.py:457
+#: canaille/account.py:439 canaille/account.py:450
msgid ""
"A password reset link has been sent at your email address. You should "
"receive it within 10 minutes."
@@ -124,15 +124,15 @@ msgstr ""
"Un lien de ré-initialisation de votre mot de passe vous a été envoyé par "
"mail. Vous devriez le recevoir d'ici une dizaine de minutes."
-#: canaille/account.py:463
+#: canaille/account.py:456
msgid "Could not reset your password"
msgstr "Impossible de réinitialiser votre mot de passe"
-#: canaille/account.py:477
+#: canaille/account.py:470
msgid "The password reset link that brought you here was invalid."
msgstr "Le lien de réinitialisation qui vous a amené ici est invalide."
-#: canaille/account.py:486
+#: canaille/account.py:479
msgid "Your password has been updated successfuly"
msgstr "Votre mot de passe a correctement été mis à jour."
@@ -152,12 +152,13 @@ msgstr "L'identifiant '{login}' existe déjà"
msgid "The email '{email}' already exists"
msgstr "L'email '{group}' existe déjà"
-#: canaille/forms.py:26 canaille/forms.py:58
+#: canaille/forms.py:26 canaille/forms.py:58 canaille/templates/group.html:90
+#: canaille/templates/users.html:24
msgid "Login"
msgstr "Identifiant"
#: canaille/forms.py:29 canaille/forms.py:61 canaille/forms.py:117
-#: canaille/forms.py:194
+#: canaille/forms.py:208
msgid "jane@doe.com"
msgstr "martin@dupont.fr"
@@ -177,17 +178,17 @@ msgstr "Confirmation du mot de passe"
msgid "Password and confirmation do not match."
msgstr "Le mot de passe et sa confirmation ne correspondent pas."
-#: canaille/forms.py:92 canaille/forms.py:182
+#: canaille/forms.py:92 canaille/forms.py:196
msgid "Username"
msgstr "Identifiant"
-#: canaille/forms.py:93 canaille/forms.py:183
+#: canaille/forms.py:93 canaille/forms.py:197
msgid "jdoe"
msgstr "mdupont"
-#: canaille/admin/clients.py:28 canaille/forms.py:96 canaille/forms.py:166
+#: canaille/admin/clients.py:28 canaille/forms.py:96 canaille/forms.py:180
#: canaille/templates/admin/client_list.html:22
-#: canaille/templates/users.html:24
+#: canaille/templates/group.html:91 canaille/templates/users.html:25
msgid "Name"
msgstr "Nom"
@@ -207,11 +208,11 @@ msgstr "Nom de famille"
msgid "Doe"
msgstr "Dupont"
-#: canaille/forms.py:114 canaille/forms.py:187
+#: canaille/forms.py:114 canaille/forms.py:201
msgid "Email address"
msgstr "Courriel"
-#: canaille/forms.py:123 canaille/templates/users.html:26
+#: canaille/forms.py:123
msgid "Phone number"
msgstr "Numéro de téléphone"
@@ -231,16 +232,17 @@ msgstr "Numéro"
msgid "1234"
msgstr "1234"
-#: canaille/forms.py:157 canaille/forms.py:200 canaille/templates/groups.html:9
-#: canaille/themes/default/base.html:55
+#: canaille/forms.py:162 canaille/forms.py:214 canaille/templates/group.html:93
+#: canaille/templates/groups.html:9 canaille/templates/users.html:27
+#: canaille/themes/default/base.html:57
msgid "Groups"
msgstr "Groupes"
-#: canaille/forms.py:169
+#: canaille/forms.py:183
msgid "group"
msgstr "groupe"
-#: canaille/forms.py:176
+#: canaille/forms.py:190
msgid "The group '{group}' already exists"
msgstr "Le group '{group}' existe déjà"
@@ -386,7 +388,7 @@ msgstr "Le client a été supprimé."
msgid "Invitation on {website_name}"
msgstr "Invitation sur {website_name}"
-#: canaille/templates/about.html:12 canaille/themes/default/base.html:98
+#: canaille/templates/about.html:12 canaille/themes/default/base.html:100
msgid "About canaille"
msgstr "À propos de canaille"
@@ -513,6 +515,14 @@ msgstr "Page de connexion"
msgid "Send the initialization email"
msgstr "Envoyer le courriel d'initialisation"
+#: canaille/templates/fomanticui.html:33
+msgid "This field is not editable"
+msgstr "Ce champ n'est pas modifiable"
+
+#: canaille/templates/fomanticui.html:37
+msgid "This field is required"
+msgstr "Ce champ est requis"
+
#: canaille/templates/forgotten-password.html:11
#: canaille/templates/login.html:36 canaille/templates/password.html:34
msgid "Forgotten password"
@@ -544,11 +554,11 @@ msgstr "Envoyer à nouveau"
msgid "Send"
msgstr "Envoyer"
-#: canaille/templates/group.html:13
+#: canaille/templates/group.html:21
msgid "Group deletion"
msgstr "Suppression d'un groupe"
-#: canaille/templates/group.html:17
+#: canaille/templates/group.html:25
msgid ""
"Are you sure you want to delete this group? This action is unrevokable and "
"all the data about this group will be removed."
@@ -557,36 +567,32 @@ msgstr ""
"irrévocable, et toutes les données de cet utilisateur seront supprimées."
#: canaille/templates/admin/client_edit.html:18
-#: canaille/templates/group.html:21 canaille/templates/profile.html:25
+#: canaille/templates/group.html:29 canaille/templates/profile.html:25
msgid "Cancel"
msgstr "Annuler"
#: canaille/templates/admin/client_edit.html:19
-#: canaille/templates/group.html:22 canaille/templates/profile.html:26
+#: canaille/templates/group.html:30 canaille/templates/profile.html:26
msgid "Delete"
msgstr "Supprimer"
-#: canaille/templates/group.html:29
-msgid "Members"
-msgstr "Membres"
-
-#: canaille/templates/group.html:45
+#: canaille/templates/group.html:39
msgid "Group creation"
msgstr "Nouveau groupe"
-#: canaille/templates/group.html:47
+#: canaille/templates/group.html:41
msgid "Group edition"
msgstr "Édition d'un groupe"
-#: canaille/templates/group.html:53
+#: canaille/templates/group.html:47
msgid "Create a new group"
msgstr "Création d'un nouveau groupe"
-#: canaille/templates/group.html:55
+#: canaille/templates/group.html:49
msgid "Edit informations about a group"
msgstr "Éditez les informations d'un groupe"
-#: canaille/templates/group.html:70
+#: canaille/templates/group.html:64
msgid ""
"Because group cannot be empty, you will be added to the group. You can "
"remove you later by editing your profile when you will have added other "
@@ -596,17 +602,21 @@ msgstr ""
"pourrez vous retirer du groupe depuis l'édition de votre profil dès que vous "
"aurez ajouter d'autres membres dans le groupe."
-#: canaille/templates/group.html:75
+#: canaille/templates/group.html:72
+msgid "Delete group"
+msgstr "Supprimer le groupe"
+
+#: canaille/templates/group.html:77
msgid "Create group"
msgstr "Créer le groupe"
-#: canaille/templates/group.html:77 canaille/templates/profile.html:182
+#: canaille/templates/group.html:79 canaille/templates/profile.html:182
msgid "Submit"
msgstr "Valider"
-#: canaille/templates/group.html:82
-msgid "Delete group"
-msgstr "Supprimer le groupe"
+#: canaille/templates/group.html:92 canaille/templates/users.html:26
+msgid "Email"
+msgstr "Courriel"
#: canaille/templates/groups.html:5
msgid "Add a group"
@@ -834,10 +844,6 @@ msgstr "Inviter un utilisateur"
msgid "Add a user"
msgstr "Nouvel utilisateur"
-#: canaille/templates/users.html:25
-msgid "Email"
-msgstr "Courriel"
-
#: canaille/templates/admin/authorization_list.html:18
#: canaille/templates/admin/token_list.html:18
msgid "Token"
@@ -1045,23 +1051,23 @@ msgstr " - Interface de gestion des autorisations"
msgid "Users"
msgstr "Utilisateurs"
-#: canaille/themes/default/base.html:65
+#: canaille/themes/default/base.html:67
msgid "Clients"
msgstr "Clients"
-#: canaille/themes/default/base.html:69
+#: canaille/themes/default/base.html:71
msgid "Tokens"
msgstr "Jetons"
-#: canaille/themes/default/base.html:73
+#: canaille/themes/default/base.html:75
msgid "Codes"
msgstr "Codes"
-#: canaille/themes/default/base.html:77
+#: canaille/themes/default/base.html:79
msgid "Consents"
msgstr "Autorisations"
-#: canaille/themes/default/base.html:84
+#: canaille/themes/default/base.html:86
msgid "Log out"
msgstr "Déconnexion"
@@ -1109,3 +1115,6 @@ msgstr "Déconnexion"
#~ msgid "User deletion"
#~ msgstr "Suppression d'un utilisateur"
+
+#~ msgid "Members"
+#~ msgstr "Membres"
diff --git a/canaille/translations/messages.pot b/canaille/translations/messages.pot
index e4bbb233..792e1d9e 100644
--- a/canaille/translations/messages.pot
+++ b/canaille/translations/messages.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-12-02 12:03+0100\n"
+"POT-Creation-Date: 2021-12-05 18:47+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -41,7 +41,7 @@ msgid ""
"should receive it within 10 minutes."
msgstr ""
-#: canaille/account.py:137 canaille/account.py:326
+#: canaille/account.py:137 canaille/account.py:319
msgid "Could not send the password initialization email"
msgstr ""
@@ -49,78 +49,78 @@ msgstr ""
msgid "An error happened whilen sending the invitation link."
msgstr ""
-#: canaille/account.py:190 canaille/account.py:264
+#: canaille/account.py:185 canaille/account.py:257
msgid "User account creation failed."
msgstr ""
-#: canaille/account.py:211 canaille/account.py:232
+#: canaille/account.py:206 canaille/account.py:227
msgid "The invitation link that brought you here was invalid."
msgstr ""
-#: canaille/account.py:218
+#: canaille/account.py:213
msgid "Your account has already been created."
msgstr ""
-#: canaille/account.py:225
+#: canaille/account.py:220
msgid "You are already logged in, you cannot create an account."
msgstr ""
-#: canaille/account.py:269
+#: canaille/account.py:262
msgid "You account has been created successfuly."
msgstr ""
-#: canaille/account.py:299
+#: canaille/account.py:292
msgid "User account creation succeed."
msgstr ""
-#: canaille/account.py:320
+#: canaille/account.py:313
msgid ""
"A password initialization link has been sent at the user email address. "
"It should be received within 10 minutes."
msgstr ""
-#: canaille/account.py:334
+#: canaille/account.py:327
msgid ""
"A password reset link has been sent at the user email address. It should "
"be received within 10 minutes."
msgstr ""
-#: canaille/account.py:340
+#: canaille/account.py:333
msgid "Could not send the password reset email"
msgstr ""
-#: canaille/account.py:374
+#: canaille/account.py:364
msgid "Profile edition failed."
msgstr ""
-#: canaille/account.py:397
+#: canaille/account.py:389
msgid "Profile updated successfuly."
msgstr ""
-#: canaille/account.py:416
+#: canaille/account.py:409
#, python-format
msgid "The user %(user)s has been sucessfuly deleted"
msgstr ""
-#: canaille/account.py:439
+#: canaille/account.py:432
msgid "Could not send the password reset link."
msgstr ""
-#: canaille/account.py:446 canaille/account.py:457
+#: canaille/account.py:439 canaille/account.py:450
msgid ""
"A password reset link has been sent at your email address. You should "
"receive it within 10 minutes."
msgstr ""
-#: canaille/account.py:463
+#: canaille/account.py:456
msgid "Could not reset your password"
msgstr ""
-#: canaille/account.py:477
+#: canaille/account.py:470
msgid "The password reset link that brought you here was invalid."
msgstr ""
-#: canaille/account.py:486
+#: canaille/account.py:479
msgid "Your password has been updated successfuly"
msgstr ""
@@ -140,12 +140,13 @@ msgstr ""
msgid "The email '{email}' already exists"
msgstr ""
-#: canaille/forms.py:26 canaille/forms.py:58
+#: canaille/forms.py:26 canaille/forms.py:58 canaille/templates/group.html:90
+#: canaille/templates/users.html:24
msgid "Login"
msgstr ""
#: canaille/forms.py:29 canaille/forms.py:61 canaille/forms.py:117
-#: canaille/forms.py:194
+#: canaille/forms.py:208
msgid "jane@doe.com"
msgstr ""
@@ -165,17 +166,17 @@ msgstr ""
msgid "Password and confirmation do not match."
msgstr ""
-#: canaille/forms.py:92 canaille/forms.py:182
+#: canaille/forms.py:92 canaille/forms.py:196
msgid "Username"
msgstr ""
-#: canaille/forms.py:93 canaille/forms.py:183
+#: canaille/forms.py:93 canaille/forms.py:197
msgid "jdoe"
msgstr ""
-#: canaille/admin/clients.py:28 canaille/forms.py:96 canaille/forms.py:166
+#: canaille/admin/clients.py:28 canaille/forms.py:96 canaille/forms.py:180
#: canaille/templates/admin/client_list.html:22
-#: canaille/templates/users.html:24
+#: canaille/templates/group.html:91 canaille/templates/users.html:25
msgid "Name"
msgstr ""
@@ -195,11 +196,11 @@ msgstr ""
msgid "Doe"
msgstr ""
-#: canaille/forms.py:114 canaille/forms.py:187
+#: canaille/forms.py:114 canaille/forms.py:201
msgid "Email address"
msgstr ""
-#: canaille/forms.py:123 canaille/templates/users.html:26
+#: canaille/forms.py:123
msgid "Phone number"
msgstr ""
@@ -219,16 +220,17 @@ msgstr ""
msgid "1234"
msgstr ""
-#: canaille/forms.py:157 canaille/forms.py:200 canaille/templates/groups.html:9
-#: canaille/themes/default/base.html:55
+#: canaille/forms.py:162 canaille/forms.py:214 canaille/templates/group.html:93
+#: canaille/templates/groups.html:9 canaille/templates/users.html:27
+#: canaille/themes/default/base.html:57
msgid "Groups"
msgstr ""
-#: canaille/forms.py:169
+#: canaille/forms.py:183
msgid "group"
msgstr ""
-#: canaille/forms.py:176
+#: canaille/forms.py:190
msgid "The group '{group}' already exists"
msgstr ""
@@ -374,7 +376,7 @@ msgstr ""
msgid "Invitation on {website_name}"
msgstr ""
-#: canaille/templates/about.html:12 canaille/themes/default/base.html:98
+#: canaille/templates/about.html:12 canaille/themes/default/base.html:100
msgid "About canaille"
msgstr ""
@@ -491,6 +493,14 @@ msgstr ""
msgid "Send the initialization email"
msgstr ""
+#: canaille/templates/fomanticui.html:33
+msgid "This field is not editable"
+msgstr ""
+
+#: canaille/templates/fomanticui.html:37
+msgid "This field is required"
+msgstr ""
+
#: canaille/templates/forgotten-password.html:11
#: canaille/templates/login.html:36 canaille/templates/password.html:34
msgid "Forgotten password"
@@ -516,63 +526,63 @@ msgstr ""
msgid "Send"
msgstr ""
-#: canaille/templates/group.html:13
+#: canaille/templates/group.html:21
msgid "Group deletion"
msgstr ""
-#: canaille/templates/group.html:17
+#: canaille/templates/group.html:25
msgid ""
"Are you sure you want to delete this group? This action is unrevokable "
"and all the data about this group will be removed."
msgstr ""
#: canaille/templates/admin/client_edit.html:18
-#: canaille/templates/group.html:21 canaille/templates/profile.html:25
+#: canaille/templates/group.html:29 canaille/templates/profile.html:25
msgid "Cancel"
msgstr ""
#: canaille/templates/admin/client_edit.html:19
-#: canaille/templates/group.html:22 canaille/templates/profile.html:26
+#: canaille/templates/group.html:30 canaille/templates/profile.html:26
msgid "Delete"
msgstr ""
-#: canaille/templates/group.html:29
-msgid "Members"
-msgstr ""
-
-#: canaille/templates/group.html:45
+#: canaille/templates/group.html:39
msgid "Group creation"
msgstr ""
-#: canaille/templates/group.html:47
+#: canaille/templates/group.html:41
msgid "Group edition"
msgstr ""
-#: canaille/templates/group.html:53
+#: canaille/templates/group.html:47
msgid "Create a new group"
msgstr ""
-#: canaille/templates/group.html:55
+#: canaille/templates/group.html:49
msgid "Edit informations about a group"
msgstr ""
-#: canaille/templates/group.html:70
+#: canaille/templates/group.html:64
msgid ""
"Because group cannot be empty, you will be added to the group. You can "
"remove you later by editing your profile when you will have added other "
"members to the group."
msgstr ""
-#: canaille/templates/group.html:75
+#: canaille/templates/group.html:72
+msgid "Delete group"
+msgstr ""
+
+#: canaille/templates/group.html:77
msgid "Create group"
msgstr ""
-#: canaille/templates/group.html:77 canaille/templates/profile.html:182
+#: canaille/templates/group.html:79 canaille/templates/profile.html:182
msgid "Submit"
msgstr ""
-#: canaille/templates/group.html:82
-msgid "Delete group"
+#: canaille/templates/group.html:92 canaille/templates/users.html:26
+msgid "Email"
msgstr ""
#: canaille/templates/groups.html:5
@@ -782,10 +792,6 @@ msgstr ""
msgid "Add a user"
msgstr ""
-#: canaille/templates/users.html:25
-msgid "Email"
-msgstr ""
-
#: canaille/templates/admin/authorization_list.html:18
#: canaille/templates/admin/token_list.html:18
msgid "Token"
@@ -966,23 +972,23 @@ msgstr ""
msgid "Users"
msgstr ""
-#: canaille/themes/default/base.html:65
+#: canaille/themes/default/base.html:67
msgid "Clients"
msgstr ""
-#: canaille/themes/default/base.html:69
+#: canaille/themes/default/base.html:71
msgid "Tokens"
msgstr ""
-#: canaille/themes/default/base.html:73
+#: canaille/themes/default/base.html:75
msgid "Codes"
msgstr ""
-#: canaille/themes/default/base.html:77
+#: canaille/themes/default/base.html:79
msgid "Consents"
msgstr ""
-#: canaille/themes/default/base.html:84
+#: canaille/themes/default/base.html:86
msgid "Log out"
msgstr ""