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 }} »

{{ t.title }}

+{% endblock %} + +{% block content %} +
+

Édition du topic {{ t.title }}

+ +
+

Commenter le sujet

+
+ Un formulaire +
+
+
+{% endblock %} diff --git a/migrations/versions/c40b1f0ed821_ajout_d_un_id_d_avatar_42.py b/migrations/versions/c40b1f0ed821_ajout_d_un_id_d_avatar_42.py new file mode 100644 index 0000000..c3a40f3 --- /dev/null +++ b/migrations/versions/c40b1f0ed821_ajout_d_un_id_d_avatar_42.py @@ -0,0 +1,29 @@ +"""Ajout d'un ID d'avatar (#42) + +Revision ID: c40b1f0ed821 +Revises: c665488fc26e +Create Date: 2019-12-22 14:46:40.598673 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'c40b1f0ed821' +down_revision = 'c665488fc26e' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('member', sa.Column('avatar_id', sa.Integer(), + nullable=False, server_default='0')) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('member', 'avatar_id') + # ### end Alembic commands ###