feat(报告系统): 添加汇总记录功能
新增汇总记录模型、表单、视图和模板,支持在报告中显示昨日汇总记录
This commit is contained in:
@@ -37,14 +37,17 @@ def is_weasyprint_available():
|
||||
from .models import (
|
||||
ReadingRecord,
|
||||
InsightRecord,
|
||||
Summary,
|
||||
FamilyTask,
|
||||
TodayPlan,
|
||||
SystemConfig,
|
||||
FamilyMember
|
||||
FamilyMember,
|
||||
SummaryCategory
|
||||
)
|
||||
from .forms import (
|
||||
ReadingRecordForm,
|
||||
InsightRecordForm,
|
||||
SummaryForm,
|
||||
FamilyTaskForm,
|
||||
TodayPlanForm,
|
||||
SystemConfigForm
|
||||
@@ -304,6 +307,69 @@ def delete_today_insight(request, pk):
|
||||
context = {'insight': insight}
|
||||
return render(request, 'core/delete_insight.html', context)
|
||||
|
||||
# 汇总记录视图
|
||||
def summaries(request):
|
||||
"""汇总记录"""
|
||||
logger.info("用户访问汇总记录页面")
|
||||
today = timezone.now().date()
|
||||
yesterday = today - timedelta(days=1)
|
||||
|
||||
summary_records = Summary.objects.filter(date=yesterday)
|
||||
|
||||
context = {
|
||||
'yesterday': yesterday,
|
||||
'summary_records': summary_records,
|
||||
}
|
||||
|
||||
return render(request, 'core/summaries.html', context)
|
||||
|
||||
# 添加汇总记录
|
||||
def add_summary(request):
|
||||
"""添加汇总记录"""
|
||||
family_members = FamilyMember.objects.all()
|
||||
categories = SummaryCategory.objects.all()
|
||||
if request.method == 'POST':
|
||||
form = SummaryForm(request.POST, request.FILES)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
logger.info(f"添加汇总记录: {form.cleaned_data['content'][:20]}...")
|
||||
return redirect('summaries')
|
||||
else:
|
||||
form = SummaryForm()
|
||||
|
||||
context = {'form': form, 'family_members': family_members, 'categories': categories}
|
||||
return render(request, 'core/add_summary.html', context)
|
||||
|
||||
# 编辑汇总记录
|
||||
def edit_summary(request, pk):
|
||||
"""编辑汇总记录"""
|
||||
summary = get_object_or_404(Summary, pk=pk)
|
||||
family_members = FamilyMember.objects.all()
|
||||
categories = SummaryCategory.objects.all()
|
||||
if request.method == 'POST':
|
||||
form = SummaryForm(request.POST, request.FILES, instance=summary)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
logger.info(f"编辑汇总记录: {form.cleaned_data['content'][:20]}...")
|
||||
return redirect('summaries')
|
||||
else:
|
||||
form = SummaryForm(instance=summary)
|
||||
|
||||
context = {'form': form, 'summary': summary, 'family_members': family_members, 'categories': categories}
|
||||
return render(request, 'core/edit_summary.html', context)
|
||||
|
||||
# 删除汇总记录
|
||||
def delete_summary(request, pk):
|
||||
"""删除汇总记录"""
|
||||
summary = get_object_or_404(Summary, pk=pk)
|
||||
if request.method == 'POST':
|
||||
summary.delete()
|
||||
logger.info(f"删除汇总记录: {summary.content[:20]}...")
|
||||
return redirect('summaries')
|
||||
|
||||
context = {'summary': summary}
|
||||
return render(request, 'core/delete_summary.html', context)
|
||||
|
||||
# 家庭事项视图
|
||||
def family_tasks(request):
|
||||
"""家庭事项"""
|
||||
@@ -445,6 +511,7 @@ def generate_report(request):
|
||||
# 获取昨日记录
|
||||
yesterday_reading = ReadingRecord.objects.filter(date=yesterday)
|
||||
yesterday_insight = InsightRecord.objects.filter(date=yesterday)
|
||||
yesterday_summary = Summary.objects.filter(date=yesterday)
|
||||
|
||||
# 获取今日计划
|
||||
today_plan = TodayPlan.objects.filter(date=today)
|
||||
@@ -478,6 +545,7 @@ def generate_report(request):
|
||||
'yesterday': yesterday,
|
||||
'yesterday_reading': yesterday_reading,
|
||||
'yesterday_insight': yesterday_insight,
|
||||
'yesterday_summary': yesterday_summary,
|
||||
'today_plan': today_plan,
|
||||
'family_task_stats': family_task_stats,
|
||||
'historical_dates': historical_dates,
|
||||
@@ -496,6 +564,7 @@ def view_report(request, date):
|
||||
# 获取指定日期的记录
|
||||
yesterday_reading = ReadingRecord.objects.filter(date=yesterday)
|
||||
yesterday_insight = InsightRecord.objects.filter(date=yesterday)
|
||||
yesterday_summary = Summary.objects.filter(date=yesterday)
|
||||
today_plan = TodayPlan.objects.filter(date=report_date)
|
||||
|
||||
# 获取家庭事项统计
|
||||
@@ -506,6 +575,7 @@ def view_report(request, date):
|
||||
'yesterday': yesterday,
|
||||
'yesterday_reading': yesterday_reading,
|
||||
'yesterday_insight': yesterday_insight,
|
||||
'yesterday_summary': yesterday_summary,
|
||||
'today_plan': today_plan,
|
||||
'family_task_stats': family_task_stats,
|
||||
}
|
||||
@@ -528,6 +598,7 @@ def generate_pdf_report(request, date):
|
||||
# 获取指定日期的记录
|
||||
yesterday_reading = ReadingRecord.objects.filter(date=yesterday)
|
||||
yesterday_insight = InsightRecord.objects.filter(date=yesterday)
|
||||
yesterday_summary = Summary.objects.filter(date=yesterday)
|
||||
today_plan = TodayPlan.objects.filter(date=report_date)
|
||||
|
||||
# 获取家庭事项统计
|
||||
@@ -538,6 +609,7 @@ def generate_pdf_report(request, date):
|
||||
'yesterday': yesterday,
|
||||
'yesterday_reading': yesterday_reading,
|
||||
'yesterday_insight': yesterday_insight,
|
||||
'yesterday_summary': yesterday_summary,
|
||||
'today_plan': today_plan,
|
||||
'family_task_stats': family_task_stats,
|
||||
}
|
||||
@@ -579,6 +651,7 @@ def preview_pdf_report(request, date):
|
||||
# 获取指定日期的记录
|
||||
yesterday_reading = ReadingRecord.objects.filter(date=yesterday)
|
||||
yesterday_insight = InsightRecord.objects.filter(date=yesterday)
|
||||
yesterday_summary = Summary.objects.filter(date=yesterday)
|
||||
today_plan = TodayPlan.objects.filter(date=report_date)
|
||||
|
||||
# 获取家庭事项统计
|
||||
@@ -589,6 +662,7 @@ def preview_pdf_report(request, date):
|
||||
'yesterday': yesterday,
|
||||
'yesterday_reading': yesterday_reading,
|
||||
'yesterday_insight': yesterday_insight,
|
||||
'yesterday_summary': yesterday_summary,
|
||||
'today_plan': today_plan,
|
||||
'family_task_stats': family_task_stats,
|
||||
}
|
||||
@@ -641,6 +715,7 @@ def send_email_view(request):
|
||||
|
||||
yesterday_reading = ReadingRecord.objects.filter(date=yesterday)
|
||||
yesterday_insight = InsightRecord.objects.filter(date=yesterday)
|
||||
yesterday_summary = Summary.objects.filter(date=yesterday)
|
||||
today_plan = TodayPlan.objects.filter(date=report_date)
|
||||
family_task_stats = FamilyTask.objects.values('type').annotate(count=Count('id'))
|
||||
|
||||
@@ -649,6 +724,7 @@ def send_email_view(request):
|
||||
'yesterday': yesterday,
|
||||
'yesterday_reading': yesterday_reading,
|
||||
'yesterday_insight': yesterday_insight,
|
||||
'yesterday_summary': yesterday_summary,
|
||||
'today_plan': today_plan,
|
||||
'family_task_stats': family_task_stats,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user