fixed complex strings
This commit is contained in:
@@ -23,11 +23,20 @@ from app.schemas import (
|
||||
ProjectUpdate,
|
||||
TableRowsPatch,
|
||||
TableRowsResponse,
|
||||
TableSettingsUpdate,
|
||||
)
|
||||
from app.services.excel_export import export_xlsx
|
||||
from app.services.llm import chat_edit_table
|
||||
from app.services.pdf_export import export_pdf
|
||||
from app.services.project_service import get_project_full, ingest_zip, project_dir
|
||||
from app.services.project_settings import (
|
||||
TABLE_SETTINGS_META,
|
||||
get_property_names,
|
||||
get_project_params_map,
|
||||
get_table_settings,
|
||||
resolve_inscriptions,
|
||||
update_table_settings,
|
||||
)
|
||||
from app.services.table_service import (
|
||||
TABLE_TYPES,
|
||||
apply_llm_edits,
|
||||
@@ -204,6 +213,39 @@ def get_pcb(project_id: int, db: Session = Depends(get_db)):
|
||||
}
|
||||
|
||||
|
||||
@secured.get("/projects/{project_id}/property-names")
|
||||
def read_property_names(project_id: int, db: Session = Depends(get_db)):
|
||||
_get_project(db, project_id)
|
||||
return {"property_names": get_property_names(db, project_id)}
|
||||
|
||||
|
||||
@secured.get("/projects/{project_id}/table-settings/{table_type}")
|
||||
def read_table_settings(project_id: int, table_type: str, db: Session = Depends(get_db)):
|
||||
_get_project(db, project_id)
|
||||
if table_type not in TABLE_TYPES:
|
||||
raise HTTPException(400, f"Unknown table type. Use one of: {TABLE_TYPES}")
|
||||
return get_table_settings(db, project_id, table_type)
|
||||
|
||||
|
||||
@secured.patch("/projects/{project_id}/table-settings/{table_type}")
|
||||
def patch_table_settings(
|
||||
project_id: int,
|
||||
table_type: str,
|
||||
body: TableSettingsUpdate,
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
_get_project(db, project_id)
|
||||
if table_type not in TABLE_TYPES:
|
||||
raise HTTPException(400, f"Unknown table type")
|
||||
return update_table_settings(db, project_id, table_type, body.model_dump(exclude_unset=True))
|
||||
|
||||
|
||||
@secured.get("/projects/{project_id}/table-settings-meta")
|
||||
def read_table_settings_meta(project_id: int, db: Session = Depends(get_db)):
|
||||
_get_project(db, project_id)
|
||||
return TABLE_SETTINGS_META
|
||||
|
||||
|
||||
@secured.get("/projects/{project_id}/inscriptions")
|
||||
def read_inscriptions(project_id: int, db: Session = Depends(get_db)):
|
||||
_get_project(db, project_id)
|
||||
@@ -272,6 +314,8 @@ def export_document(project_id: int, body: ExportRequest, db: Session = Depends(
|
||||
if not rows:
|
||||
raise HTTPException(400, "Table is empty. Generate it first.")
|
||||
inscriptions = get_inscriptions(db, project_id)
|
||||
params = get_project_params_map(db, project_id)
|
||||
resolved_inscriptions = resolve_inscriptions(inscriptions, params)
|
||||
|
||||
if body.format == "xlsx":
|
||||
data = export_xlsx(body.table_type, rows, title=project.name)
|
||||
@@ -284,7 +328,7 @@ def export_document(project_id: int, body: ExportRequest, db: Session = Depends(
|
||||
)
|
||||
if body.format == "pdf":
|
||||
try:
|
||||
data = export_pdf(body.table_type, rows, inscriptions)
|
||||
data = export_pdf(body.table_type, rows, resolved_inscriptions)
|
||||
except ValueError as e:
|
||||
raise HTTPException(400, str(e)) from e
|
||||
return Response(
|
||||
|
||||
Reference in New Issue
Block a user