feat: 添加日记草稿生成脚本 + 今日进展更新

- 新增 generate_diary_draft.py - 基于任务进展生成日记草稿
- 新增 update_today_progress.py - 更新任务进展和经验总结
- 完成任务管理功能(100%)
- 完成功能完善任务(100%)
- 添加 3 条经验总结(Tab 设计、任务中心交互、混合记录策略)
This commit is contained in:
maoshen
2026-04-14 11:06:12 +00:00
parent 873995dc09
commit 2b35247953
2 changed files with 174 additions and 0 deletions

89
generate_diary_draft.py Normal file
View File

@@ -0,0 +1,89 @@
#!/usr/bin/env python3
"""
生成日记草稿 - 基于当天的任务进展
"""
import os
import sys
import django
from datetime import datetime, timedelta
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'diary_system.settings')
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'backend'))
django.setup()
from diary.models import Task, DiaryEntry, Experience
from django.utils import timezone
def generate_draft():
yesterday = timezone.now().date() - timedelta(days=1)
yesterday_str = yesterday.strftime('%Y-%m-%d')
print(f"📝 生成 {yesterday_str} 的日记草稿\n")
print("=" * 60)
# 获取昨天创建或更新的任务
tasks_updated = Task.objects.filter(updated_at__date=yesterday)
# 检查是否已有日记
existing_entry = DiaryEntry.objects.filter(date=yesterday).first()
if existing_entry:
print(f"⚠️ {yesterday_str} 已有日记:")
print(f" 标题:{existing_entry.title}")
print(f" 更新:{existing_entry.updated_at}")
return
print(f"✅ 任务进展 ({tasks_updated.count()} 个任务有更新):\n")
completed_tasks = []
in_progress_tasks = []
for task in tasks_updated:
if task.status == 'completed':
completed_tasks.append(task)
elif task.status == 'in_progress':
in_progress_tasks.append(task)
print(f"{task.title}")
print(f" 状态:{task.get_status_display()} | 进展:{task.progress_percent}%")
if task.progress_notes:
notes = task.progress_notes.split('\n')[:3]
for note in notes:
if note.strip():
print(f"{note[:80]}...")
print()
print("=" * 60)
print("\n📋 日记草稿建议:\n")
# 完成的任务
if completed_tasks:
print("✅ 完成的任务:")
for task in completed_tasks:
print(f" - {task.title}")
print()
# 学到的东西(从任务描述推断)
if in_progress_tasks:
print("📚 可能学到的东西:")
for task in in_progress_tasks:
if task.description:
print(f" - {task.title[:50]}...")
print()
# 建议
print("💡 建议记录:")
print(f" - 今天完成了 {len(completed_tasks)} 个任务")
print(f" - 推进了 {len(in_progress_tasks)} 个进行中的任务")
print(f" - 总任务完成率:{Task.objects.filter(status='completed').count()}/{Task.objects.count()}")
print()
print("=" * 60)
return {
'date': yesterday_str,
'completed_tasks': completed_tasks,
'in_progress_tasks': in_progress_tasks,
}
if __name__ == '__main__':
generate_draft()

85
update_today_progress.py Normal file
View File

@@ -0,0 +1,85 @@
#!/usr/bin/env python3
"""更新今天的任务进展和经验总结"""
import os
import sys
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'diary_system.settings')
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'backend'))
django.setup()
from diary.models import Task, Experience
from django.utils import timezone
# 更新任务进展
tasks_to_update = [
{
'title': '日记系统 - 工作任务管理功能',
'status': 'completed',
'progress_percent': 100,
'notes': '完成 Task 模型、API、前端展示支持任务追踪和进展记录'
},
{
'title': '日记系统 - 功能完善',
'status': 'completed',
'progress_percent': 100,
'notes': '完成 Tab 切换、日历组件、任务详情视图,交互体验优化'
},
]
print("📝 更新任务进展...\n")
for t_data in tasks_to_update:
task = Task.objects.filter(title=t_data['title']).first()
if task:
old_status = task.status
old_progress = task.progress_percent
task.status = t_data['status']
task.progress_percent = t_data['progress_percent']
if t_data['notes']:
timestamp = timezone.now().strftime('%Y-%m-%d %H:%M')
task.progress_notes = f"[{timestamp}] {t_data['notes']}\n" + task.progress_notes
task.save()
print(f"{task.title}")
print(f" 状态:{old_status}{task.get_status_display()}")
print(f" 进展:{old_progress}% → {task.progress_percent}%")
print()
# 添加经验总结
experiences = [
{
'title': '前端 Tab 切换设计',
'category': 'development',
'problem': '三个板块(任务/日记/经验)占用大量空间,用户需要频繁滚动',
'solution': '使用 Tab 切换共享同一内容区域,减少页面长度,提升导航效率',
'lesson_learned': '空间紧张时考虑用切换代替并列展示。Tab 是简单有效的方案。'
},
{
'title': '以任务为中心的交互设计',
'category': 'development',
'problem': '最初按日期筛选任务,但用户更关心"某个任务的完整历史"而非"某天的所有任务"',
'solution': '改为:列表显示所有任务 → 点击进详情 → 详情中用日历查看该任务的日期进展',
'lesson_learned': '设计前先想清楚用户的核心使用场景。任务追踪 ≠ 日记查看,两者需求不同。'
},
{
'title': '混合式记录策略',
'category': 'other',
'problem': '定时记录 vs 即时记录?各有优劣',
'solution': '三层策略:任务进展(完成后立即)+ 经验总结(解决问题后)+ 日记反思(每天固定时间)',
'lesson_learned': '不要二选一,根据信息类型选择不同频率。实时数据即时记,深度反思定时做。'
},
]
print("💡 添加经验总结...\n")
for exp_data in experiences:
exp, created = Experience.objects.get_or_create(
title=exp_data['title'],
defaults=exp_data
)
if created:
print(f"{exp.title}")
else:
print(f"⏭️ {exp.title} (已存在)")
print("\n🎉 更新完成!")