add created_utc column to badges for ordering them on userpages

remotes/1693045480750635534/spooky-22
Aevann1 2022-06-10 23:40:43 +02:00
parent 7848b12fdd
commit 545f276940
2 changed files with 9 additions and 2 deletions

View File

@ -6,6 +6,7 @@ from files.helpers.lazy import lazy
from files.helpers.const import *
from datetime import datetime
from json import loads
import time
class BadgeDef(Base):
__tablename__ = "badge_defs"
@ -26,10 +27,16 @@ class Badge(Base):
badge_id = Column(Integer, ForeignKey('badge_defs.id'), primary_key=True)
description = Column(String)
url = Column(String)
created_utc = Column(Integer)
user = relationship("User", viewonly=True)
badge = relationship("BadgeDef", primaryjoin="foreign(Badge.badge_id) == remote(BadgeDef.id)", viewonly=True)
def __init__(self, *args, **kwargs):
if "created_utc" not in kwargs:
kwargs["created_utc"] = int(time.time())
super().__init__(*args, **kwargs)
def __repr__(self):
return f"<Badge(user_id={self.user_id}, badge_id={self.badge_id})>"

View File

@ -132,7 +132,7 @@ class User(Base):
total_held_lottery_tickets = Column(Integer, default=0)
total_lottery_winnings = Column(Integer, default=0)
badges = relationship("Badge", viewonly=True)
badges = relationship("Badge", order_by="Badge.created_utc", viewonly=True)
subscriptions = relationship("Subscription", viewonly=True)
following = relationship("Follow", primaryjoin="Follow.user_id==User.id", viewonly=True)
followers = relationship("Follow", primaryjoin="Follow.target_id==User.id", viewonly=True)
@ -692,4 +692,4 @@ class User(Base):
@property
@lazy
def lottery_stats(self):
return { "winnings": self.total_lottery_winnings, "ticketsHeld": { "current": self.currently_held_lottery_tickets , "total": self.total_held_lottery_tickets } }
return { "winnings": self.total_lottery_winnings, "ticketsHeld": { "current": self.currently_held_lottery_tickets , "total": self.total_held_lottery_tickets } }