feat: personal user edition v1.0.0-user on release branch
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+20
-1
@@ -9,6 +9,8 @@ from __future__ import annotations
|
||||
import json
|
||||
from typing import Callable
|
||||
|
||||
from edition import USER_EDITION
|
||||
|
||||
# 可在系统设置中开关的导航项
|
||||
NAV_TOGGLES: dict[str, str] = {
|
||||
"dashboard": "数据看板",
|
||||
@@ -20,7 +22,18 @@ NAV_TOGGLES: dict[str, str] = {
|
||||
"ai": "AI 分析",
|
||||
}
|
||||
|
||||
_USER_EDITION_NAV_HIDDEN = frozenset({"market"})
|
||||
|
||||
DEFAULT_NAV: dict[str, bool] = {k: True for k in NAV_TOGGLES}
|
||||
if USER_EDITION:
|
||||
DEFAULT_NAV["market"] = False
|
||||
|
||||
|
||||
def nav_toggles_for_settings() -> dict[str, str]:
|
||||
"""系统设置页展示的导航开关(用户版隐藏行情 K 线)。"""
|
||||
if not USER_EDITION:
|
||||
return dict(NAV_TOGGLES)
|
||||
return {k: v for k, v in NAV_TOGGLES.items() if k not in _USER_EDITION_NAV_HIDDEN}
|
||||
|
||||
|
||||
def get_nav_items(get_setting: Callable[[str, str], str]) -> dict[str, bool]:
|
||||
@@ -36,18 +49,24 @@ def get_nav_items(get_setting: Callable[[str, str], str]) -> dict[str, bool]:
|
||||
out[k] = bool(data[k])
|
||||
except json.JSONDecodeError:
|
||||
pass
|
||||
if USER_EDITION:
|
||||
out["market"] = False
|
||||
return out
|
||||
|
||||
|
||||
def save_nav_items(set_setting: Callable[[str, str], None], items: dict[str, bool]) -> None:
|
||||
merged = dict(DEFAULT_NAV)
|
||||
for k in NAV_TOGGLES:
|
||||
for k in nav_toggles_for_settings():
|
||||
if k in items:
|
||||
merged[k] = bool(items[k])
|
||||
if USER_EDITION:
|
||||
merged["market"] = False
|
||||
set_setting("nav_items", json.dumps(merged, ensure_ascii=False))
|
||||
|
||||
|
||||
def nav_enabled(get_setting: Callable[[str, str], str], key: str) -> bool:
|
||||
if USER_EDITION and key == "market":
|
||||
return False
|
||||
if key not in NAV_TOGGLES:
|
||||
return True
|
||||
return get_nav_items(get_setting).get(key, True)
|
||||
|
||||
Reference in New Issue
Block a user