|
|
@@ -2,6 +2,7 @@ import io
|
|
|
|
|
|
import pandas as pd
|
|
|
from docx import Document
|
|
|
+from docxtpl import DocxTemplate
|
|
|
from fastapi import APIRouter, Depends, Form, HTTPException, Request, Response
|
|
|
from fastapi.responses import HTMLResponse, RedirectResponse, StreamingResponse
|
|
|
from fastapi.templating import Jinja2Templates
|
|
|
@@ -11,7 +12,6 @@ from .auth import ldap_authenticate
|
|
|
from .db import get_session
|
|
|
from .models import Bemerkung, Forderung
|
|
|
from .schemas import BemerkungIn
|
|
|
-from docxtpl import DocxTemplate
|
|
|
|
|
|
router = APIRouter()
|
|
|
templates = Jinja2Templates(directory="templates")
|
|
|
@@ -24,7 +24,7 @@ def index(request: Request):
|
|
|
|
|
|
@router.get("/login", response_class=HTMLResponse)
|
|
|
def login_get(request: Request):
|
|
|
- return templates.TemplateResponse("login.html", {"request": request})
|
|
|
+ return templates.TemplateResponse("base/login.html", {"request": request})
|
|
|
|
|
|
|
|
|
@router.post("/login")
|
|
|
@@ -41,13 +41,13 @@ def login_post(username: str = Form(...), password: str = Form(...)):
|
|
|
@router.get("/forderungen", response_class=HTMLResponse)
|
|
|
def forderungsliste(request: Request, db: Session = Depends(get_session), limit: int = 100):
|
|
|
q = db.query(Forderung).order_by(Forderung.faelligkeit.asc()).limit(limit).all()
|
|
|
- return templates.TemplateResponse("list.html", {"request": request, "forderungen": q})
|
|
|
+ return templates.TemplateResponse("base/list.html", {"request": request, "forderungen": q})
|
|
|
|
|
|
|
|
|
@router.get("/chat", response_class=HTMLResponse)
|
|
|
def chat(request: Request):
|
|
|
# q = db.query(Forderung).order_by(Forderung.faelligkeit.asc()).limit(limit).all()
|
|
|
- return templates.TemplateResponse(request, "chat.html")
|
|
|
+ return templates.TemplateResponse(request, "base/chat.html")
|
|
|
|
|
|
|
|
|
@router.get("/export/csv")
|
|
|
@@ -106,7 +106,7 @@ def detail(request: Request, id: int, db: Session = Depends(get_session)):
|
|
|
f = db.query(Forderung).filter(Forderung.id == id).first()
|
|
|
if not f:
|
|
|
raise HTTPException(status_code=404)
|
|
|
- return templates.TemplateResponse("detail.html", {"request": request, "forderung": f})
|
|
|
+ return templates.TemplateResponse("base/detail.html", {"request": request, "forderung": f})
|
|
|
|
|
|
|
|
|
@router.post("/detail/{id}/bemerkung")
|
|
|
@@ -144,16 +144,16 @@ def export_docx(id: int, db: Session = Depends(get_session)):
|
|
|
def export_docx2(id: int, db: Session = Depends(get_session)):
|
|
|
doc = DocxTemplate("templates\\docx\\Mahnung_AHR.docx")
|
|
|
context = {
|
|
|
- "Kunde_Name" : "Robert Burghard",
|
|
|
- "Kunde_Adresse" : "Im Waldhof 14a",
|
|
|
- "Kunde_PLZ" : "61476",
|
|
|
- "Kunde_Ort" : "Kronberg",
|
|
|
- "Datum_heute" : "25.03.2026",
|
|
|
- "Kunde_Nr" : "23121983",
|
|
|
- "Fahrzeug_Kennzeichen" : "OF-RB 512",
|
|
|
- "Rechnung_Nr" : "2600007",
|
|
|
- "Betrag_SB" : "250,00",
|
|
|
- "Betrag_USt" : "380,00",
|
|
|
+ "Kunde_Name": "Robert Burghard",
|
|
|
+ "Kunde_Adresse": "Im Waldhof 14a",
|
|
|
+ "Kunde_PLZ": "61476",
|
|
|
+ "Kunde_Ort": "Kronberg",
|
|
|
+ "Datum_heute": "25.03.2026",
|
|
|
+ "Kunde_Nr": "23121983",
|
|
|
+ "Fahrzeug_Kennzeichen": "OF-RB 512",
|
|
|
+ "Rechnung_Nr": "2600007",
|
|
|
+ "Betrag_SB": "250,00",
|
|
|
+ "Betrag_USt": "380,00",
|
|
|
}
|
|
|
doc.render(context)
|
|
|
# doc.save("export\\Mahnung_AHR_Burghard.docx")
|