From 7f1ddf5c0c13fde91d36c9895bd1aeb64ceaaaea Mon Sep 17 00:00:00 2001 From: Aevann Date: Sun, 22 Jan 2023 10:20:38 +0200 Subject: [PATCH] fix delinking alts --- files/classes/user.py | 32 ++++++++++++++++++++++++++++++++ files/routes/admin.py | 4 ++-- files/templates/admin/alts.html | 4 ++-- 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/files/classes/user.py b/files/classes/user.py index 636130686..ae961dc03 100644 --- a/files/classes/user.py +++ b/files/classes/user.py @@ -1092,6 +1092,38 @@ class User(Base): def shadowbanner(self): return g.db.query(User.username).filter_by(id=self.shadowbanned).one()[0] + @property + @lazy + def alts(self): + + subq = g.db.query(Alt).filter( + or_( + Alt.user1 == self.id, + Alt.user2 == self.id + ) + ).subquery() + + data = g.db.query( + User, + aliased(Alt, alias=subq) + ).join( + subq, + or_( + subq.c.user1 == User.id, + subq.c.user2 == User.id + ) + ).filter( + User.id != self.id + ).order_by(User.username).all() + + output = [] + for x in data: + user = x[0] + user._is_manual = x[1].is_manual + output.append(user) + + return output + if IS_FISTMAS(): @property @lazy diff --git a/files/routes/admin.py b/files/routes/admin.py index 4373d42c0..3ccb28759 100644 --- a/files/routes/admin.py +++ b/files/routes/admin.py @@ -757,8 +757,8 @@ def alt_votes_get(v): @limiter.limit(DEFAULT_RATELIMIT_SLOWER, key_func=get_ID) @admin_level_required(PERMS['USER_LINK']) def admin_view_alts(v:User, username=None): - u = get_user(username or request.values.get('username'), graceful=True) - return render_template('admin/alts.html', v=v, u=u, alts=get_alt_graph(u.id) if u else None) + u = get_user(username or request.values.get('username')) + return render_template('admin/alts.html', v=v, u=u, alts=u.alts) @app.post('/@/alts/') @limiter.limit(DEFAULT_RATELIMIT_SLOWER) diff --git a/files/templates/admin/alts.html b/files/templates/admin/alts.html index d568756a0..c984c7276 100644 --- a/files/templates/admin/alts.html +++ b/files/templates/admin/alts.html @@ -40,8 +40,8 @@ {{user._alt_created_utc|timestamp}} {{user._is_manual}} - - + + Alts {% if v.admin_level >= PERMS['VIEW_ALT_VOTES'] %} Alt Votes