summaryrefslogtreecommitdiffstats
path: root/core/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'core/forms.py')
-rw-r--r--core/forms.py208
1 files changed, 129 insertions, 79 deletions
diff --git a/core/forms.py b/core/forms.py
index 31f6de5..709ed62 100644
--- a/core/forms.py
+++ b/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)
-
-
-