54 lines
1.4 KiB
Python
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/'))
|
|
|
|
|
|
|