Initial commit
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
"""Runtime link helpers for company WorkItem <-> Task relations."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any, Iterable
|
||||
|
||||
|
||||
def linked_work_item_id_for_task(task: Any | None) -> str:
|
||||
"""Return the WorkItem id linked to a runtime Task.
|
||||
|
||||
The structured link table hydrates ``Task.linked_work_item_id``. Runtime
|
||||
code should not use legacy Task metadata as a mapping source.
|
||||
"""
|
||||
if task is None:
|
||||
return ""
|
||||
return str(getattr(task, "linked_work_item_id", "") or "").strip()
|
||||
|
||||
|
||||
def set_linked_work_item_id(task: Any | None, work_item_id: str) -> None:
|
||||
if task is None:
|
||||
return
|
||||
setattr(task, "linked_work_item_id", str(work_item_id or "").strip())
|
||||
|
||||
|
||||
def task_by_linked_work_item_id(tasks: Iterable[Any]) -> dict[str, Any]:
|
||||
mapping: dict[str, Any] = {}
|
||||
for task in tasks:
|
||||
work_item_id = linked_work_item_id_for_task(task)
|
||||
if work_item_id:
|
||||
mapping[work_item_id] = task
|
||||
return mapping
|
||||
Reference in New Issue
Block a user