diff --git a/generate_diary_draft.py b/generate_diary_draft.py new file mode 100644 index 0000000..29e037f --- /dev/null +++ b/generate_diary_draft.py @@ -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() diff --git a/update_today_progress.py b/update_today_progress.py new file mode 100644 index 0000000..f308c5d --- /dev/null +++ b/update_today_progress.py @@ -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🎉 更新完成!")