v1.2.0 — 心愿清单四象限

- 数据库 v3: priority → quadrant (重要紧急/重要不紧急/紧急不重要/不紧急不重要)
- 2×2 网格布局,每象限独立列表
- 跨象限拖拽:拖到不同象限自动更新分类
- 旧数据自动迁移:高→重要紧急, 中→重要不紧急, 低→不紧急不重要
This commit is contained in:
mac
2026-06-03 14:44:22 +08:00
parent 1d86d7f736
commit bafac0bc12
5 changed files with 189 additions and 143 deletions

View File

@@ -11,7 +11,7 @@ os.makedirs(DB_DIR, exist_ok=True)
DB_PATH = os.path.join(DB_DIR, 'ziwei_power.db')
# 当前数据库 schema 版本 —— 改表结构时必须 +1 并补迁移逻辑
CURRENT_SCHEMA_VERSION = 2
CURRENT_SCHEMA_VERSION = 3
def get_conn():
@@ -69,6 +69,11 @@ def init_db():
)
''')
if current < 3:
# v3: 优先级改为四象限
conn.execute("ALTER TABLE wishes ADD COLUMN quadrant TEXT NOT NULL DEFAULT '重要不紧急'")
conn.execute("UPDATE wishes SET quadrant = CASE priority WHEN '' THEN '重要紧急' WHEN '' THEN '重要不紧急' WHEN '' THEN '不紧急不重要' ELSE '重要不紧急' END WHERE quadrant = '重要不紧急'")
# ── 将来加字段/改表在此扩展 ──
# if current < 2:
# conn.execute('ALTER TABLE checkins ADD COLUMN tags TEXT DEFAULT ""')
@@ -152,14 +157,14 @@ def get_wishes():
return [dict(row) for row in rows]
def save_wish(name, priority, deadline):
def save_wish(name, quadrant, deadline):
"""新增一条心愿"""
now = datetime.now().isoformat()
conn = get_conn()
max_order = conn.execute('SELECT COALESCE(MAX(sort_order), -1) + 1 AS n FROM wishes').fetchone()['n']
conn.execute(
'INSERT INTO wishes (name, priority, deadline, done, sort_order, created_at) VALUES (?, ?, ?, 0, ?, ?)',
(name, priority, deadline, max_order, now)
'INSERT INTO wishes (name, quadrant, deadline, done, sort_order, created_at) VALUES (?, ?, ?, 0, ?, ?)',
(name, quadrant, deadline, max_order, now)
)
conn.commit()
wish_id = conn.execute('SELECT last_insert_rowid()').fetchone()[0]
@@ -169,7 +174,7 @@ def save_wish(name, priority, deadline):
def update_wish(wish_id, **kwargs):
"""更新心愿字段"""
allowed = ['name', 'priority', 'deadline', 'done']
allowed = ['name', 'quadrant', 'deadline', 'done']
updates = {k: v for k, v in kwargs.items() if k in allowed}
if not updates:
return