-
Notifications
You must be signed in to change notification settings - Fork 18
Expand file tree
/
Copy pathforms.py
More file actions
82 lines (67 loc) · 2.21 KB
/
forms.py
File metadata and controls
82 lines (67 loc) · 2.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
from django import forms
from django.conf import settings
from django.core.exceptions import ValidationError
from documents.models import Document, DocumentReport
def validate_uploaded_file(file):
name = file.name
if name.endswith(settings.REJECTED_FILE_FORMATS):
raise ValidationError(
"Les documents compressés ne sont pas supportés pour le moment."
)
class DocumentForm(forms.ModelForm):
class Meta:
model = Document
fields = ("name", "description", "tags", "staff_pick")
widgets = {
"name": forms.TextInput(
attrs={"class": "form-control", "placeholder": "Titre (optionnel)"}
),
"description": forms.Textarea(
attrs={"class": "form-input", "placeholder": "Description (optionnel)"}
),
"tags": forms.SelectMultiple(
attrs={
"class": "form-select",
"data-placeholder": "Ajoute des tags",
"data-controller": "tom-select",
}
),
"staff_pick": forms.CheckboxInput(
attrs={
"class": "form-check-input",
"placeholder": "Description (optionnel)",
}
),
}
class UploadFileForm(DocumentForm):
file = forms.FileField(
validators=[validate_uploaded_file],
widget=forms.FileInput(
attrs={
"class": "file-upload",
}
),
)
class BulkFilesForm(forms.Form):
url = forms.URLField()
class ReUploadForm(forms.Form):
file = forms.FileField(validators=[validate_uploaded_file])
class MultipleUploadFileForm(UploadFileForm):
pass
class DocumentReportForm(forms.ModelForm):
class Meta:
model = DocumentReport
fields = ("problem_type", "description")
widgets = {
"problem_type": forms.Select(
attrs={
"class": "form-select",
}
),
"description": forms.Textarea(
attrs={
"class": "form-control",
"rows": 2,
}
),
}