fix table

This commit is contained in:
2026-09-02 15:42:48 +03:00
parent dd235f675c
commit 22c7ab7140
7 changed files with 554 additions and 42 deletions
@@ -286,6 +286,54 @@ def resolve_where_used(db: Session, project_id: int, mappings: list[str]) -> str
return ""
def get_font_stretch(db: Session, project_id: int, table_type: str) -> int:
doc = DOC_TYPE_KEYS.get(table_type, table_type)
raw = _get_setting(db, project_id, f"fontStretch_{doc}")
if not raw:
return 100
try:
return int(raw)
except ValueError:
return 100
def save_cell_overflows(
db: Session, project_id: int, table_type: str, overflows: list[dict[str, Any]]
) -> None:
merged: dict[str, set[str]] = {}
for item in overflows:
key = str(item.get("row_id") or item.get("row_index"))
merged.setdefault(key, set()).add(item["field"])
payload = {k: sorted(v) for k, v in merged.items()}
_set_setting(db, project_id, f"cell_overflow_{table_type}", json.dumps(payload, ensure_ascii=False))
db.commit()
def get_cell_overflows(db: Session, project_id: int, table_type: str) -> dict[str, list[str]]:
raw = _get_setting(db, project_id, f"cell_overflow_{table_type}")
if not raw:
return {}
try:
data = json.loads(raw)
if isinstance(data, dict):
return {str(k): list(v) for k, v in data.items()}
except json.JSONDecodeError:
pass
return {}
def clear_cell_overflows(db: Session, project_id: int, table_type: str) -> None:
row = db.scalar(
select(ProjectSetting).where(
ProjectSetting.project_id == project_id,
ProjectSetting.key == f"cell_overflow_{table_type}",
)
)
if row:
db.delete(row)
db.commit()
def resolve_decimal_and_board(
db: Session, project_id: int, project_decimal: str, project_board: str, table_type: str
) -> tuple[str, str]: