v1.2.0 — 心愿清单四象限
- 数据库 v3: priority → quadrant (重要紧急/重要不紧急/紧急不重要/不紧急不重要) - 2×2 网格布局,每象限独立列表 - 跨象限拖拽:拖到不同象限自动更新分类 - 旧数据自动迁移:高→重要紧急, 中→重要不紧急, 低→不紧急不重要
This commit is contained in:
15
database.py
15
database.py
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user