feat(setting): add Chinese verbose_name/help_text to setting models (Phase 4.1 part 7/9)
This commit is contained in:
@@ -4,13 +4,39 @@ from core.models.base import UUIDPrimaryKeyModel
|
|||||||
|
|
||||||
|
|
||||||
class LookupGroup(UUIDPrimaryKeyModel):
|
class LookupGroup(UUIDPrimaryKeyModel):
|
||||||
module = models.CharField(max_length=50)
|
module = models.CharField(
|
||||||
key = models.CharField(max_length=100)
|
max_length=50,
|
||||||
label_zh = models.CharField(max_length=50)
|
verbose_name="所属模块",
|
||||||
description = models.TextField(blank=True, default="")
|
help_text="client / property",
|
||||||
sort_order = models.SmallIntegerField(default=0)
|
)
|
||||||
created_at = models.DateTimeField(auto_now_add=True)
|
key = models.CharField(
|
||||||
updated_at = models.DateTimeField(auto_now=True)
|
max_length=100,
|
||||||
|
verbose_name="分组 key",
|
||||||
|
help_text="如 source / follow_purpose",
|
||||||
|
)
|
||||||
|
label_zh = models.CharField(
|
||||||
|
max_length=50,
|
||||||
|
verbose_name="分组中文名",
|
||||||
|
help_text="界面显示名称,如「客源来源」",
|
||||||
|
)
|
||||||
|
description = models.TextField(
|
||||||
|
blank=True,
|
||||||
|
default="",
|
||||||
|
verbose_name="分组说明",
|
||||||
|
help_text="前端 tooltip 使用",
|
||||||
|
)
|
||||||
|
sort_order = models.SmallIntegerField(
|
||||||
|
default=0,
|
||||||
|
verbose_name="排序",
|
||||||
|
)
|
||||||
|
created_at = models.DateTimeField(
|
||||||
|
auto_now_add=True,
|
||||||
|
verbose_name="创建时间",
|
||||||
|
)
|
||||||
|
updated_at = models.DateTimeField(
|
||||||
|
auto_now=True,
|
||||||
|
verbose_name="更新时间",
|
||||||
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
db_table = "lookup_groups"
|
db_table = "lookup_groups"
|
||||||
@@ -25,22 +51,52 @@ class LookupGroup(UUIDPrimaryKeyModel):
|
|||||||
|
|
||||||
class LookupItem(UUIDPrimaryKeyModel):
|
class LookupItem(UUIDPrimaryKeyModel):
|
||||||
group = models.ForeignKey(
|
group = models.ForeignKey(
|
||||||
LookupGroup, on_delete=models.CASCADE, related_name="items"
|
LookupGroup,
|
||||||
|
on_delete=models.CASCADE,
|
||||||
|
related_name="items",
|
||||||
|
verbose_name="所属分组",
|
||||||
|
)
|
||||||
|
value = models.CharField(
|
||||||
|
max_length=100,
|
||||||
|
verbose_name="存储值",
|
||||||
|
help_text="英文 snake_case,如 door_to_door;写入后只读",
|
||||||
|
)
|
||||||
|
label_zh = models.CharField(
|
||||||
|
max_length=50,
|
||||||
|
verbose_name="显示文本",
|
||||||
|
help_text="如「上门」",
|
||||||
|
)
|
||||||
|
is_system = models.BooleanField(
|
||||||
|
default=False,
|
||||||
|
verbose_name="是否系统预制",
|
||||||
|
help_text="True=系统预制不可物理删除,仅可停用",
|
||||||
|
)
|
||||||
|
is_active = models.BooleanField(
|
||||||
|
default=True,
|
||||||
|
verbose_name="是否启用",
|
||||||
|
help_text="False 后录入下拉不展示,历史记录保留并展示「(已停用)」后缀",
|
||||||
|
)
|
||||||
|
sort_order = models.SmallIntegerField(
|
||||||
|
default=0,
|
||||||
|
verbose_name="排序",
|
||||||
)
|
)
|
||||||
value = models.CharField(max_length=100)
|
|
||||||
label_zh = models.CharField(max_length=50)
|
|
||||||
is_system = models.BooleanField(default=False)
|
|
||||||
is_active = models.BooleanField(default=True)
|
|
||||||
sort_order = models.SmallIntegerField(default=0)
|
|
||||||
created_by = models.ForeignKey(
|
created_by = models.ForeignKey(
|
||||||
"org.Staff",
|
"org.Staff",
|
||||||
null=True,
|
null=True,
|
||||||
blank=True,
|
blank=True,
|
||||||
on_delete=models.SET_NULL,
|
on_delete=models.SET_NULL,
|
||||||
related_name="created_lookup_items",
|
related_name="created_lookup_items",
|
||||||
|
verbose_name="创建人",
|
||||||
|
help_text="系统预制时为 NULL",
|
||||||
|
)
|
||||||
|
created_at = models.DateTimeField(
|
||||||
|
auto_now_add=True,
|
||||||
|
verbose_name="创建时间",
|
||||||
|
)
|
||||||
|
updated_at = models.DateTimeField(
|
||||||
|
auto_now=True,
|
||||||
|
verbose_name="更新时间",
|
||||||
)
|
)
|
||||||
created_at = models.DateTimeField(auto_now_add=True)
|
|
||||||
updated_at = models.DateTimeField(auto_now=True)
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
db_table = "lookup_items"
|
db_table = "lookup_items"
|
||||||
|
|||||||
@@ -17,18 +17,38 @@ TRADE_STATUS_CHOICES = (
|
|||||||
|
|
||||||
|
|
||||||
class TenantSetting(UUIDPrimaryKeyModel):
|
class TenantSetting(UUIDPrimaryKeyModel):
|
||||||
category = models.CharField(max_length=50)
|
category = models.CharField(
|
||||||
key = models.CharField(max_length=100)
|
max_length=50,
|
||||||
value = models.JSONField()
|
verbose_name="配置分类",
|
||||||
value_type = models.CharField(max_length=20, choices=SettingValueType.choices)
|
help_text="client / property / showroom",
|
||||||
|
)
|
||||||
|
key = models.CharField(
|
||||||
|
max_length=100,
|
||||||
|
verbose_name="配置 key",
|
||||||
|
help_text="如 duplicate_check_scope",
|
||||||
|
)
|
||||||
|
value = models.JSONField(
|
||||||
|
verbose_name="配置值",
|
||||||
|
help_text='JSONB,统一格式 {"v": <value>}',
|
||||||
|
)
|
||||||
|
value_type = models.CharField(
|
||||||
|
max_length=20,
|
||||||
|
choices=SettingValueType.choices,
|
||||||
|
verbose_name="值类型",
|
||||||
|
help_text="bool / int / string / enum,用于前端渲染控件",
|
||||||
|
)
|
||||||
updated_by = models.ForeignKey(
|
updated_by = models.ForeignKey(
|
||||||
"org.Staff",
|
"org.Staff",
|
||||||
null=True,
|
null=True,
|
||||||
blank=True,
|
blank=True,
|
||||||
on_delete=models.SET_NULL,
|
on_delete=models.SET_NULL,
|
||||||
related_name="updated_tenant_settings",
|
related_name="updated_tenant_settings",
|
||||||
|
verbose_name="最后修改人",
|
||||||
|
)
|
||||||
|
updated_at = models.DateTimeField(
|
||||||
|
auto_now=True,
|
||||||
|
verbose_name="更新时间",
|
||||||
)
|
)
|
||||||
updated_at = models.DateTimeField(auto_now=True)
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
db_table = "tenant_settings"
|
db_table = "tenant_settings"
|
||||||
@@ -45,12 +65,34 @@ class TenantSetting(UUIDPrimaryKeyModel):
|
|||||||
|
|
||||||
|
|
||||||
class FieldRequirementRule(UUIDPrimaryKeyModel):
|
class FieldRequirementRule(UUIDPrimaryKeyModel):
|
||||||
module = models.CharField(max_length=20, choices=FieldRuleModule.choices)
|
module = models.CharField(
|
||||||
entity_type = models.CharField(max_length=50, choices=FieldRuleEntityType.choices)
|
max_length=20,
|
||||||
trade_status = models.CharField(max_length=20, choices=TRADE_STATUS_CHOICES)
|
choices=FieldRuleModule.choices,
|
||||||
field_key = models.CharField(max_length=50)
|
verbose_name="模块",
|
||||||
|
help_text="property / client,MVP 仅 property",
|
||||||
|
)
|
||||||
|
entity_type = models.CharField(
|
||||||
|
max_length=50,
|
||||||
|
choices=FieldRuleEntityType.choices,
|
||||||
|
verbose_name="实体类型",
|
||||||
|
help_text="与 property.property_type 值域完全一致:residential/villa/commercial_residential/shop/office/other",
|
||||||
|
)
|
||||||
|
trade_status = models.CharField(
|
||||||
|
max_length=20,
|
||||||
|
choices=TRADE_STATUS_CHOICES,
|
||||||
|
verbose_name="交易状态",
|
||||||
|
help_text="sale=出售 / rent=出租 / sale_rent=租售 / *=全部(fallback 通配)",
|
||||||
|
)
|
||||||
|
field_key = models.CharField(
|
||||||
|
max_length=50,
|
||||||
|
verbose_name="字段 key",
|
||||||
|
help_text="如 orientation / decoration / floor / building_area",
|
||||||
|
)
|
||||||
requirement = models.CharField(
|
requirement = models.CharField(
|
||||||
max_length=10, choices=FieldRuleRequirement.choices
|
max_length=10,
|
||||||
|
choices=FieldRuleRequirement.choices,
|
||||||
|
verbose_name="规则",
|
||||||
|
help_text="required=必填 / optional=选填 / hidden=隐藏",
|
||||||
)
|
)
|
||||||
updated_by = models.ForeignKey(
|
updated_by = models.ForeignKey(
|
||||||
"org.Staff",
|
"org.Staff",
|
||||||
@@ -58,8 +100,12 @@ class FieldRequirementRule(UUIDPrimaryKeyModel):
|
|||||||
blank=True,
|
blank=True,
|
||||||
on_delete=models.SET_NULL,
|
on_delete=models.SET_NULL,
|
||||||
related_name="updated_field_rules",
|
related_name="updated_field_rules",
|
||||||
|
verbose_name="最后修改人",
|
||||||
|
)
|
||||||
|
updated_at = models.DateTimeField(
|
||||||
|
auto_now=True,
|
||||||
|
verbose_name="更新时间",
|
||||||
)
|
)
|
||||||
updated_at = models.DateTimeField(auto_now=True)
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
db_table = "field_requirement_rules"
|
db_table = "field_requirement_rules"
|
||||||
|
|||||||
Reference in New Issue
Block a user