Files
django-relay-controller/relaycontroller/relay/views.py
T
2026-03-10 13:10:32 +01:00

54 lines
1.4 KiB
Python

from django.shortcuts import render
from django.http import JsonResponse
from django.views.decorators.http import require_GET
from django.contrib.auth.decorators import login_required
from django.conf import settings
from modules.system_stats import get_cached_stats, start_background_updater
from . import models
start_background_updater()
@require_GET
def stats_view(request):
"""
Retourne tout le cache (shm, cpu_info, memory_info, disk_info, updated_at)
"""
try:
data = get_cached_stats()
return JsonResponse(data, safe=False)
except Exception as e:
return JsonResponse({"error": str(e)}, status=500)
def global_context(request, **ctx):
return dict(
app_title=settings.APP_TITLE,
app_sub_title=settings.APP_SUB_TITLE,
**ctx
)
@login_required
def dashboard_view(request):
ctx = dict(
devices=models.Device.all_devices(),
relay=models.Device.all_devices_json(),
ws_route=settings.RELAY_WEBSOCKET_ROUTE,
columns=3,
)
return render(request, "relay/dashboard.html", context=global_context(request, **ctx))
@login_required
def admin_view(request):
return render(request, "relay/iframe.html", context=global_context(request, link='/admin/'))
@login_required
def supervisor_view(request):
return render(request, "relay/iframe.html", context=global_context(request, link='http://relay.local:9001/'))