Fix userpage hat counter showing equipped.
Essentially, just needed to not reuse owned_hats.remotes/1693176582716663532/tmp_refs/heads/watchparty
parent
e0f43c3668
commit
4f849c2c36
|
@ -147,11 +147,10 @@ class User(Base):
|
|||
referrals = relationship("User")
|
||||
designed_hats = relationship("HatDef", primaryjoin="User.id==HatDef.author_id", back_populates="author")
|
||||
owned_hats = relationship("Hat", back_populates="owners")
|
||||
hats_equipped = relationship("Hat", lazy="raise", viewonly=True)
|
||||
sub_mods = relationship("Mod", primaryjoin="User.id == Mod.user_id", lazy="raise")
|
||||
sub_exiles = relationship("Exile", primaryjoin="User.id == Exile.user_id", lazy="raise")
|
||||
|
||||
_equipped_hats = None
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
|
||||
if "password" in kwargs:
|
||||
|
@ -220,13 +219,11 @@ class User(Base):
|
|||
|
||||
@property
|
||||
def equipped_hats(self):
|
||||
if self._equipped_hats is None:
|
||||
self._equipped_hats = g.db.query(Hat).filter_by(user_id=self.id, equipped=True).all()
|
||||
return self._equipped_hats
|
||||
|
||||
@equipped_hats.setter
|
||||
def equipped_hats(self, hats):
|
||||
self._equipped_hats = hats
|
||||
try:
|
||||
return self.hats_equipped
|
||||
except:
|
||||
print("except")
|
||||
return g.db.query(Hat).filter_by(user_id=self.id, equipped=True).all()
|
||||
|
||||
@property
|
||||
@lazy
|
||||
|
|
|
@ -177,7 +177,7 @@ def get_posts(pids:Iterable[int], v:Optional[User]=None, eager:bool=False) -> Li
|
|||
if eager:
|
||||
query = query.options(
|
||||
selectinload(Submission.author).options(
|
||||
selectinload(User.owned_hats.and_(Hat.equipped == True)) \
|
||||
selectinload(User.hats_equipped.and_(Hat.equipped == True)) \
|
||||
.joinedload(Hat.hat_def, innerjoin=True),
|
||||
selectinload(User.sub_mods),
|
||||
selectinload(User.sub_exiles),
|
||||
|
@ -195,7 +195,6 @@ def get_posts(pids:Iterable[int], v:Optional[User]=None, eager:bool=False) -> Li
|
|||
output[i].voted = results[i][1] or 0
|
||||
output[i].is_blocking = results[i][2] or 0
|
||||
output[i].is_blocked = results[i][3] or 0
|
||||
output[i].author.equipped_hats = output[i].author.owned_hats
|
||||
else:
|
||||
output = results
|
||||
|
||||
|
|
Loading…
Reference in New Issue