feat(collect): show and filter product status
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user