Supprime l'import ODS
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
27
app/main.py
27
app/main.py
@ -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)
|
||||
|
||||
Reference in New Issue
Block a user