forked from expo/troggle
ran 'black' to reformat all the core files
This commit is contained in:
208
core/forms.py
208
core/forms.py
@@ -11,100 +11,151 @@ from troggle.core.models.logbooks import QM, LogbookEntry
|
||||
from troggle.core.models.troggle import Expedition, Person, PersonExpedition
|
||||
from troggle.core.views.editor_helpers import HTMLarea
|
||||
|
||||
#from tinymce.widgets import TinyMCE
|
||||
# from tinymce.widgets import TinyMCE
|
||||
|
||||
|
||||
|
||||
'''These are all the class-based Forms used by troggle.
|
||||
"""These are all the class-based Forms used by troggle.
|
||||
There are other, simpler, upload forms in view/uploads.py
|
||||
Some are not used and need renovating or destroying.
|
||||
'''
|
||||
"""
|
||||
|
||||
todo = """
|
||||
"""
|
||||
|
||||
todo = '''
|
||||
'''
|
||||
|
||||
class CaveForm(ModelForm):
|
||||
'''Only those fields for which we want to override defaults are listed here
|
||||
"""Only those fields for which we want to override defaults are listed here
|
||||
the other fields are present on the form, but use the default presentation style
|
||||
'''
|
||||
official_name = forms.CharField(required = False, widget=forms.TextInput(attrs={'size': '45'}))
|
||||
underground_description = forms.CharField(required = False, widget=HTMLarea(
|
||||
attrs={"height":"80%", "rows":20, 'placeholder': "Enter page content (using HTML)"}))
|
||||
explorers = forms.CharField(required = False, widget=HTMLarea(
|
||||
attrs={"height":"80%", "rows":20, 'placeholder': "Enter page content (using HTML)"}))
|
||||
equipment = forms.CharField(required = False, widget=HTMLarea(
|
||||
attrs={"height":"80%", "rows":20, 'placeholder': "Enter page content (using HTML)"}))
|
||||
survey = forms.CharField(required = False, widget=HTMLarea(
|
||||
attrs={"height":"80%", "rows":20, 'placeholder': "Enter page content (using HTML)"}))
|
||||
#survey = forms.CharField(required = False, widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
|
||||
kataster_status = forms.CharField(required = False)
|
||||
underground_centre_line = forms.CharField(required = False, widget=HTMLarea(
|
||||
attrs={"height":"80%", "rows":20, 'placeholder': "Enter page content (using HTML)"}))
|
||||
notes = forms.CharField(required = False, widget=HTMLarea(
|
||||
attrs={"height":"80%", "rows":20, 'placeholder': "Enter page content (using HTML)"}))
|
||||
references = forms.CharField(required = False, widget=HTMLarea(
|
||||
attrs={"height":"80%", "rows":20, 'placeholder': "Enter page content (using HTML)"}))
|
||||
description_file = forms.CharField(required = False, widget=forms.TextInput(attrs={'size': '45'}))
|
||||
survex_file = forms.CharField(required = False, label="Survex file [caves-1623/000/000.svx]", widget=forms.TextInput(attrs={'size': '45'}))
|
||||
url = forms.CharField(required = True, label="URL [1623/000/000]", widget=forms.TextInput(attrs={'size': '45'}))
|
||||
length = forms.CharField(required = False, label="Length (m)")
|
||||
depth = forms.CharField(required = False, label="Depth (m)")
|
||||
extent = forms.CharField(required = False, label="Extent (m)")
|
||||
"""
|
||||
|
||||
official_name = forms.CharField(required=False, widget=forms.TextInput(attrs={"size": "45"}))
|
||||
underground_description = forms.CharField(
|
||||
required=False,
|
||||
widget=HTMLarea(attrs={"height": "80%", "rows": 20, "placeholder": "Enter page content (using HTML)"}),
|
||||
)
|
||||
explorers = forms.CharField(
|
||||
required=False,
|
||||
widget=HTMLarea(attrs={"height": "80%", "rows": 20, "placeholder": "Enter page content (using HTML)"}),
|
||||
)
|
||||
equipment = forms.CharField(
|
||||
required=False,
|
||||
widget=HTMLarea(attrs={"height": "80%", "rows": 20, "placeholder": "Enter page content (using HTML)"}),
|
||||
)
|
||||
survey = forms.CharField(
|
||||
required=False,
|
||||
widget=HTMLarea(attrs={"height": "80%", "rows": 20, "placeholder": "Enter page content (using HTML)"}),
|
||||
)
|
||||
# survey = forms.CharField(required = False, widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
|
||||
kataster_status = forms.CharField(required=False)
|
||||
underground_centre_line = forms.CharField(
|
||||
required=False,
|
||||
widget=HTMLarea(attrs={"height": "80%", "rows": 20, "placeholder": "Enter page content (using HTML)"}),
|
||||
)
|
||||
notes = forms.CharField(
|
||||
required=False,
|
||||
widget=HTMLarea(attrs={"height": "80%", "rows": 20, "placeholder": "Enter page content (using HTML)"}),
|
||||
)
|
||||
references = forms.CharField(
|
||||
required=False,
|
||||
widget=HTMLarea(attrs={"height": "80%", "rows": 20, "placeholder": "Enter page content (using HTML)"}),
|
||||
)
|
||||
description_file = forms.CharField(required=False, widget=forms.TextInput(attrs={"size": "45"}))
|
||||
survex_file = forms.CharField(
|
||||
required=False, label="Survex file [caves-1623/000/000.svx]", widget=forms.TextInput(attrs={"size": "45"})
|
||||
)
|
||||
url = forms.CharField(required=True, label="URL [1623/000/000]", widget=forms.TextInput(attrs={"size": "45"}))
|
||||
length = forms.CharField(required=False, label="Length (m)")
|
||||
depth = forms.CharField(required=False, label="Depth (m)")
|
||||
extent = forms.CharField(required=False, label="Extent (m)")
|
||||
|
||||
class Meta:
|
||||
model = Cave
|
||||
exclude = ("filename",)
|
||||
|
||||
def clean(self):
|
||||
if self.cleaned_data.get("kataster_number") == "" and self.cleaned_data.get("unofficial_number") == "":
|
||||
self._errors["unofficial_number"] = self.error_class(["Either the kataster or unoffical number is required."])
|
||||
# if self.cleaned_data.get("kataster_number") != "" and self.cleaned_data.get("official_name") == "":
|
||||
# self._errors["official_name"] = self.error_class(["This field is required when there is a kataster number."])
|
||||
self._errors["unofficial_number"] = self.error_class(
|
||||
["Either the kataster or unoffical number is required."]
|
||||
)
|
||||
# if self.cleaned_data.get("kataster_number") != "" and self.cleaned_data.get("official_name") == "":
|
||||
# self._errors["official_name"] = self.error_class(["This field is required when there is a kataster number."])
|
||||
if self.cleaned_data.get("area") == []:
|
||||
self._errors["area"] = self.error_class(["This field is required."])
|
||||
if self.cleaned_data.get("url") and self.cleaned_data.get("url").startswith("/"):
|
||||
self._errors["url"] = self.error_class(["This field cannot start with a /."])
|
||||
return self.cleaned_data
|
||||
|
||||
|
||||
class EntranceForm(ModelForm):
|
||||
'''Only those fields for which we want to override defaults are listed here
|
||||
"""Only those fields for which we want to override defaults are listed here
|
||||
the other fields are present on the form, but use the default presentaiton style
|
||||
'''
|
||||
name = forms.CharField(required = False, widget=forms.TextInput(attrs={'size': '45'}))
|
||||
entrance_description = forms.CharField(required = False, widget=HTMLarea(
|
||||
attrs={"height":"80%", "rows":20, 'placeholder': "Enter page content (using HTML)"}))
|
||||
explorers = forms.CharField(required = False, widget=forms.TextInput(attrs={'size': '45'}))
|
||||
#explorers = forms.CharField(required = False, widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
|
||||
map_description = forms.CharField(required = False, widget=HTMLarea(
|
||||
attrs={"height":"80%", "rows":20, 'placeholder': "Enter page content (using HTML)"}))
|
||||
location_description = forms.CharField(required = False, widget=HTMLarea(
|
||||
attrs={"height":"80%", "rows":20, 'placeholder': "Enter page content (using HTML)"}))
|
||||
lastvisit = forms.CharField(required=False, widget=forms.TextInput(attrs={'size': '10'}), label="Date of last visit")
|
||||
approach = forms.CharField(required = False, widget=HTMLarea(
|
||||
attrs={"height":"80%", "rows":20, 'placeholder': "Enter page content (using HTML)"}))
|
||||
underground_description = forms.CharField(required = False, widget=HTMLarea(
|
||||
attrs={"height":"80%", "rows":20, 'placeholder': "Enter page content (using HTML)"}))
|
||||
photo = forms.CharField(required = False, widget=HTMLarea(
|
||||
attrs={"height":"80%", "rows":20, 'placeholder': "Enter page content (using HTML)"}))
|
||||
marking_comment = forms.CharField(required = False, widget=HTMLarea(
|
||||
attrs={"height":"80%", "rows":20, 'placeholder': "Enter page content (using HTML)"}))
|
||||
findability_description = forms.CharField(required = False, widget=HTMLarea(
|
||||
attrs={"height":"80%", "rows":20, 'placeholder': "Enter page content (using HTML)"}))
|
||||
other_description = forms.CharField(required = False, widget=HTMLarea(
|
||||
attrs={"height":"80%", "rows":20, 'placeholder': "Enter page content (using HTML)"}))
|
||||
bearings = forms.CharField(required = False, widget=HTMLarea(
|
||||
attrs={"height":"80%", "rows":20, 'placeholder': "Enter page content (using HTML)"}))
|
||||
other_station = forms.CharField(required=False)
|
||||
tag_station = forms.CharField(required=False)
|
||||
exact_station = forms.CharField(required=False)
|
||||
northing = forms.CharField(required=False)
|
||||
"""
|
||||
|
||||
name = forms.CharField(required=False, widget=forms.TextInput(attrs={"size": "45"}))
|
||||
entrance_description = forms.CharField(
|
||||
required=False,
|
||||
widget=HTMLarea(attrs={"height": "80%", "rows": 20, "placeholder": "Enter page content (using HTML)"}),
|
||||
)
|
||||
explorers = forms.CharField(required=False, widget=forms.TextInput(attrs={"size": "45"}))
|
||||
# explorers = forms.CharField(required = False, widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
|
||||
map_description = forms.CharField(
|
||||
required=False,
|
||||
widget=HTMLarea(attrs={"height": "80%", "rows": 20, "placeholder": "Enter page content (using HTML)"}),
|
||||
)
|
||||
location_description = forms.CharField(
|
||||
required=False,
|
||||
widget=HTMLarea(attrs={"height": "80%", "rows": 20, "placeholder": "Enter page content (using HTML)"}),
|
||||
)
|
||||
lastvisit = forms.CharField(
|
||||
required=False, widget=forms.TextInput(attrs={"size": "10"}), label="Date of last visit"
|
||||
)
|
||||
approach = forms.CharField(
|
||||
required=False,
|
||||
widget=HTMLarea(attrs={"height": "80%", "rows": 20, "placeholder": "Enter page content (using HTML)"}),
|
||||
)
|
||||
underground_description = forms.CharField(
|
||||
required=False,
|
||||
widget=HTMLarea(attrs={"height": "80%", "rows": 20, "placeholder": "Enter page content (using HTML)"}),
|
||||
)
|
||||
photo = forms.CharField(
|
||||
required=False,
|
||||
widget=HTMLarea(attrs={"height": "80%", "rows": 20, "placeholder": "Enter page content (using HTML)"}),
|
||||
)
|
||||
marking_comment = forms.CharField(
|
||||
required=False,
|
||||
widget=HTMLarea(attrs={"height": "80%", "rows": 20, "placeholder": "Enter page content (using HTML)"}),
|
||||
)
|
||||
findability_description = forms.CharField(
|
||||
required=False,
|
||||
widget=HTMLarea(attrs={"height": "80%", "rows": 20, "placeholder": "Enter page content (using HTML)"}),
|
||||
)
|
||||
other_description = forms.CharField(
|
||||
required=False,
|
||||
widget=HTMLarea(attrs={"height": "80%", "rows": 20, "placeholder": "Enter page content (using HTML)"}),
|
||||
)
|
||||
bearings = forms.CharField(
|
||||
required=False,
|
||||
widget=HTMLarea(attrs={"height": "80%", "rows": 20, "placeholder": "Enter page content (using HTML)"}),
|
||||
)
|
||||
other_station = forms.CharField(required=False)
|
||||
tag_station = forms.CharField(required=False)
|
||||
exact_station = forms.CharField(required=False)
|
||||
northing = forms.CharField(required=False)
|
||||
easting = forms.CharField(required=False)
|
||||
lat_wgs84 = forms.CharField(required=False, widget=forms.TextInput(attrs={'size': '10'}), label="Latitude (WSG84)")
|
||||
long_wgs84 = forms.CharField(required=False, widget=forms.TextInput(attrs={'size': '10'}), label="Longitude (WSG84)")
|
||||
alt = forms.CharField(required=False, label="Altitude (m)")
|
||||
url = forms.CharField(required = False, label="URL [usually blank]", widget=forms.TextInput(attrs={'size': '45'}))
|
||||
lat_wgs84 = forms.CharField(required=False, widget=forms.TextInput(attrs={"size": "10"}), label="Latitude (WSG84)")
|
||||
long_wgs84 = forms.CharField(
|
||||
required=False, widget=forms.TextInput(attrs={"size": "10"}), label="Longitude (WSG84)"
|
||||
)
|
||||
alt = forms.CharField(required=False, label="Altitude (m)")
|
||||
url = forms.CharField(required=False, label="URL [usually blank]", widget=forms.TextInput(attrs={"size": "45"}))
|
||||
|
||||
class Meta:
|
||||
model = Entrance
|
||||
exclude = ("cached_primary_slug", "filename",)
|
||||
exclude = (
|
||||
"cached_primary_slug",
|
||||
"filename",
|
||||
)
|
||||
|
||||
def clean(self):
|
||||
if self.cleaned_data.get("url").startswith("/"):
|
||||
self._errors["url"] = self.error_class(["This field cannot start with a /."])
|
||||
@@ -116,24 +167,23 @@ class EntranceForm(ModelForm):
|
||||
# http://localhost:8000/cave/new/
|
||||
# using django built-in Deep Magic. https://docs.djangoproject.com/en/3.2/topics/forms/modelforms/
|
||||
# for forms which map directly onto a Django Model
|
||||
CaveAndEntranceFormSet = modelformset_factory(CaveAndEntrance, exclude=('cave',))
|
||||
CaveAndEntranceFormSet = modelformset_factory(CaveAndEntrance, exclude=("cave",))
|
||||
|
||||
|
||||
class EntranceLetterForm(ModelForm):
|
||||
'''Form to link entrances to caves, along with an entrance number.
|
||||
|
||||
Nb. The relationship between caves and entrances has historically been a many to many relationship.
|
||||
"""Form to link entrances to caves, along with an entrance number.
|
||||
|
||||
Nb. The relationship between caves and entrances has historically been a many to many relationship.
|
||||
With entrances gaining new caves and letters when caves are joined.
|
||||
'''
|
||||
"""
|
||||
|
||||
class Meta:
|
||||
model = CaveAndEntrance
|
||||
exclude = ('cave', 'entrance')
|
||||
|
||||
exclude = ("cave", "entrance")
|
||||
|
||||
def full_clean(self):
|
||||
super(EntranceLetterForm, self).full_clean()
|
||||
try:
|
||||
self.instance.validate_unique()
|
||||
except forms.ValidationError as e:
|
||||
self._update_errors(e)
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user