forked from rDrama/rDrama
fix delinking alts
parent
543c117e2d
commit
7f1ddf5c0c
|
@ -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
|
||||
|
|
|
@ -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('/@<username>/alts/')
|
||||
@limiter.limit(DEFAULT_RATELIMIT_SLOWER)
|
||||
|
|
|
@ -40,8 +40,8 @@
|
|||
<td>{{user._alt_created_utc|timestamp}}</td>
|
||||
<td>{{user._is_manual}}</td>
|
||||
<td>
|
||||
<button type="button" id="delink-alt-{{u.id}}-{{user.id}}" class="btn btn-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/@{{u.username}}/alts/{{user.id}}/deleted', 'delink-alt-{{u.id}}-{{user.id}}', 'relink-alt-{{u.id}}-{{user.id}}', 'd-none', null, 'PUT')">Delink</button>
|
||||
<button type="button" id="relink-alt-{{u.id}}-{{user.id}}" class="btn btn-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/@{{u.username}}/alts/{{user.id}}/deleted', 'relink-alt-{{u.id}}-{{user.id}}', 'delink-alt-{{u.id}}-{{user.id}}', 'd-none', null, 'DELETE')">Relink</button>
|
||||
<button type="button" id="delink-alt-{{u.id}}-{{user.id}}" class="btn btn-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/@{{u.username}}/alts/{{user.id}}/deleted', 'delink-alt-{{u.id}}-{{user.id}}', 'relink-alt-{{u.id}}-{{user.id}}', 'd-none', {}, 'PUT')">Delink</button>
|
||||
<button type="button" id="relink-alt-{{u.id}}-{{user.id}}" class="btn btn-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/@{{u.username}}/alts/{{user.id}}/deleted', 'relink-alt-{{u.id}}-{{user.id}}', 'delink-alt-{{u.id}}-{{user.id}}', 'd-none', {}, 'DELETE')">Relink</button>
|
||||
<a class="btn btn-secondary" href="/@{{user.username}}/alts">Alts</a>
|
||||
{% if v.admin_level >= PERMS['VIEW_ALT_VOTES'] %}
|
||||
<a class="btn btn-secondary" href="/admin/alt_votes/?u1={{u.username}}&u2={{user.username}}">Alt Votes</a>
|
||||
|
|
Loading…
Reference in New Issue