forked from rDrama/rDrama
fix delinking alts
parent
543c117e2d
commit
7f1ddf5c0c
|
@ -1092,6 +1092,38 @@ class User(Base):
|
||||||
def shadowbanner(self):
|
def shadowbanner(self):
|
||||||
return g.db.query(User.username).filter_by(id=self.shadowbanned).one()[0]
|
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():
|
if IS_FISTMAS():
|
||||||
@property
|
@property
|
||||||
@lazy
|
@lazy
|
||||||
|
|
|
@ -757,8 +757,8 @@ def alt_votes_get(v):
|
||||||
@limiter.limit(DEFAULT_RATELIMIT_SLOWER, key_func=get_ID)
|
@limiter.limit(DEFAULT_RATELIMIT_SLOWER, key_func=get_ID)
|
||||||
@admin_level_required(PERMS['USER_LINK'])
|
@admin_level_required(PERMS['USER_LINK'])
|
||||||
def admin_view_alts(v:User, username=None):
|
def admin_view_alts(v:User, username=None):
|
||||||
u = get_user(username or request.values.get('username'), graceful=True)
|
u = get_user(username or request.values.get('username'))
|
||||||
return render_template('admin/alts.html', v=v, u=u, alts=get_alt_graph(u.id) if u else None)
|
return render_template('admin/alts.html', v=v, u=u, alts=u.alts)
|
||||||
|
|
||||||
@app.post('/@<username>/alts/')
|
@app.post('/@<username>/alts/')
|
||||||
@limiter.limit(DEFAULT_RATELIMIT_SLOWER)
|
@limiter.limit(DEFAULT_RATELIMIT_SLOWER)
|
||||||
|
|
|
@ -40,8 +40,8 @@
|
||||||
<td>{{user._alt_created_utc|timestamp}}</td>
|
<td>{{user._alt_created_utc|timestamp}}</td>
|
||||||
<td>{{user._is_manual}}</td>
|
<td>{{user._is_manual}}</td>
|
||||||
<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="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', null, 'DELETE')">Relink</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>
|
<a class="btn btn-secondary" href="/@{{user.username}}/alts">Alts</a>
|
||||||
{% if v.admin_level >= PERMS['VIEW_ALT_VOTES'] %}
|
{% 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>
|
<a class="btn btn-secondary" href="/admin/alt_votes/?u1={{u.username}}&u2={{user.username}}">Alt Votes</a>
|
||||||
|
|
Loading…
Reference in New Issue