make UI more adaptable to email provider usecase

This commit is contained in:
Camille 2021-12-20 16:15:13 +00:00
parent 15640c6912
commit 239d5d3e24
8 changed files with 192 additions and 148 deletions

View file

@ -113,6 +113,7 @@ PROFILE_FORM_FIELDS = dict(
mail=wtforms.EmailField( mail=wtforms.EmailField(
_("Email address"), _("Email address"),
validators=[wtforms.validators.DataRequired(), wtforms.validators.Email()], validators=[wtforms.validators.DataRequired(), wtforms.validators.Email()],
description=_("This email will be used as a recovery address to reset the password if needed"),
render_kw={ render_kw={
"placeholder": _("jane@doe.com"), "placeholder": _("jane@doe.com"),
"spellcheck": "false", "spellcheck": "false",

View file

@ -6,6 +6,7 @@
noindicator=false, noindicator=false,
indicator_icon=none, indicator_icon=none,
indicator_text=none, indicator_text=none,
suffix_text=none,
display=true display=true
) -%} ) -%}
@ -19,13 +20,20 @@
{% if (field.type != 'HiddenField' and field.type !='CSRFTokenField') and label_visible %} {% if (field.type != 'HiddenField' and field.type !='CSRFTokenField') and label_visible %}
{{ field.label() }} {{ field.label() }}
{% if field.description %}
<div>{{ field.description }}</div>
{% endif %}
{% endif %} {% endif %}
{% set lock_indicator = field.render_kw and ("readonly" in field.render_kw or "disabled" in field.render_kw) %} {% set lock_indicator = field.render_kw and ("readonly" in field.render_kw or "disabled" in field.render_kw) %}
{% set required_indicator = "required" in field.flags %} {% set required_indicator = "required" in field.flags %}
{% set corner_indicator = not noindicator and (indicator_icon or lock_indicator or required_indicator) %}
{% set labeled = suffix_text or corner_indicator %}
<div class="ui <div class="ui
{% if not noindicator and (indicator_icon or lock_indicator or required_indicator) %}corner labeled{% endif %} {% if suffix_text %}right{% endif %}
{% if corner_indicator %}corner{% endif %}
{% if labeled %}labeled{% endif %}
{% if icon %}left icon {% endif %} {% if icon %}left icon {% endif %}
{% if field.type not in ("BooleanField", "RadioField") %}input{% endif %} {% if field.type not in ("BooleanField", "RadioField") %}input{% endif %}
"> ">
@ -39,6 +47,12 @@
{{ field(class_="ui fluid dropdown multiple", **kwargs) }} {{ field(class_="ui fluid dropdown multiple", **kwargs) }}
{% endif %} {% endif %}
{% if suffix_text %}
<div class="ui basic label">
{{ suffix_text }}{% if corner_indicator %}&emsp;{% endif %}
</div>
{% endif %}
{% if not noindicator %} {% if not noindicator %}
{% if indicator_icon %} {% if indicator_icon %}
<div class="ui corner label"{% if indicator_text %} title="{{ indicator_text }}"{% endif %}> <div class="ui corner label"{% if indicator_text %} title="{{ indicator_text }}"{% endif %}>

View file

@ -95,9 +95,17 @@
class="ui form" class="ui form"
> >
{{ form.hidden_tag() if form.hidden_tag }} {{ form.hidden_tag() if form.hidden_tag }}
{% block uid_field scoped %}
{{ fui.render_field(form.uid, icon="user") }} {{ fui.render_field(form.uid, icon="user") }}
{% endblock %}
{% block mail_field scoped %}
{{ fui.render_field(form.mail, icon="mail") }} {{ fui.render_field(form.mail, icon="mail") }}
{% endblock %}
{% block groups_field scoped %}
{{ fui.render_field(form.groups, icon="users") }} {{ fui.render_field(form.groups, icon="users") }}
{% endblock %}
<div class="ui right aligned container"> <div class="ui right aligned container">
<div class="ui stackable buttons"> <div class="ui stackable buttons">

View file

@ -26,9 +26,10 @@
> >
{{ form.hidden_tag() if form.hidden_tag }} {{ form.hidden_tag() if form.hidden_tag }}
{{ sui.render_field(form.login, icon="user", noindicator=true) }} {% block login_field scoped %}{{ sui.render_field(form.login, icon="user", noindicator=true) }}{% endblock %}
{% if "password" in form %} {% if "password" in form %}
{{ sui.render_field(form.password, icon="key", noindicator=true) }} {% block password_field scoped %}{{ sui.render_field(form.password, icon="key", noindicator=true) }}{% endblock %}
{% endif %} {% endif %}
<div class="ui right aligned container"> <div class="ui right aligned container">

View file

@ -82,6 +82,7 @@
{% if "jpegPhoto" in form %} {% if "jpegPhoto" in form %}
<div class="ui grid"> <div class="ui grid">
<div class="three wide column"> <div class="three wide column">
{% block photo_field scoped %}
{{ render_field(form.jpegPhoto, display=false, class="photo-field") }} {{ render_field(form.jpegPhoto, display=false, class="photo-field") }}
{{ render_field(form.jpegPhoto_delete, display=false, class="photo-delete-button") }} {{ render_field(form.jpegPhoto_delete, display=false, class="photo-delete-button") }}
{% set photo = edited_user.jpegPhoto and edited_user.jpegPhoto[0] %} {% set photo = edited_user.jpegPhoto and edited_user.jpegPhoto[0] %}
@ -104,52 +105,58 @@
<i class="massive centered portrait icon"></i> <i class="massive centered portrait icon"></i>
</label> </label>
</div> </div>
{% endblock %}
<div class="thirteen wide column"> <div class="thirteen wide column">
{% endif %} {% endif %}
<div class="two fields"> <div class="two fields">
{% if "givenName" in form %} {% if "givenName" in form %}
{{ render_field(form.givenName) }} {% block given_name_field scoped %}{{ render_field(form.givenName) }}{% endblock %}
{% endif %} {% endif %}
{% if "sn" in form %} {% if "sn" in form %}
{{ render_field(form.sn) }} {% block sn_field scoped %}{{ render_field(form.sn) }}{% endblock %}
{% endif %} {% endif %}
</div> </div>
{% if "mail" in form %} {% if "mail" in form %}
{{ render_field(form.mail) }} {% block mail_field scoped %}{{ render_field(form.mail) }}{% endblock %}
{% endif %} {% endif %}
{% if "jpegPhoto" in form %}</div></div>{% endif %} {% if "jpegPhoto" in form %}</div></div>{% endif %}
{% if "telephoneNumber" in form %} {% if "telephoneNumber" in form %}
{{ render_field(form.telephoneNumber) }} {% block telephone_number_field scoped %}{{ render_field(form.telephoneNumber) }}{% endblock %}
{% endif %} {% endif %}
{% if "employeeNumber" in form %} {% if "employeeNumber" in form %}
{{ render_field(form.employeeNumber) }} {% block employee_number_field scoped %}{{ render_field(form.employeeNumber) }}{% endblock %}
{% endif %} {% endif %}
{% if "labeledURI" in form %} {% if "labeledURI" in form %}
{{ render_field(form.labeledURI) }} {% block labeled_uri_field scoped %}{{ render_field(form.labeledURI) }}{% endblock %}
{% endif %} {% endif %}
<h4 class="ui dividing header">{% trans %}Account information{% endtrans %}</h4> <h4 class="ui dividing header">{% trans %}Account information{% endtrans %}</h4>
{% if "uid" in form %} {% if "uid" in form %}
{{ render_field(form.uid) }} {% block uid_field scoped %}{{ render_field(form.uid) }}{% endblock %}
{% endif %} {% endif %}
{% if "groups" in form %} {% if "groups" in form %}
{{ render_field(form.groups) }} {% block groups_field scoped %}{{ render_field(form.groups) }}{% endblock %}
{% endif %} {% endif %}
<div class="two fields">
{% if "password1" in form %} {% if "password1" in form %}
{% block password_field scoped %}
<div class="two fields">
{{ render_field(form.password1, noindicator=true) }} {{ render_field(form.password1, noindicator=true) }}
{{ render_field(form.password2, noindicator=true) }} {{ render_field(form.password2, noindicator=true) }}
{% endif %}
</div> </div>
{% endblock %}
{% endif %}
{% if user.can_manage_users %} {% if user.can_manage_users %}

View file

@ -2,18 +2,18 @@
# Copyright (C) 2020 ORGANIZATION # Copyright (C) 2020 ORGANIZATION
# This file is distributed under the same license as the PROJECT project. # This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020. # FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
# Camille <camille@yaal.coop>, 2021.
# Éloi Rivard <eloi.rivard@aquilenet.fr>, 2020-2021. # Éloi Rivard <eloi.rivard@aquilenet.fr>, 2020-2021.
# Camille <camille@yaal.coop>, 2021.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: contact@yaal.fr\n" "Report-Msgid-Bugs-To: contact@yaal.fr\n"
"POT-Creation-Date: 2021-12-13 23:42+0100\n" "POT-Creation-Date: 2021-12-20 16:16+0100\n"
"PO-Revision-Date: 2021-12-13 23:43+0100\n" "PO-Revision-Date: 2021-12-20 16:27+0100\n"
"Last-Translator: Éloi Rivard <eloi.rivard@aquilenet.fr>\n" "Last-Translator: Camille <camille@yaal.coop>\n"
"Language: fr\n" "Language: fr\n"
"Language-Team: French <traduc@traduc.org>\n" "Language-Team: French <contact@yaal.coop>\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -145,7 +145,7 @@ msgstr "Votre mot de passe a correctement été mis à jour."
msgid "John Doe" msgid "John Doe"
msgstr "Camille Dupont" msgstr "Camille Dupont"
#: canaille/apputils.py:42 canaille/forms.py:93 canaille/forms.py:206 #: canaille/apputils.py:42 canaille/forms.py:93 canaille/forms.py:207
msgid "jdoe" msgid "jdoe"
msgstr "cdupont" msgstr "cdupont"
@ -189,28 +189,28 @@ msgstr "L'identifiant '{login}' n'existe pas"
msgid "Login" msgid "Login"
msgstr "Identifiant" msgstr "Identifiant"
#: canaille/forms.py:45 canaille/forms.py:69 canaille/forms.py:117 #: canaille/forms.py:45 canaille/forms.py:69 canaille/forms.py:118
#: canaille/forms.py:217 #: canaille/forms.py:218
msgid "jane@doe.com" msgid "jane@doe.com"
msgstr "camille@dupont.fr" msgstr "camille@dupont.fr"
#: canaille/forms.py:55 canaille/forms.py:78 canaille/forms.py:132 #: canaille/forms.py:55 canaille/forms.py:78 canaille/forms.py:133
msgid "Password" msgid "Password"
msgstr "Mot de passe" msgstr "Mot de passe"
#: canaille/forms.py:81 canaille/forms.py:136 #: canaille/forms.py:81 canaille/forms.py:137
msgid "Password confirmation" msgid "Password confirmation"
msgstr "Confirmation du mot de passe" msgstr "Confirmation du mot de passe"
#: canaille/forms.py:84 canaille/forms.py:139 #: canaille/forms.py:84 canaille/forms.py:140
msgid "Password and confirmation do not match." msgid "Password and confirmation do not match."
msgstr "Le mot de passe et sa confirmation ne correspondent pas." msgstr "Le mot de passe et sa confirmation ne correspondent pas."
#: canaille/forms.py:92 canaille/forms.py:205 #: canaille/forms.py:92 canaille/forms.py:206
msgid "Username" msgid "Username"
msgstr "Identifiant" msgstr "Identifiant"
#: canaille/admin/clients.py:28 canaille/forms.py:96 canaille/forms.py:191 #: canaille/admin/clients.py:28 canaille/forms.py:96 canaille/forms.py:192
#: canaille/templates/admin/client_list.html:23 #: canaille/templates/admin/client_list.html:23
#: canaille/templates/groups.html:17 canaille/templates/userlist.html:11 #: canaille/templates/groups.html:17 canaille/templates/userlist.html:11
msgid "Name" msgid "Name"
@ -232,57 +232,64 @@ msgstr "Nom de famille"
msgid "Doe" msgid "Doe"
msgstr "Dupont" msgstr "Dupont"
#: canaille/forms.py:114 canaille/forms.py:210 #: canaille/forms.py:114 canaille/forms.py:211
msgid "Email address" msgid "Email address"
msgstr "Courriel" msgstr "Courriel"
#: canaille/forms.py:123 #: canaille/forms.py:116
msgid ""
"This email will be used as a recovery address to reset the password if needed"
msgstr ""
"Cette adresse servira d'adresse e-mail de récupération pour recevoir un e-"
"mail de réinitialisation de mot de passe en cas de besoin"
#: canaille/forms.py:124
msgid "Phone number" msgid "Phone number"
msgstr "Numéro de téléphone" msgstr "Numéro de téléphone"
#: canaille/forms.py:123 #: canaille/forms.py:124
msgid "555-000-555" msgid "555-000-555"
msgstr "06 01 02 03 04" msgstr "06 01 02 03 04"
#: canaille/forms.py:126 #: canaille/forms.py:127
msgid "Photo" msgid "Photo"
msgstr "Photo" msgstr "Photo"
#: canaille/forms.py:130 canaille/templates/profile.html:94 #: canaille/forms.py:131 canaille/templates/profile.html:95
msgid "Delete the photo" msgid "Delete the photo"
msgstr "Supprimer la photo" msgstr "Supprimer la photo"
#: canaille/forms.py:144 #: canaille/forms.py:145
msgid "Number" msgid "Number"
msgstr "Numéro" msgstr "Numéro"
#: canaille/forms.py:146 #: canaille/forms.py:147
msgid "1234" msgid "1234"
msgstr "1234" msgstr "1234"
#: canaille/forms.py:150 #: canaille/forms.py:151
msgid "Website" msgid "Website"
msgstr "Site internet" msgstr "Site internet"
#: canaille/forms.py:152 #: canaille/forms.py:153
msgid "https://mywebsite.tld" msgid "https://mywebsite.tld"
msgstr "https://mon-site-internet.fr" msgstr "https://mon-site-internet.fr"
#: canaille/forms.py:176 canaille/forms.py:223 #: canaille/forms.py:177 canaille/forms.py:224
#: canaille/templates/groups.html:11 canaille/templates/userlist.html:17 #: canaille/templates/groups.html:11 canaille/templates/userlist.html:17
#: canaille/themes/default/base.html:59 #: canaille/themes/default/base.html:59
msgid "Groups" msgid "Groups"
msgstr "Groupes" msgstr "Groupes"
#: canaille/forms.py:178 #: canaille/forms.py:179
msgid "users, admins ..." msgid "users, admins ..."
msgstr "utilisateurs, administrateurs ..." msgstr "utilisateurs, administrateurs ..."
#: canaille/forms.py:194 #: canaille/forms.py:195
msgid "group" msgid "group"
msgstr "groupe" msgstr "groupe"
#: canaille/forms.py:198 canaille/templates/groups.html:18 #: canaille/forms.py:199 canaille/templates/groups.html:18
msgid "Description" msgid "Description"
msgstr "Description" msgstr "Description"
@ -572,16 +579,16 @@ msgstr "Envoyer le courriel d'initialisation"
#: canaille/templates/admin/client_edit.html:35 #: canaille/templates/admin/client_edit.html:35
#: canaille/templates/admin/client_edit.html:44 #: canaille/templates/admin/client_edit.html:44
#: canaille/templates/admin/client_edit.html:53 #: canaille/templates/admin/client_edit.html:53
#: canaille/templates/fomanticui.html:48 #: canaille/templates/fomanticui.html:62
msgid "This field is not editable" msgid "This field is not editable"
msgstr "Ce champ n'est pas modifiable" msgstr "Ce champ n'est pas modifiable"
#: canaille/templates/fomanticui.html:52 #: canaille/templates/fomanticui.html:66
msgid "This field is required" msgid "This field is required"
msgstr "Ce champ est requis" msgstr "Ce champ est requis"
#: canaille/templates/forgotten-password.html:11 #: canaille/templates/forgotten-password.html:11
#: canaille/templates/login.html:37 canaille/templates/password.html:35 #: canaille/templates/login.html:42 canaille/templates/password.html:35
msgid "Forgotten password" msgid "Forgotten password"
msgstr "Mot de passe oublié" msgstr "Mot de passe oublié"
@ -603,7 +610,7 @@ msgstr ""
" " " "
#: canaille/templates/forgotten-password.html:38 #: canaille/templates/forgotten-password.html:38
#: canaille/templates/profile.html:180 canaille/templates/profile.html:208 #: canaille/templates/profile.html:202 canaille/templates/profile.html:230
msgid "Send again" msgid "Send again"
msgstr "Envoyer à nouveau" msgstr "Envoyer à nouveau"
@ -667,7 +674,7 @@ msgstr "Supprimer le groupe"
msgid "Create group" msgid "Create group"
msgstr "Créer le groupe" msgstr "Créer le groupe"
#: canaille/templates/group.html:82 canaille/templates/profile.html:248 #: canaille/templates/group.html:82 canaille/templates/profile.html:270
msgid "Submit" msgid "Submit"
msgstr "Valider" msgstr "Valider"
@ -734,7 +741,7 @@ msgstr ""
msgid "Copy" msgid "Copy"
msgstr "Copier" msgstr "Copier"
#: canaille/templates/invite.html:62 canaille/templates/invite.html:105 #: canaille/templates/invite.html:62 canaille/templates/invite.html:113
msgid "Create a user" msgid "Create a user"
msgstr "Créer un utilisateur" msgstr "Créer un utilisateur"
@ -759,11 +766,11 @@ msgstr ""
"recevra un email contenant un lien lui permettant de créer un compte " "recevra un email contenant un lien lui permettant de créer un compte "
"utilisateur." "utilisateur."
#: canaille/templates/invite.html:108 #: canaille/templates/invite.html:116
msgid "Generate a link" msgid "Generate a link"
msgstr "Générer un lien" msgstr "Générer un lien"
#: canaille/templates/invite.html:111 #: canaille/templates/invite.html:119
msgid "Send the invitation" msgid "Send the invitation"
msgstr "Envoyer l'invitation" msgstr "Envoyer l'invitation"
@ -776,7 +783,7 @@ msgstr "Connexion à %(website)s"
msgid "Log-in and manage your authorizations." msgid "Log-in and manage your authorizations."
msgstr "Connectez-vous et gérez vos autorisations." msgstr "Connectez-vous et gérez vos autorisations."
#: canaille/templates/login.html:39 #: canaille/templates/login.html:44
msgid "Continue" msgid "Continue"
msgstr "Continuer" msgstr "Continuer"
@ -854,27 +861,27 @@ msgstr "Éditez les informations d'un utilisateur"
msgid "Personal information" msgid "Personal information"
msgstr "Informations personnelles" msgstr "Informations personnelles"
#: canaille/templates/profile.html:91 canaille/templates/profile.html:102 #: canaille/templates/profile.html:92 canaille/templates/profile.html:103
msgid "Click to upload a photo" msgid "Click to upload a photo"
msgstr "Cliquez pour mettre en ligne une photo" msgstr "Cliquez pour mettre en ligne une photo"
#: canaille/templates/profile.html:138 #: canaille/templates/profile.html:153
msgid "Account information" msgid "Account information"
msgstr "Informations sur le compte" msgstr "Informations sur le compte"
#: canaille/templates/profile.html:160 #: canaille/templates/profile.html:182
msgid "User password is not mandatory" msgid "User password is not mandatory"
msgstr "Le mot de passe utilisateur n'est pas requis à la création" msgstr "Le mot de passe utilisateur n'est pas requis à la création"
#: canaille/templates/profile.html:163 #: canaille/templates/profile.html:185
msgid "The user password can be set:" msgid "The user password can be set:"
msgstr "Il pourra être renseigné :" msgstr "Il pourra être renseigné :"
#: canaille/templates/profile.html:165 #: canaille/templates/profile.html:187
msgid "by filling this form;" msgid "by filling this form;"
msgstr "en remplissant ce formulaire ;" msgstr "en remplissant ce formulaire ;"
#: canaille/templates/profile.html:166 #: canaille/templates/profile.html:188
msgid "" msgid ""
"by sending the user a password initialization mail, after the account " "by sending the user a password initialization mail, after the account "
"creation;" "creation;"
@ -882,7 +889,7 @@ msgstr ""
"en envoyant un lien d'initialisation de mot de passe, par mail à " "en envoyant un lien d'initialisation de mot de passe, par mail à "
"l'utilisateur, après la création de son compte;" "l'utilisateur, après la création de son compte;"
#: canaille/templates/profile.html:167 canaille/templates/profile.html:196 #: canaille/templates/profile.html:189 canaille/templates/profile.html:218
msgid "" msgid ""
"or simply waiting for the user to sign-in a first time, and then receive a " "or simply waiting for the user to sign-in a first time, and then receive a "
"password initialization mail." "password initialization mail."
@ -890,46 +897,46 @@ msgstr ""
"ou simplement en attendant la première connexion de l'utilisateur, afin " "ou simplement en attendant la première connexion de l'utilisateur, afin "
"qu'il reçoive un lien d'initialisation de mot de passe par email." "qu'il reçoive un lien d'initialisation de mot de passe par email."
#: canaille/templates/profile.html:170 canaille/templates/profile.html:199 #: canaille/templates/profile.html:192 canaille/templates/profile.html:221
msgid "The user will not be able to authenticate unless the password is set" msgid "The user will not be able to authenticate unless the password is set"
msgstr "" msgstr ""
"L'utilisateur ne pourra pas se connecter tant que son mot de passe n'est pas " "L'utilisateur ne pourra pas se connecter tant que son mot de passe n'est pas "
"défini" "défini"
#: canaille/templates/profile.html:184 #: canaille/templates/profile.html:206
msgid "Send email" msgid "Send email"
msgstr "Envoyer l'email" msgstr "Envoyer l'email"
#: canaille/templates/profile.html:189 #: canaille/templates/profile.html:211
msgid "This user does not have a password yet" msgid "This user does not have a password yet"
msgstr "L'utilisateur n'a pas encore de mot de passe" msgstr "L'utilisateur n'a pas encore de mot de passe"
#: canaille/templates/profile.html:192 #: canaille/templates/profile.html:214
msgid "You can solve this by:" msgid "You can solve this by:"
msgstr "Vous pouvez régler ceci en :" msgstr "Vous pouvez régler ceci en :"
#: canaille/templates/profile.html:194 #: canaille/templates/profile.html:216
msgid "setting a password using this form;" msgid "setting a password using this form;"
msgstr "renseignant un mot de passe via ce formulaire ;" msgstr "renseignant un mot de passe via ce formulaire ;"
#: canaille/templates/profile.html:195 #: canaille/templates/profile.html:217
msgid "" msgid ""
"sending the user a password initialization mail, by clicking this button;" "sending the user a password initialization mail, by clicking this button;"
msgstr "" msgstr ""
"envoyant un lien d'initialisation de mot de passe, par mail à l'utilisateur, " "envoyant un lien d'initialisation de mot de passe, par mail à l'utilisateur, "
"en cliquant sur ce bouton;" "en cliquant sur ce bouton;"
#: canaille/templates/profile.html:210 #: canaille/templates/profile.html:232
msgid "Send mail" msgid "Send mail"
msgstr "Envoyer l'email" msgstr "Envoyer l'email"
#: canaille/templates/admin/mails.html:34 canaille/templates/profile.html:214 #: canaille/templates/admin/mails.html:34 canaille/templates/profile.html:236
#: canaille/templates/reset-password.html:11 #: canaille/templates/reset-password.html:11
#: canaille/templates/reset-password.html:16 #: canaille/templates/reset-password.html:16
msgid "Password reset" msgid "Password reset"
msgstr "Réinitialisation du mot de passe" msgstr "Réinitialisation du mot de passe"
#: canaille/templates/profile.html:216 #: canaille/templates/profile.html:238
msgid "" msgid ""
"If the user has forgotten his password, you can send him a password reset " "If the user has forgotten his password, you can send him a password reset "
"email by clicking this button." "email by clicking this button."
@ -937,19 +944,19 @@ msgstr ""
"Si l'utilisateur a oublié son mot de passe, vous pouvez lui envoyer un email " "Si l'utilisateur a oublié son mot de passe, vous pouvez lui envoyer un email "
"contenant un lien de réinitilisation en cliquant sur ce bouton." "contenant un lien de réinitilisation en cliquant sur ce bouton."
#: canaille/templates/profile.html:228 #: canaille/templates/profile.html:250
msgid "Delete the user" msgid "Delete the user"
msgstr "Supprimer l'utilisateur" msgstr "Supprimer l'utilisateur"
#: canaille/templates/profile.html:230 #: canaille/templates/profile.html:252
msgid "Delete my account" msgid "Delete my account"
msgstr "Supprimer mon compte" msgstr "Supprimer mon compte"
#: canaille/templates/profile.html:237 #: canaille/templates/profile.html:259
msgid "Impersonate" msgid "Impersonate"
msgstr "Prendre l'identité" msgstr "Prendre l'identité"
#: canaille/templates/profile.html:243 canaille/templates/users.html:20 #: canaille/templates/profile.html:265 canaille/templates/users.html:20
msgid "Invite a user" msgid "Invite a user"
msgstr "Inviter un utilisateur" msgstr "Inviter un utilisateur"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-12-13 23:42+0100\n" "POT-Creation-Date: 2021-12-20 16:16+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -132,7 +132,7 @@ msgstr ""
msgid "John Doe" msgid "John Doe"
msgstr "" msgstr ""
#: canaille/apputils.py:42 canaille/forms.py:93 canaille/forms.py:206 #: canaille/apputils.py:42 canaille/forms.py:93 canaille/forms.py:207
msgid "jdoe" msgid "jdoe"
msgstr "" msgstr ""
@ -176,28 +176,28 @@ msgstr ""
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: canaille/forms.py:45 canaille/forms.py:69 canaille/forms.py:117 #: canaille/forms.py:45 canaille/forms.py:69 canaille/forms.py:118
#: canaille/forms.py:217 #: canaille/forms.py:218
msgid "jane@doe.com" msgid "jane@doe.com"
msgstr "" msgstr ""
#: canaille/forms.py:55 canaille/forms.py:78 canaille/forms.py:132 #: canaille/forms.py:55 canaille/forms.py:78 canaille/forms.py:133
msgid "Password" msgid "Password"
msgstr "" msgstr ""
#: canaille/forms.py:81 canaille/forms.py:136 #: canaille/forms.py:81 canaille/forms.py:137
msgid "Password confirmation" msgid "Password confirmation"
msgstr "" msgstr ""
#: canaille/forms.py:84 canaille/forms.py:139 #: canaille/forms.py:84 canaille/forms.py:140
msgid "Password and confirmation do not match." msgid "Password and confirmation do not match."
msgstr "" msgstr ""
#: canaille/forms.py:92 canaille/forms.py:205 #: canaille/forms.py:92 canaille/forms.py:206
msgid "Username" msgid "Username"
msgstr "" msgstr ""
#: canaille/admin/clients.py:28 canaille/forms.py:96 canaille/forms.py:191 #: canaille/admin/clients.py:28 canaille/forms.py:96 canaille/forms.py:192
#: canaille/templates/admin/client_list.html:23 #: canaille/templates/admin/client_list.html:23
#: canaille/templates/groups.html:17 canaille/templates/userlist.html:11 #: canaille/templates/groups.html:17 canaille/templates/userlist.html:11
msgid "Name" msgid "Name"
@ -219,57 +219,63 @@ msgstr ""
msgid "Doe" msgid "Doe"
msgstr "" msgstr ""
#: canaille/forms.py:114 canaille/forms.py:210 #: canaille/forms.py:114 canaille/forms.py:211
msgid "Email address" msgid "Email address"
msgstr "" msgstr ""
#: canaille/forms.py:123 #: canaille/forms.py:116
msgid ""
"This email will be used as a recovery address to reset the password if "
"needed"
msgstr ""
#: canaille/forms.py:124
msgid "Phone number" msgid "Phone number"
msgstr "" msgstr ""
#: canaille/forms.py:123 #: canaille/forms.py:124
msgid "555-000-555" msgid "555-000-555"
msgstr "" msgstr ""
#: canaille/forms.py:126 #: canaille/forms.py:127
msgid "Photo" msgid "Photo"
msgstr "" msgstr ""
#: canaille/forms.py:130 canaille/templates/profile.html:94 #: canaille/forms.py:131 canaille/templates/profile.html:95
msgid "Delete the photo" msgid "Delete the photo"
msgstr "" msgstr ""
#: canaille/forms.py:144 #: canaille/forms.py:145
msgid "Number" msgid "Number"
msgstr "" msgstr ""
#: canaille/forms.py:146 #: canaille/forms.py:147
msgid "1234" msgid "1234"
msgstr "" msgstr ""
#: canaille/forms.py:150 #: canaille/forms.py:151
msgid "Website" msgid "Website"
msgstr "" msgstr ""
#: canaille/forms.py:152 #: canaille/forms.py:153
msgid "https://mywebsite.tld" msgid "https://mywebsite.tld"
msgstr "" msgstr ""
#: canaille/forms.py:176 canaille/forms.py:223 #: canaille/forms.py:177 canaille/forms.py:224
#: canaille/templates/groups.html:11 canaille/templates/userlist.html:17 #: canaille/templates/groups.html:11 canaille/templates/userlist.html:17
#: canaille/themes/default/base.html:59 #: canaille/themes/default/base.html:59
msgid "Groups" msgid "Groups"
msgstr "" msgstr ""
#: canaille/forms.py:178 #: canaille/forms.py:179
msgid "users, admins ..." msgid "users, admins ..."
msgstr "" msgstr ""
#: canaille/forms.py:194 #: canaille/forms.py:195
msgid "group" msgid "group"
msgstr "" msgstr ""
#: canaille/forms.py:198 canaille/templates/groups.html:18 #: canaille/forms.py:199 canaille/templates/groups.html:18
msgid "Description" msgid "Description"
msgstr "" msgstr ""
@ -552,16 +558,16 @@ msgstr ""
#: canaille/templates/admin/client_edit.html:35 #: canaille/templates/admin/client_edit.html:35
#: canaille/templates/admin/client_edit.html:44 #: canaille/templates/admin/client_edit.html:44
#: canaille/templates/admin/client_edit.html:53 #: canaille/templates/admin/client_edit.html:53
#: canaille/templates/fomanticui.html:48 #: canaille/templates/fomanticui.html:62
msgid "This field is not editable" msgid "This field is not editable"
msgstr "" msgstr ""
#: canaille/templates/fomanticui.html:52 #: canaille/templates/fomanticui.html:66
msgid "This field is required" msgid "This field is required"
msgstr "" msgstr ""
#: canaille/templates/forgotten-password.html:11 #: canaille/templates/forgotten-password.html:11
#: canaille/templates/login.html:37 canaille/templates/password.html:35 #: canaille/templates/login.html:42 canaille/templates/password.html:35
msgid "Forgotten password" msgid "Forgotten password"
msgstr "" msgstr ""
@ -577,7 +583,7 @@ msgid ""
msgstr "" msgstr ""
#: canaille/templates/forgotten-password.html:38 #: canaille/templates/forgotten-password.html:38
#: canaille/templates/profile.html:180 canaille/templates/profile.html:208 #: canaille/templates/profile.html:202 canaille/templates/profile.html:230
msgid "Send again" msgid "Send again"
msgstr "" msgstr ""
@ -636,7 +642,7 @@ msgstr ""
msgid "Create group" msgid "Create group"
msgstr "" msgstr ""
#: canaille/templates/group.html:82 canaille/templates/profile.html:248 #: canaille/templates/group.html:82 canaille/templates/profile.html:270
msgid "Submit" msgid "Submit"
msgstr "" msgstr ""
@ -698,7 +704,7 @@ msgstr ""
msgid "Copy" msgid "Copy"
msgstr "" msgstr ""
#: canaille/templates/invite.html:62 canaille/templates/invite.html:105 #: canaille/templates/invite.html:62 canaille/templates/invite.html:113
msgid "Create a user" msgid "Create a user"
msgstr "" msgstr ""
@ -719,11 +725,11 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: canaille/templates/invite.html:108 #: canaille/templates/invite.html:116
msgid "Generate a link" msgid "Generate a link"
msgstr "" msgstr ""
#: canaille/templates/invite.html:111 #: canaille/templates/invite.html:119
msgid "Send the invitation" msgid "Send the invitation"
msgstr "" msgstr ""
@ -736,7 +742,7 @@ msgstr ""
msgid "Log-in and manage your authorizations." msgid "Log-in and manage your authorizations."
msgstr "" msgstr ""
#: canaille/templates/login.html:39 #: canaille/templates/login.html:44
msgid "Continue" msgid "Continue"
msgstr "" msgstr ""
@ -810,91 +816,91 @@ msgstr ""
msgid "Personal information" msgid "Personal information"
msgstr "" msgstr ""
#: canaille/templates/profile.html:91 canaille/templates/profile.html:102 #: canaille/templates/profile.html:92 canaille/templates/profile.html:103
msgid "Click to upload a photo" msgid "Click to upload a photo"
msgstr "" msgstr ""
#: canaille/templates/profile.html:138 #: canaille/templates/profile.html:153
msgid "Account information" msgid "Account information"
msgstr "" msgstr ""
#: canaille/templates/profile.html:160 #: canaille/templates/profile.html:182
msgid "User password is not mandatory" msgid "User password is not mandatory"
msgstr "" msgstr ""
#: canaille/templates/profile.html:163 #: canaille/templates/profile.html:185
msgid "The user password can be set:" msgid "The user password can be set:"
msgstr "" msgstr ""
#: canaille/templates/profile.html:165 #: canaille/templates/profile.html:187
msgid "by filling this form;" msgid "by filling this form;"
msgstr "" msgstr ""
#: canaille/templates/profile.html:166 #: canaille/templates/profile.html:188
msgid "" msgid ""
"by sending the user a password initialization mail, after the account " "by sending the user a password initialization mail, after the account "
"creation;" "creation;"
msgstr "" msgstr ""
#: canaille/templates/profile.html:167 canaille/templates/profile.html:196 #: canaille/templates/profile.html:189 canaille/templates/profile.html:218
msgid "" msgid ""
"or simply waiting for the user to sign-in a first time, and then receive " "or simply waiting for the user to sign-in a first time, and then receive "
"a password initialization mail." "a password initialization mail."
msgstr "" msgstr ""
#: canaille/templates/profile.html:170 canaille/templates/profile.html:199 #: canaille/templates/profile.html:192 canaille/templates/profile.html:221
msgid "The user will not be able to authenticate unless the password is set" msgid "The user will not be able to authenticate unless the password is set"
msgstr "" msgstr ""
#: canaille/templates/profile.html:184 #: canaille/templates/profile.html:206
msgid "Send email" msgid "Send email"
msgstr "" msgstr ""
#: canaille/templates/profile.html:189 #: canaille/templates/profile.html:211
msgid "This user does not have a password yet" msgid "This user does not have a password yet"
msgstr "" msgstr ""
#: canaille/templates/profile.html:192 #: canaille/templates/profile.html:214
msgid "You can solve this by:" msgid "You can solve this by:"
msgstr "" msgstr ""
#: canaille/templates/profile.html:194 #: canaille/templates/profile.html:216
msgid "setting a password using this form;" msgid "setting a password using this form;"
msgstr "" msgstr ""
#: canaille/templates/profile.html:195 #: canaille/templates/profile.html:217
msgid "sending the user a password initialization mail, by clicking this button;" msgid "sending the user a password initialization mail, by clicking this button;"
msgstr "" msgstr ""
#: canaille/templates/profile.html:210 #: canaille/templates/profile.html:232
msgid "Send mail" msgid "Send mail"
msgstr "" msgstr ""
#: canaille/templates/admin/mails.html:34 canaille/templates/profile.html:214 #: canaille/templates/admin/mails.html:34 canaille/templates/profile.html:236
#: canaille/templates/reset-password.html:11 #: canaille/templates/reset-password.html:11
#: canaille/templates/reset-password.html:16 #: canaille/templates/reset-password.html:16
msgid "Password reset" msgid "Password reset"
msgstr "" msgstr ""
#: canaille/templates/profile.html:216 #: canaille/templates/profile.html:238
msgid "" msgid ""
"If the user has forgotten his password, you can send him a password reset" "If the user has forgotten his password, you can send him a password reset"
" email by clicking this button." " email by clicking this button."
msgstr "" msgstr ""
#: canaille/templates/profile.html:228 #: canaille/templates/profile.html:250
msgid "Delete the user" msgid "Delete the user"
msgstr "" msgstr ""
#: canaille/templates/profile.html:230 #: canaille/templates/profile.html:252
msgid "Delete my account" msgid "Delete my account"
msgstr "" msgstr ""
#: canaille/templates/profile.html:237 #: canaille/templates/profile.html:259
msgid "Impersonate" msgid "Impersonate"
msgstr "" msgstr ""
#: canaille/templates/profile.html:243 canaille/templates/users.html:20 #: canaille/templates/profile.html:265 canaille/templates/users.html:20
msgid "Invite a user" msgid "Invite a user"
msgstr "" msgstr ""