"""Статус проекта (порт themes/merakomis/project/structure/eStatus.php).""" from __future__ import annotations from datetime import date from typing import Any # tMerakomisProject_status → подпись в UI Merakomis PROJECT_STATUS_NAMES: dict[int, str] = { 0: "Не определён", 1: "В работе", 2: "Завершён", 3: "Пауза", } def project_status_name(status: Any) -> str: if status is None: return "" try: return PROJECT_STATUS_NAMES.get(int(status), "") except (TypeError, ValueError): return "" def _json_date(v: Any) -> Any: if v is None: return None if isinstance(v, date): return v.isoformat() s = str(v).strip() if not s or s.startswith("0000"): return None return s[:10] def enrich_project_status_fields(item: dict[str, Any]) -> dict[str, Any]: """Добавляет status_name; нормализует archive_date.""" if "status" in item: name = project_status_name(item.get("status")) item["status_name"] = name or None if "archive_date" in item: item["archive_date"] = _json_date(item.get("archive_date")) return item