diff --git a/app/models/users.py b/app/models/users.py index 58bda8c..6281732 100644 --- a/app/models/users.py +++ b/app/models/users.py @@ -1,6 +1,7 @@ from datetime import date from flask import flash from flask_login import UserMixin +from sqlalchemy import func as SQLfunc from os.path import isfile from PIL import Image from app import app, db @@ -77,10 +78,10 @@ class Member(User): xp = db.Column(db.Integer) register_date = db.Column(db.Date, default=date.today) - # Avatars # TODO: rendre ça un peu plus propre + avatar_id = db.Column(db.Integer, default=0) @property def avatar(self): - return str(self.id) + '.png' + return f'{self.id}_{self.avatar_id}.png' @property def level(self): @@ -200,6 +201,11 @@ class Member(User): size = 128, 128 im = Image.open(avatar) im.thumbnail(size, Image.ANTIALIAS) + # TODO: verify concurrency behavior + current_id = db.session.query(SQLfunc.max(Member.avatar_id)).first()[0] + self.avatar_id = current_id + 1 + db.session.merge(self) + db.session.commit() im.save(V5Config.AVATARS_FOLDER + self.avatar, 'PNG') def get_public_data(self): diff --git a/app/templates/forum/edit_topic.html b/app/templates/forum/edit_topic.html new file mode 100644 index 0000000..c078bb8 --- /dev/null +++ b/app/templates/forum/edit_topic.html @@ -0,0 +1,21 @@ +{% extends "base/base.html" %} +{% import "widgets/editor.html" as widget_editor %} +{% import "widgets/member.html" as widget_member %} +{% import "widgets/pagination.html" as widget_pagination with context %} + +{% block title %} +Forum de Planète Casio » {{ t.forum.name }} »