mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2024-11-25 16:51:54 +00:00
tidy up entranceSlug all now deleted
This commit is contained in:
parent
e7d9e9402a
commit
9ffe3f690b
@ -157,13 +157,13 @@ class EntranceForm(ModelForm):
|
|||||||
return self.cleaned_data
|
return self.cleaned_data
|
||||||
|
|
||||||
|
|
||||||
# This next line is called from the templates/edit_cave2.html template.
|
# This next line is called from the templates/edit_cave.html template.
|
||||||
# This is sufficient to create an entire entry for for the cave fields automatically
|
# This is sufficient to create an entire entry for for the cave fields automatically
|
||||||
# http://localhost:8000/cave/new/
|
# http://localhost:8000/cave/new/
|
||||||
# using django built-in Deep Magic. https://docs.djangoproject.com/en/dev/topics/forms/modelforms/
|
# using django built-in Deep Magic. https://docs.djangoproject.com/en/dev/topics/forms/modelforms/
|
||||||
# for forms which map directly onto a Django Model
|
# for forms which map directly onto a Django Model
|
||||||
CaveAndEntranceFormSet = modelformset_factory(CaveAndEntrance, exclude=("cave",))
|
CaveAndEntranceFormSet = modelformset_factory(CaveAndEntrance, exclude=("cave",))
|
||||||
|
# This is used only in edit_entrance() in views/caves.py
|
||||||
|
|
||||||
class EntranceLetterForm(ModelForm):
|
class EntranceLetterForm(ModelForm):
|
||||||
"""Form to link entrances to caves, along with an entrance number.
|
"""Form to link entrances to caves, along with an entrance number.
|
||||||
|
@ -25,11 +25,11 @@ Gcave_count = None
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
todo = """
|
todo = """
|
||||||
- Find out why we have separate objects CaveSlug and EntranceSlug and why
|
- Find out why we have separate objects CaveSlug and why
|
||||||
these are not just a single field on the Model. Do we ever need more
|
these are not just a single field on the Model. Do we ever need more
|
||||||
than one slug per cave or entrance? Surely that would break everything??
|
than one slug per cave or entrance? Surely that would break everything??
|
||||||
|
|
||||||
- Can we rewrite things to eliminate the CaveSlug and EntranceSlug Classes and objects? Surely
|
- Can we rewrite things to eliminate the CaveSlug and objects? Surely
|
||||||
foreign keys work fine ?!
|
foreign keys work fine ?!
|
||||||
|
|
||||||
- Why do we have CaveAndEntrance objects ? Surely entranceletter belong son the Entrance object?
|
- Why do we have CaveAndEntrance objects ? Surely entranceletter belong son the Entrance object?
|
||||||
@ -259,15 +259,6 @@ class Cave(TroggleModel):
|
|||||||
pass
|
pass
|
||||||
return lowestareas[0]
|
return lowestareas[0]
|
||||||
|
|
||||||
|
|
||||||
# class EntranceSlug(models.Model):
|
|
||||||
# """If the Entrance is deleted, then this EntranceSlug is deleted too
|
|
||||||
# """
|
|
||||||
# entrance = models.ForeignKey("Entrance", on_delete=models.CASCADE)
|
|
||||||
# slug = models.SlugField(max_length=50, unique=True)
|
|
||||||
# # primary = models.BooleanField(default=False)
|
|
||||||
|
|
||||||
|
|
||||||
class Entrance(TroggleModel):
|
class Entrance(TroggleModel):
|
||||||
MARKING_CHOICES = (
|
MARKING_CHOICES = (
|
||||||
("P", "Paint"),
|
("P", "Paint"),
|
||||||
|
@ -11,7 +11,7 @@ from troggle.core.models.troggle import Expedition, TroggleModel
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
todo = """
|
todo = """
|
||||||
- Can we rewrite things to eliminate the CaveSlug and EntranceSlug Classes and objects? Surely
|
- Can we rewrite things to eliminate the CaveSlug and objects? Surely
|
||||||
foreign keys work fine ?!
|
foreign keys work fine ?!
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ from django.urls import NoReverseMatch
|
|||||||
|
|
||||||
import troggle.settings as settings
|
import troggle.settings as settings
|
||||||
from troggle.core.forms import CaveAndEntranceFormSet, CaveForm, EntranceForm, EntranceLetterForm
|
from troggle.core.forms import CaveAndEntranceFormSet, CaveForm, EntranceForm, EntranceLetterForm
|
||||||
from troggle.core.models.caves import Cave, CaveAndEntrance, Entrance, GetCaveLookup # EntranceSlug,
|
from troggle.core.models.caves import Cave, CaveAndEntrance, Entrance, GetCaveLookup
|
||||||
from troggle.core.models.logbooks import CaveSlug, QM
|
from troggle.core.models.logbooks import CaveSlug, QM
|
||||||
from troggle.core.utils import write_and_commit
|
from troggle.core.utils import write_and_commit
|
||||||
from troggle.core.views import expo
|
from troggle.core.views import expo
|
||||||
@ -407,8 +407,10 @@ def edit_cave(request, path="", slug=None):
|
|||||||
def edit_entrance(request, path="", caveslug=None, slug=None):
|
def edit_entrance(request, path="", caveslug=None, slug=None):
|
||||||
"""This is the form that edits the entrance data for a single entrance and writes out
|
"""This is the form that edits the entrance data for a single entrance and writes out
|
||||||
an XML file in the :expoweb: repo folder
|
an XML file in the :expoweb: repo folder
|
||||||
|
|
||||||
The format for the file being saved is in templates/dataformat/entrance.xml
|
The format for the file being saved is in templates/dataformat/entrance.xml
|
||||||
Warning. This uses Django deep magic.
|
|
||||||
|
Warning. This uses Django deep magic for multiple forms and the CaveAndEntrance class.
|
||||||
|
|
||||||
It does save the data into into the database directly, not by parsing the file.
|
It does save the data into into the database directly, not by parsing the file.
|
||||||
"""
|
"""
|
||||||
@ -419,7 +421,6 @@ def edit_entrance(request, path="", caveslug=None, slug=None):
|
|||||||
return render(request, "errors/badslug.html", {"badslug": f"{slug} {caveslug} - from edit_entrance()"})
|
return render(request, "errors/badslug.html", {"badslug": f"{slug} {caveslug} - from edit_entrance()"})
|
||||||
|
|
||||||
if slug:
|
if slug:
|
||||||
# entrance = Entrance.objects.get(entranceslug__slug=slug)
|
|
||||||
caveAndEntrance = CaveAndEntrance.objects.get(entrance=entrance, cave=cave)
|
caveAndEntrance = CaveAndEntrance.objects.get(entrance=entrance, cave=cave)
|
||||||
entlettereditable = False
|
entlettereditable = False
|
||||||
else:
|
else:
|
||||||
@ -441,9 +442,6 @@ def edit_entrance(request, path="", caveslug=None, slug=None):
|
|||||||
entrance.cached_primary_slug = slugname
|
entrance.cached_primary_slug = slugname
|
||||||
entrance.filename = slugname + ".html"
|
entrance.filename = slugname + ".html"
|
||||||
entrance.save()
|
entrance.save()
|
||||||
# if slug is None:
|
|
||||||
# es = EntranceSlug(entrance=entrance, slug=slugname, primary=True)
|
|
||||||
# es.save()
|
|
||||||
entrance_file = entrance.file_output()
|
entrance_file = entrance.file_output()
|
||||||
cave_file = cave.file_output()
|
cave_file = cave.file_output()
|
||||||
write_and_commit([entrance_file, cave_file], f"Online edit of {cave}{entletter}")
|
write_and_commit([entrance_file, cave_file], f"Online edit of {cave}{entletter}")
|
||||||
@ -485,29 +483,12 @@ def ent(request, cave_id, ent_letter):
|
|||||||
|
|
||||||
def cave_debug(request):
|
def cave_debug(request):
|
||||||
ents = Entrance.objects.all().order_by('id')
|
ents = Entrance.objects.all().order_by('id')
|
||||||
#slugs = self.entranceslug_set.filter()
|
|
||||||
return render(
|
return render(
|
||||||
request,
|
request,
|
||||||
"cave_debug.html",
|
"cave_debug.html",
|
||||||
{"ents": ents},
|
{"ents": ents},
|
||||||
)
|
)
|
||||||
|
|
||||||
# def entranceSlug(request, slug):
|
|
||||||
# '''This seems to be a fossil, but I am not sure...
|
|
||||||
# '''
|
|
||||||
# entrance = Entrance.objects.get(entranceslug__slug = slug)
|
|
||||||
# if entrance.non_public and not request.user.is_authenticated:
|
|
||||||
# return render(request,'nonpublic.html', {'instance': entrance})
|
|
||||||
# else:
|
|
||||||
# return render(request,'entranceslug.html', {'entrance': entrance})
|
|
||||||
|
|
||||||
# def surveyindex(request):
|
|
||||||
# '''The template does not exist, there is no URL which calls this, so it is a fossil
|
|
||||||
# '''
|
|
||||||
# surveys=Survey.objects.all()
|
|
||||||
# expeditions=Expedition.objects.order_by("-year")
|
|
||||||
# return render(request,'survey.html',locals())
|
|
||||||
|
|
||||||
|
|
||||||
def get_entrances(request, caveslug):
|
def get_entrances(request, caveslug):
|
||||||
try:
|
try:
|
||||||
|
@ -5,7 +5,7 @@ from pathlib import Path
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
|
|
||||||
from troggle.core.models.caves import Area, Cave, CaveAndEntrance, Entrance, GetCaveLookup #EntranceSlug,
|
from troggle.core.models.caves import Area, Cave, CaveAndEntrance, Entrance, GetCaveLookup
|
||||||
from troggle.core.models.logbooks import CaveSlug
|
from troggle.core.models.logbooks import CaveSlug
|
||||||
from troggle.core.models.troggle import DataIssue
|
from troggle.core.models.troggle import DataIssue
|
||||||
from troggle.settings import CAVEDESCRIPTIONS, ENTRANCEDESCRIPTIONS, EXPOWEB, SURVEX_DATA
|
from troggle.settings import CAVEDESCRIPTIONS, ENTRANCEDESCRIPTIONS, EXPOWEB, SURVEX_DATA
|
||||||
@ -46,16 +46,6 @@ def dummy_entrance(k, slug, msg="DUMMY"):
|
|||||||
marking="?",
|
marking="?",
|
||||||
)
|
)
|
||||||
if ent:
|
if ent:
|
||||||
# try: # Now create a entranceslug object
|
|
||||||
# EntranceSlug(entrance=ent, slug=slug)
|
|
||||||
# except:
|
|
||||||
# message = f" ! {k:11s} {msg} cave SLUG '{slug}' create failure"
|
|
||||||
# DataIssue.objects.create(parser="entrances", message=message, url=f"{slug}")
|
|
||||||
# print(message)
|
|
||||||
|
|
||||||
# # ent.cached_slug = slug
|
|
||||||
# # ent.filename = slug + ".html"
|
|
||||||
# # ent.save()
|
|
||||||
return ent
|
return ent
|
||||||
else:
|
else:
|
||||||
message = f" ! {k:11s} {msg}-{slug} {k} entrance create failure"
|
message = f" ! {k:11s} {msg}-{slug} {k} entrance create failure"
|
||||||
@ -82,14 +72,6 @@ def set_dummy_entrance(id, slug, cave, msg="DUMMY"):
|
|||||||
DataIssue.objects.create(parser="entrances", message=message, url=f"{cave.url}")
|
DataIssue.objects.create(parser="entrances", message=message, url=f"{cave.url}")
|
||||||
print(message)
|
print(message)
|
||||||
|
|
||||||
# try:
|
|
||||||
# EntranceSlug.objects.update_or_create(entrance=entrance, slug=slug)
|
|
||||||
# except:
|
|
||||||
# # raise
|
|
||||||
# message = f' ! EntranceSlug setting failure for Dummy cave, slug:"{slug}" cave id :"{id}" '
|
|
||||||
# DataIssue.objects.create(parser="entrances", message=message, url=f"{cave.url}")
|
|
||||||
# print(message)
|
|
||||||
|
|
||||||
def make_areas():
|
def make_areas():
|
||||||
print(" - Creating Areas 1623, 1624, 1627 and 1626")
|
print(" - Creating Areas 1623, 1624, 1627 and 1626")
|
||||||
# This crashes on the server with MariaDB even though a null parent is explicitly allowed.
|
# This crashes on the server with MariaDB even though a null parent is explicitly allowed.
|
||||||
@ -372,25 +354,6 @@ def readentrance(filename):
|
|||||||
message = f" ! - More than one slug for an entrance: {entrance}, slugs: {slugs}. Aborting."
|
message = f" ! - More than one slug for an entrance: {entrance}, slugs: {slugs}. Aborting."
|
||||||
DataIssue.objects.create(parser="entrances", message=message, url=f"/cave/{slug}/edit/")
|
DataIssue.objects.create(parser="entrances", message=message, url=f"/cave/{slug}/edit/")
|
||||||
print(message)
|
print(message)
|
||||||
# for slug in slugs:
|
|
||||||
# # print("entrance slug:{} filename:{}".format(slug, filename))
|
|
||||||
# try:
|
|
||||||
# EntranceSlug.objects.update_or_create(entrance=e, slug=slug)
|
|
||||||
# except:
|
|
||||||
# # need to cope with duplicates
|
|
||||||
# message = f" ! FAILED to get precisely one ENTRANCE when updating using: cave_entrance/{filename}"
|
|
||||||
# DataIssue.objects.create(parser="entrances", message=message, url=f"/cave/{slug}/edit/")
|
|
||||||
# # kents = EntranceSlug.objects.all().filter(entrance=e, slug=slug, primary=primary)
|
|
||||||
# kents = EntranceSlug.objects.all().filter(entrance=e, slug=slug)
|
|
||||||
# for k in kents:
|
|
||||||
# message = " ! - DUPLICATE in db. entrance:" + str(k.entrance) + ", slug:" + str(k.slug())
|
|
||||||
# DataIssue.objects.create(parser="entrances", message=message, url=f"/cave/{slug}/edit/")
|
|
||||||
# print(message)
|
|
||||||
# for k in kents:
|
|
||||||
# if k.slug() is not None:
|
|
||||||
# print(" ! - OVERWRITING this one: slug:" + str(k.slug()))
|
|
||||||
# k.notes = "DUPLICATE entrance found on import. Please fix\n" + k.notes
|
|
||||||
|
|
||||||
|
|
||||||
def readcave(filename):
|
def readcave(filename):
|
||||||
"""Reads an enrance description from the .html file
|
"""Reads an enrance description from the .html file
|
||||||
|
Loading…
Reference in New Issue
Block a user