fixed proxy

This commit is contained in:
2026-09-08 13:47:07 +03:00
parent 181f84d372
commit d7bb365c9c
12 changed files with 1000 additions and 243 deletions
+51 -1
View File
@@ -32,9 +32,11 @@ from app.schemas import (
LlmMessageOut,
LoginRequest,
LoginResponse,
PreviewPdfRequest,
ProjectCreate,
ProjectOut,
ProjectUpdate,
ProtectPagesRequest,
TableRowsPatch,
TableRowsResponse,
TableSettingsUpdate,
@@ -42,7 +44,8 @@ from app.schemas import (
from app.services.designators import DEFAULT_MAPPINGS
from app.services.excel_export import export_xlsx
from app.services.llm import chat_edit_table, estimate_chat_context
from app.services.pdf_export import export_pdf
from app.services.pdf_export import export_pdf, export_pdf_page
from app.services.page_breaks import protect_page_breaks
from app.services.project_service import get_project_full, ingest_zip, project_dir
from app.services.project_settings import (
TABLE_SETTINGS_META,
@@ -512,6 +515,53 @@ def generate(
return TableRowsResponse(table_type=table_type, rows=rows)
@secured.post("/projects/{project_id}/tables/{table_type}/protect-pages", response_model=TableRowsResponse)
def protect_table_pages(
project_id: int,
table_type: str,
body: ProtectPagesRequest | None = None,
db: Session = Depends(get_db),
):
_get_project(db, project_id)
if table_type not in TABLE_TYPES:
raise HTTPException(400, "Unknown table type")
body = body or ProtectPagesRequest()
source = body.rows if body.rows is not None else get_rows(db, project_id, table_type)
protected = protect_page_breaks(source, table_type)
return TableRowsResponse(table_type=table_type, rows=protected)
@secured.post("/projects/{project_id}/preview-pdf")
def preview_pdf(project_id: int, body: PreviewPdfRequest, db: Session = Depends(get_db)):
project = _get_project(db, project_id)
if body.table_type not in TABLE_TYPES:
raise HTTPException(400, "Unknown table type")
rows = body.rows if body.rows is not None else get_rows(db, project_id, body.table_type)
inscriptions = get_inscriptions(db, project_id)
params = get_project_params_map(db, project_id)
resolved_inscriptions = resolve_inscriptions(inscriptions, params)
try:
stretch = get_font_stretch(db, project_id, body.table_type)
result = export_pdf_page(
body.table_type,
rows,
page=body.page,
inscriptions=resolved_inscriptions,
font_stretch=stretch,
)
except ValueError as e:
raise HTTPException(400, str(e)) from e
return Response(
content=result.data,
media_type="application/pdf",
headers={
"X-Total-Pages": str(result.total_pages),
"X-Page": str(result.page),
"Content-Disposition": f'inline; filename="{project.name}_{body.table_type}_p{result.page}.pdf"',
},
)
@secured.post("/projects/{project_id}/export")
def export_document(project_id: int, body: ExportRequest, db: Session = Depends(get_db)):
project = _get_project(db, project_id)