Meilleure gestion des erreurs sur le changement d'avatar

This commit is contained in:
Darks 2019-12-10 00:38:04 +01:00
parent 07f980c207
commit 51d0ce1129
Signed by: Darks
GPG Key ID: F61F10FA138E797C
4 changed files with 15 additions and 8 deletions

View File

@ -193,13 +193,10 @@ class Member(User):
self.xp = data["xp"]
def set_avatar(self, avatar):
try:
size = 128, 128
im = Image.open(avatar)
im.thumbnail(size, Image.ANTIALIAS)
im.save(V5Config.AVATARS_FOLDER + self.avatar, 'PNG')
except IOError:
flash("Avatar invalide", 'error')
size = 128, 128
im = Image.open(avatar)
im.thumbnail(size, Image.ANTIALIAS)
im.save(V5Config.AVATARS_FOLDER + self.avatar, 'PNG')
def get_public_data(self):
"""Returns the public information of the member."""

View File

@ -16,6 +16,9 @@
<img class="avatar" src="{{ url_for('avatar', filename=current_user.avatar) }}" meta="{{ current_user.avatar }}" />
{{ form.avatar }}
</div>
{% for error in form.avatar.errors %}
<span class="msgerror">{{ error }}</span>
{% endfor %}
</div>
<div>
{{ form.email.label }}

View File

@ -17,6 +17,9 @@
<img class="avatar" src="{{ url_for('avatar', filename=user.avatar) }}" meta="{{ user.avatar }}" />
{{ form.avatar }}
</div>
{% for error in form.avatar.errors %}
<span class="msgerror">{{ error }}</span>
{% endfor %}
</div>
<div>

View File

@ -1,5 +1,6 @@
from flask_login import current_user
from wtforms.validators import ValidationError
from PIL import Image
from app.models.users import Member
from app.utils.valid_name import valid_name
from app.utils.unicode_names import normalize
@ -96,7 +97,10 @@ def password(form, password):
def avatar(form, avatar):
pass
try:
Image.open(avatar.data)
except IOError:
raise ValidationError("Avatar invalide")
def old_password(form, field):