Illustrations/web/core/forms.py

42 lines
2.0 KiB
Python

from django import forms
class ImportForm(forms.Form):
file = forms.FileField(allow_empty_file=False)
dry_run = forms.BooleanField(initial=True, required=False, help_text="Preview changes without saving")
class EntryForm(forms.Form):
subject = forms.CharField(required=False)
illustration = forms.CharField(required=False, widget=forms.Textarea)
application = forms.CharField(required=False, widget=forms.Textarea)
scripture_raw = forms.CharField(required=False)
source = forms.CharField(required=False)
talk_title = forms.CharField(required=False)
talk_number = forms.IntegerField(required=False)
entry_code = forms.CharField(required=False)
date_added = forms.DateField(required=False, widget=forms.DateInput(attrs={"type": "date"}))
date_edited = forms.DateField(required=False, widget=forms.DateInput(attrs={"type": "date"}))
# Assign the “search-input” look to these fields
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
big_inputs = ("subject", "scripture_raw", "source", "talk_title", "entry_code")
textareas = ("illustration", "application")
for name in big_inputs:
if name in self.fields:
self.fields[name].widget.attrs.update({
"class": "search-input input-hero" # same base class as your search box
})
for name in textareas:
if name in self.fields:
self.fields[name].widget.attrs.update({
"class": "search-input input-hero textarea-hero"
})
# Smaller controls that still match the style
if "talk_number" in self.fields:
self.fields["talk_number"].widget.attrs.update({"class": "search-input input-hero"})
if "date_added" in self.fields:
self.fields["date_added"].widget.attrs.update({"class": "search-input input-hero"})
if "date_edited" in self.fields:
self.fields["date_edited"].widget.attrs.update({"class": "search-input input-hero"})