Supprime l'import ODS

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
toto
2026-06-24 15:38:02 +02:00
parent 6258fd3662
commit 2a217a3331
4 changed files with 2 additions and 146 deletions

View File

@ -1,19 +1,15 @@
from datetime import datetime, timedelta
from itertools import groupby
from pathlib import Path
import shutil
import tempfile
from fastapi import FastAPI, Form, Request, UploadFile, File
from fastapi import FastAPI, Form, Request
from fastapi.responses import HTMLResponse, RedirectResponse
from fastapi.templating import Jinja2Templates
from fastapi.staticfiles import StaticFiles
from models import (
load_config, load_week_pointages, save_week_pointages, load_conges,
toggle_conge, upsert_pointages, list_all_weeks,
toggle_conge, list_all_weeks,
)
from ods_import import parse_ods
from calcul import compute_week, minutes_to_hhmm, hhmm_to_minutes, heures_dues
app = FastAPI(title="Décompte Horaire")
@ -280,22 +276,3 @@ def toggle_conge_route(date: str, type_conge: str, request: Request):
return RedirectResponse(f"/semaine/{iso.year}/{iso.week}", status_code=303)
@app.get("/import", response_class=HTMLResponse)
def import_page(request: Request, msg: str = ""):
return templates.TemplateResponse("import.html", {"request": request, "msg": msg})
@app.post("/import")
async def do_import(request: Request, fichier: UploadFile = File(...)):
with tempfile.NamedTemporaryFile(suffix=".ods", delete=False) as tmp:
shutil.copyfileobj(fichier.file, tmp)
tmp_path = tmp.name
try:
records = parse_ods(tmp_path)
except Exception as e:
return RedirectResponse(f"/import?msg=Erreur+parsing:+{e}", status_code=303)
finally:
Path(tmp_path).unlink(missing_ok=True)
upsert_pointages(records)
return RedirectResponse(f"/import?msg={len(records)}+jours+importés", status_code=303)