feat: restyle admin UI and add per-user sync run history
Adds a self-hosted stylesheet (no CDN dependencies) with a card-based dashboard and color-coded status badges, and shows the last 10 sync runs per user on the detail page.
This commit is contained in:
@@ -7,7 +7,7 @@ from fastapi.templating import Jinja2Templates
|
||||
from app.auth.admin import password_matches, require_admin
|
||||
from app.auth.csrf import ensure_csrf_token, validate_csrf
|
||||
from app.db.models import SyncUser
|
||||
from app.db.repositories import ActivityRepository, UserRepository
|
||||
from app.db.repositories import ActivityRepository, SyncRunRepository, UserRepository
|
||||
from app.security.credentials import CredentialCipher
|
||||
from app.web.forms import UserFormData
|
||||
|
||||
@@ -132,6 +132,7 @@ def user_detail(request: Request, user_id: int):
|
||||
with request.app.state.session_factory() as session:
|
||||
user = _get_user_or_404(UserRepository(session), user_id)
|
||||
activities = ActivityRepository(session).list_pending_for_user(user_id)
|
||||
recent_runs = SyncRunRepository(session).list_recent_for_user(user_id, limit=10)
|
||||
return templates.TemplateResponse(
|
||||
request,
|
||||
"users/detail.html",
|
||||
@@ -139,6 +140,7 @@ def user_detail(request: Request, user_id: int):
|
||||
"csrf_token": ensure_csrf_token(request),
|
||||
"user": user,
|
||||
"activities": activities,
|
||||
"recent_runs": recent_runs,
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user