List work orders with optional filters (site, status, asset, priority, dates). status accepts OPEN / APPROVED_PENDING; page_size=0 returns all matches in one call.
(
site_id: Optional[str] = None,
status: Optional[str] = None,
asset_num: Optional[str] = None,
priority: Optional[int] = None,
date_from: Optional[str] = None,
date_to: Optional[str] = None,
page_size: int = 50,
page_num: int = 1,
)
| 91 | |
| 92 | |
| 93 | async def list_workorders( |
| 94 | site_id: Optional[str] = None, |
| 95 | status: Optional[str] = None, |
| 96 | asset_num: Optional[str] = None, |
| 97 | priority: Optional[int] = None, |
| 98 | date_from: Optional[str] = None, |
| 99 | date_to: Optional[str] = None, |
| 100 | page_size: int = 50, |
| 101 | page_num: int = 1, |
| 102 | ) -> Union[WorkOrdersResult, ErrorResult]: |
| 103 | """List work orders with optional filters (site, status, asset, priority, dates). |
| 104 | status accepts OPEN / APPROVED_PENDING; page_size=0 returns all matches in one call.""" |
| 105 | res = await wo.list_workorders( |
| 106 | db(), |
| 107 | site_id, |
| 108 | status, |
| 109 | asset_num, |
| 110 | priority, |
| 111 | date_from, |
| 112 | date_to, |
| 113 | page_size, |
| 114 | page_num, |
| 115 | ) |
| 116 | err = _failed(res) |
| 117 | if err: |
| 118 | return err |
| 119 | d = res["data"] |
| 120 | items = [WorkOrderItem.model_validate(x) for x in d["workorders"]] |
| 121 | return WorkOrdersResult( |
| 122 | site_id=site_id, |
| 123 | status=status, |
| 124 | total=d["totalCount"], |
| 125 | work_orders=items, |
| 126 | message=f"Found {d['totalCount']} work order(s).", |
| 127 | ) |
| 128 | |
| 129 | |
| 130 | async def get_workorder( |
nothing calls this directly
no test coverage detected