Update web/core/forms.py
changes talk field to an optional integer
This commit is contained in:
+14
-1
@@ -1,7 +1,10 @@
|
|||||||
from django import forms
|
from django import forms
|
||||||
|
|
||||||
class ImportForm(forms.Form):
|
class ImportForm(forms.Form):
|
||||||
file = forms.FileField(allow_empty_file=False)
|
file = forms.FileField(allow_empty_file=False)
|
||||||
dry_run = forms.BooleanField(initial=True, required=False, help_text="Preview changes without saving")
|
dry_run = forms.BooleanField(initial=True, required=False, help_text="Preview changes without saving")
|
||||||
|
|
||||||
|
|
||||||
class EntryForm(forms.Form):
|
class EntryForm(forms.Form):
|
||||||
subject = forms.CharField(required=False)
|
subject = forms.CharField(required=False)
|
||||||
illustration = forms.CharField(required=False, widget=forms.Textarea)
|
illustration = forms.CharField(required=False, widget=forms.Textarea)
|
||||||
@@ -9,10 +12,15 @@ class EntryForm(forms.Form):
|
|||||||
scripture_raw = forms.CharField(required=False)
|
scripture_raw = forms.CharField(required=False)
|
||||||
source = forms.CharField(required=False)
|
source = forms.CharField(required=False)
|
||||||
talk_title = forms.CharField(required=False)
|
talk_title = forms.CharField(required=False)
|
||||||
talk_number = forms.ChoiceField(
|
|
||||||
|
# Coerce blank -> None, digits -> int
|
||||||
|
talk_number = forms.TypedChoiceField(
|
||||||
required=False,
|
required=False,
|
||||||
choices=[("", "—")] + [(str(i), str(i)) for i in range(1, 201)], # blank + 1-200
|
choices=[("", "—")] + [(str(i), str(i)) for i in range(1, 201)], # blank + 1-200
|
||||||
|
coerce=lambda v: int(v) if str(v).isdigit() else None,
|
||||||
|
empty_value=None, # when the blank option is chosen, cleaned_data["talk_number"] == None
|
||||||
)
|
)
|
||||||
|
|
||||||
entry_code = forms.CharField(required=False)
|
entry_code = forms.CharField(required=False)
|
||||||
date_added = forms.DateField(required=False, widget=forms.DateInput(attrs={"type": "date"}))
|
date_added = forms.DateField(required=False, widget=forms.DateInput(attrs={"type": "date"}))
|
||||||
date_edited = forms.DateField(required=False, widget=forms.DateInput(attrs={"type": "date"}))
|
date_edited = forms.DateField(required=False, widget=forms.DateInput(attrs={"type": "date"}))
|
||||||
@@ -44,3 +52,8 @@ class EntryForm(forms.Form):
|
|||||||
self.fields["date_added"].widget.attrs.update({"class": "search-input input-hero"})
|
self.fields["date_added"].widget.attrs.update({"class": "search-input input-hero"})
|
||||||
if "date_edited" in self.fields:
|
if "date_edited" in self.fields:
|
||||||
self.fields["date_edited"].widget.attrs.update({"class": "search-input input-hero"})
|
self.fields["date_edited"].widget.attrs.update({"class": "search-input input-hero"})
|
||||||
|
|
||||||
|
# (Optional) keep it bullet-proof even if the choices/widget change someday
|
||||||
|
def clean_talk_number(self):
|
||||||
|
v = self.cleaned_data.get("talk_number")
|
||||||
|
return v if isinstance(v, int) else None
|
||||||
Reference in New Issue
Block a user