一个家庭日报系统
This commit is contained in:
84
core/forms.py
Normal file
84
core/forms.py
Normal file
@@ -0,0 +1,84 @@
|
||||
from django import forms
|
||||
from django.utils import timezone
|
||||
from .models import (
|
||||
ReadingRecord,
|
||||
InsightRecord,
|
||||
FamilyTask,
|
||||
TodayPlan,
|
||||
SystemConfig
|
||||
)
|
||||
|
||||
class ReadingRecordForm(forms.ModelForm):
|
||||
"""阅读记录表单"""
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
# 设置日期字段默认值为当日
|
||||
self.fields['date'].initial = timezone.now().date()
|
||||
|
||||
class Meta:
|
||||
model = ReadingRecord
|
||||
fields = ['date', 'type', 'title', 'source', 'progress', 'file']
|
||||
widgets = {
|
||||
'date': forms.DateInput(attrs={'type': 'date', 'class': 'form-control', 'readonly': 'readonly'}),
|
||||
'type': forms.Select(attrs={'class': 'form-select'}),
|
||||
'title': forms.TextInput(attrs={'class': 'form-control', 'placeholder': '请输入标题'}),
|
||||
'source': forms.TextInput(attrs={'class': 'form-control', 'placeholder': '请输入来源'}),
|
||||
'progress': forms.TextInput(attrs={'class': 'form-control', 'placeholder': '请输入进度'}),
|
||||
'file': forms.FileInput(attrs={'class': 'form-control'}),
|
||||
}
|
||||
|
||||
class InsightRecordForm(forms.ModelForm):
|
||||
"""感悟记录表单"""
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
# 设置日期字段默认值为当日
|
||||
self.fields['date'].initial = timezone.now().date()
|
||||
|
||||
class Meta:
|
||||
model = InsightRecord
|
||||
fields = ['date', 'content', 'file']
|
||||
widgets = {
|
||||
'date': forms.DateInput(attrs={'type': 'date', 'class': 'form-control', 'readonly': 'readonly'}),
|
||||
'content': forms.Textarea(attrs={'class': 'form-control', 'rows': 5, 'placeholder': '请输入今日感悟'}),
|
||||
'file': forms.FileInput(attrs={'class': 'form-control'}),
|
||||
}
|
||||
|
||||
class FamilyTaskForm(forms.ModelForm):
|
||||
"""家庭事项表单"""
|
||||
class Meta:
|
||||
model = FamilyTask
|
||||
fields = ['type', 'content', 'priority', 'status', 'deadline']
|
||||
widgets = {
|
||||
'type': forms.Select(attrs={'class': 'form-select'}),
|
||||
'content': forms.Textarea(attrs={'class': 'form-control', 'rows': 3, 'placeholder': '请输入事项内容'}),
|
||||
'priority': forms.Select(attrs={'class': 'form-select'}),
|
||||
'status': forms.Select(attrs={'class': 'form-select'}),
|
||||
'deadline': forms.DateInput(attrs={'type': 'date', 'class': 'form-control'}),
|
||||
}
|
||||
|
||||
class TodayPlanForm(forms.ModelForm):
|
||||
"""今日计划表单"""
|
||||
class Meta:
|
||||
model = TodayPlan
|
||||
fields = ['date', 'content', 'priority', 'type', 'status']
|
||||
widgets = {
|
||||
'date': forms.DateInput(attrs={'type': 'date', 'class': 'form-control'}),
|
||||
'content': forms.Textarea(attrs={'class': 'form-control', 'rows': 3, 'placeholder': '请输入计划内容'}),
|
||||
'priority': forms.Select(attrs={'class': 'form-select'}),
|
||||
'type': forms.Select(attrs={'class': 'form-select'}),
|
||||
'status': forms.Select(attrs={'class': 'form-select'}),
|
||||
}
|
||||
|
||||
class SystemConfigForm(forms.ModelForm):
|
||||
"""系统配置表单"""
|
||||
class Meta:
|
||||
model = SystemConfig
|
||||
fields = ['smtp_server', 'smtp_port', 'smtp_username', 'smtp_password', 'send_time', 'recipient_email']
|
||||
widgets = {
|
||||
'smtp_server': forms.TextInput(attrs={'class': 'form-control', 'placeholder': '请输入SMTP服务器'}),
|
||||
'smtp_port': forms.NumberInput(attrs={'class': 'form-control', 'placeholder': '请输入SMTP端口'}),
|
||||
'smtp_username': forms.TextInput(attrs={'class': 'form-control', 'placeholder': '请输入SMTP用户名'}),
|
||||
'smtp_password': forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': '请输入SMTP密码'}),
|
||||
'send_time': forms.TimeInput(attrs={'type': 'time', 'class': 'form-control'}),
|
||||
'recipient_email': forms.EmailInput(attrs={'class': 'form-control', 'placeholder': '请输入收件人邮箱'}),
|
||||
}
|
||||
Reference in New Issue
Block a user