feat(collect): show and filter product status

This commit is contained in:
chengma
2026-07-20 10:16:25 +08:00
parent c81a24d173
commit a92f1c86f4
6 changed files with 199 additions and 12 deletions
+32
View File
@@ -11,6 +11,7 @@ STATUS_NORMAL = "normal"
STATUS_UNLISTED = "unlisted"
STATUS_REVIEWING = "reviewing"
STATUS_UNKNOWN = "unknown"
STATUS_UNCHECKED = "unchecked"
VALID_PRODUCT_STATUSES = frozenset(
{
@@ -28,6 +29,23 @@ PRODUCT_STATUS_LABELS = {
STATUS_UNKNOWN: "状态未知",
}
PRODUCT_STATUS_FILTER_ITEMS = (
("全部商品状态", "all"),
("架上商品", STATUS_NORMAL),
("未上架", STATUS_UNLISTED),
("审核中", STATUS_REVIEWING),
("状态未知", STATUS_UNKNOWN),
("待检测", STATUS_UNCHECKED),
)
PRODUCT_STATUS_DISPLAY_LABELS = {
STATUS_NORMAL: "架上商品",
STATUS_UNLISTED: "未上架",
STATUS_REVIEWING: "审核中",
STATUS_UNKNOWN: "状态未知",
STATUS_UNCHECKED: "待检测",
}
SCOPE_NORMAL_ONLY = "normal_only"
SCOPE_ALL = "all"
@@ -53,6 +71,20 @@ def status_label(value) -> str:
return PRODUCT_STATUS_LABELS[normalize_status(value)]
def display_status(value) -> str:
"""Return the UI label without treating an empty snapshot as unknown."""
return PRODUCT_STATUS_DISPLAY_LABELS[raw_status(value)]
def raw_status(value) -> str:
"""Return a UI filter status while keeping blank snapshots distinguishable."""
if not str(value or "").strip():
return STATUS_UNCHECKED
return normalize_status(value)
def is_normal(value) -> bool:
return normalize_status(value) == STATUS_NORMAL