diff --git a/frontend/routes/crop.py b/frontend/routes/crop.py index d52651c..3c225da 100644 --- a/frontend/routes/crop.py +++ b/frontend/routes/crop.py @@ -1,6 +1,7 @@ -from fastapi import APIRouter, Request, HTTPException +# routes/crop.py + +from fastapi import APIRouter, Request from fastapi.responses import HTMLResponse -import api_client import config router = APIRouter() @@ -8,44 +9,11 @@ router = APIRouter() @router.get("/crop", response_class=HTMLResponse) async def crop_ui(request: Request, pc_id: str): - """Interface utilisateur pour le crop du nuage de points""" - embed_url = f"{config.BACKEND_URL}/viewer-embed/{pc_id}" + """ + Retourne le partial crop_section.html pour injection dans #crop-panel. + Appelé par le bouton ✂️ dans cloud_list_body.html. + """ return request.app.state.templates.TemplateResponse( - "partials/crop.html", - {"request": request, "pc_id": pc_id, "embed_url": embed_url}, - ) - - -@router.post("/crop", response_class=HTMLResponse) -async def crop(request: Request, pc_id: str, box: dict): - """ - Traite la requête de crop : - 1. Envoie la box 3D au backend - 2. Le backend utilise PDAL pour cropper le nuage - 3. Retourne le nouveau pc_id pour l'affichage - """ - try: - # Envoi de la requête de crop au backend - result = await api_client.crop_pointcloud(pc_id, box) - - if result.get("ok"): - new_pc_id = result.get("id") - return request.app.state.templates.TemplateResponse( - "partials/upload_result.html", - {"request": request, "result": { - "id": new_pc_id, - "filename": f"{pc_id}_cropped.las", - "size_mb": result.get("size_mb", 0), - "conversion_time_seconds": result.get("conversion_time_seconds", 0), - }, "error": None}, - ) - else: - return request.app.state.templates.TemplateResponse( - "partials/upload_result.html", - {"request": request, "error": result.get("detail", "Erreur inconnue"), "result": None}, - ) - except Exception as e: - return request.app.state.templates.TemplateResponse( - "partials/upload_result.html", - {"request": request, "error": str(e), "result": None}, - ) \ No newline at end of file + "partials/crop_section.html", + {"request": request, "pc_id": pc_id}, + ) \ No newline at end of file