Upload files to "frontend/routes"
This commit is contained in:
parent
c4b3c41718
commit
ff2413df86
2 changed files with 78 additions and 58 deletions
|
|
@ -3,8 +3,6 @@ from fastapi.responses import HTMLResponse
|
|||
import config
|
||||
import api_client
|
||||
from pathlib import Path
|
||||
import shutil
|
||||
import os
|
||||
from datetime import datetime
|
||||
|
||||
router = APIRouter()
|
||||
|
|
@ -12,42 +10,35 @@ router = APIRouter()
|
|||
|
||||
@router.get("/viewer/list", response_class=HTMLResponse)
|
||||
async def viewer_list(request: Request):
|
||||
"""Liste les nuages de points disponibles - Endpoint autonome frontend"""
|
||||
"""
|
||||
Liste les nuages de points — retourne uniquement le contenu intérieur
|
||||
(cloud_list_body.html) pour injection dans #cloud-list-body.
|
||||
La card enveloppe et le bouton Actualiser vivent dans index.html, pas ici.
|
||||
"""
|
||||
pointclouds = []
|
||||
|
||||
# Récupérer la liste des nuages directement depuis le système de fichiers
|
||||
|
||||
ept_dir = Path(config.EPT_DIR)
|
||||
if ept_dir.exists():
|
||||
for item in sorted(ept_dir.iterdir(), key=lambda x: x.stat().st_ctime, reverse=True):
|
||||
if item.is_dir():
|
||||
# Lire le manifeste
|
||||
manifest_path = item / "manifest.json"
|
||||
manifest = {}
|
||||
if manifest_path.exists():
|
||||
try:
|
||||
manifest = {"ept_dir": item.name}
|
||||
except:
|
||||
pass
|
||||
|
||||
# Calculer la taille et le nombre de fichiers
|
||||
total_size = 0
|
||||
file_count = 0
|
||||
for f in item.rglob("*"):
|
||||
if f.is_file():
|
||||
total_size += f.stat().st_size
|
||||
file_count += 1
|
||||
|
||||
|
||||
if file_count > 0:
|
||||
pointclouds.append({
|
||||
"id": item.name,
|
||||
"size_mb": round(total_size / (1024 * 1024), 2),
|
||||
"file_count": file_count,
|
||||
"manifest": manifest,
|
||||
"manifest": {},
|
||||
"created": item.stat().st_ctime,
|
||||
})
|
||||
|
||||
|
||||
return request.app.state.templates.TemplateResponse(
|
||||
"partials/cloud_list.html",
|
||||
"partials/cloud_list_body.html",
|
||||
{"request": request, "pointclouds": pointclouds},
|
||||
)
|
||||
|
||||
|
|
@ -58,4 +49,4 @@ async def viewer(request: Request, pc_id: str):
|
|||
return request.app.state.templates.TemplateResponse(
|
||||
"partials/viewer.html",
|
||||
{"request": request, "pc_id": pc_id, "embed_url": embed_url},
|
||||
)
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue