MJ2 : fix options
This commit is contained in:
@@ -2,7 +2,7 @@ from flask import Blueprint, render_template, request, jsonify, redirect, url_fo
|
|||||||
from flask_login import login_user, logout_user, login_required, current_user
|
from flask_login import login_user, logout_user, login_required, current_user
|
||||||
from werkzeug.security import generate_password_hash, check_password_hash
|
from werkzeug.security import generate_password_hash, check_password_hash
|
||||||
from db import get_db, generate_clan_key
|
from db import get_db, generate_clan_key
|
||||||
from datetime import datetime
|
from datetime import datetime, timezone
|
||||||
|
|
||||||
auth = Blueprint('auth', __name__)
|
auth = Blueprint('auth', __name__)
|
||||||
|
|
||||||
@@ -108,14 +108,13 @@ def logout():
|
|||||||
def options():
|
def options():
|
||||||
conn = get_db()
|
conn = get_db()
|
||||||
|
|
||||||
# Load this user's clan (one clan per user for now)
|
|
||||||
clan = conn.execute(
|
clan = conn.execute(
|
||||||
'SELECT * FROM clans WHERE owner_id = ?', (current_user.id,)
|
'SELECT * FROM clans WHERE owner_id = ?', (current_user.id,)
|
||||||
).fetchone()
|
).fetchone()
|
||||||
|
|
||||||
members = []
|
members = []
|
||||||
if clan:
|
if clan:
|
||||||
members = conn.execute(
|
rows = conn.execute(
|
||||||
'''SELECT cm.id, cm.player_id, cm.player_name, cm.joined_at,
|
'''SELECT cm.id, cm.player_id, cm.player_name, cm.joined_at,
|
||||||
ts.updated_at
|
ts.updated_at
|
||||||
FROM clan_members cm
|
FROM clan_members cm
|
||||||
@@ -126,6 +125,24 @@ def options():
|
|||||||
(clan['id'],)
|
(clan['id'],)
|
||||||
).fetchall()
|
).fetchall()
|
||||||
|
|
||||||
|
now = datetime.utcnow()
|
||||||
|
for row in rows:
|
||||||
|
is_online = False
|
||||||
|
if row['updated_at']:
|
||||||
|
try:
|
||||||
|
last_seen = datetime.fromisoformat(row['updated_at'])
|
||||||
|
if (now - last_seen).total_seconds() <= 150:
|
||||||
|
is_online = True
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
members.append({
|
||||||
|
'id': row['id'],
|
||||||
|
'player_id': row['player_id'],
|
||||||
|
'player_name': row['player_name'] or 'Άγνωστος',
|
||||||
|
'joined_at': row['joined_at'][:10] if row['joined_at'] else '',
|
||||||
|
'is_online': is_online
|
||||||
|
})
|
||||||
|
|
||||||
conn.close()
|
conn.close()
|
||||||
return render_template('options.html', clan=clan, members=members)
|
return render_template('options.html', clan=clan, members=members)
|
||||||
|
|
||||||
|
|||||||
@@ -192,23 +192,19 @@
|
|||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for m in members %}
|
{% for m in members %}
|
||||||
{% set last_seen = m.updated_at %}
|
|
||||||
{% if last_seen %}
|
|
||||||
{% set diff = (now - last_seen) | int %}
|
|
||||||
{% endif %}
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<div class="player-name">{{ m.player_name or 'Άγνωστος' }}</div>
|
<div class="player-name">{{ m.player_name }}</div>
|
||||||
<div class="player-id">ID: {{ m.player_id }}</div>
|
<div class="player-id">ID: {{ m.player_id }}</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{% if m.updated_at and (now_ts - m.updated_at|string|int) < 150 %}
|
{% if m.is_online %}
|
||||||
<span class="status-online">● Online</span>
|
<span class="status-online">● Online</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
<span class="status-offline">● Offline</span>
|
<span class="status-offline">● Offline</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td style="color:#8b949e; font-size:0.8rem;">{{ m.joined_at[:10] }}</td>
|
<td style="color:#8b949e; font-size:0.8rem;">{{ m.joined_at }}</td>
|
||||||
<td style="text-align:right;">
|
<td style="text-align:right;">
|
||||||
<form method="POST" action="/auth/clan/remove-member/{{ m.player_id }}"
|
<form method="POST" action="/auth/clan/remove-member/{{ m.player_id }}"
|
||||||
onsubmit="return confirm('Αφαίρεση παίκτη {{ m.player_name }}?');">
|
onsubmit="return confirm('Αφαίρεση παίκτη {{ m.player_name }}?');">
|
||||||
|
|||||||
Reference in New Issue
Block a user