35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
from django import forms
|
|
|
|
from .models import LetterTemplate, MailMergeJob
|
|
|
|
|
|
class LetterTemplateForm(forms.ModelForm):
|
|
class Meta:
|
|
model = LetterTemplate
|
|
fields = ["name", "description", "file"]
|
|
widgets = {
|
|
"description": forms.Textarea(attrs={"rows": 3}),
|
|
}
|
|
|
|
def clean_file(self):
|
|
f = self.cleaned_data["file"]
|
|
if not f.name.lower().endswith(".docx"):
|
|
raise forms.ValidationError("Nur .docx-Dateien sind erlaubt.")
|
|
if f.size > 10 * 1024 * 1024:
|
|
raise forms.ValidationError("Datei zu groß (max. 10 MB).")
|
|
return f
|
|
|
|
|
|
class MailMergeJobForm(forms.ModelForm):
|
|
class Meta:
|
|
model = MailMergeJob
|
|
fields = ["template", "recipients_csv"]
|
|
|
|
def clean_recipients_csv(self):
|
|
f = self.cleaned_data["recipients_csv"]
|
|
if not f.name.lower().endswith(".csv"):
|
|
raise forms.ValidationError("Nur .csv-Dateien sind erlaubt.")
|
|
if f.size > 20 * 1024 * 1024:
|
|
raise forms.ValidationError("Datei zu groß (max. 20 MB).")
|
|
return f
|