2
0
mirror of https://expo.survex.com/repositories/troggle/.git synced 2024-11-25 16:51:54 +00:00
This commit is contained in:
Philip Sargent 2023-09-07 00:42:26 +03:00
parent 6b64149131
commit 6d5cee7f6a
2 changed files with 6 additions and 48 deletions

View File

@ -27,19 +27,14 @@ from troggle.parsers.survex import parse_one_file
but also displays data on a cave or caves when there is ambiguity but also displays data on a cave or caves when there is ambiguity
""" """
todo = """- survexcavesingle is not properly producing any result for Homecoming, 1626-359, 2018-dm-07 todo = """
even though there are dozens of surveys.
- filter out the non-public caves from display UNLESS LOGGED IN - filter out the non-public caves from display UNLESS LOGGED IN
- Never actual uses the object for the survexfile, works entirely from the filepath! Make it check and validate - Never actual uses the object for the survexfile, works entirely from the filepath! Make it check and validate
- the primary survex file in each cave directory should be in a configuration? not buried in the code - the primary survex file in each cave directory should be in a configuration? not buried in the code
and implicit in the order of *import statements ? and implicit in the order of *import statements ? It is in the cave_data file.
- Save and re-parse an edited survexfile which already exists in the db, and update
all its dependencies (work in progress)
- overlapping and cross-calling when things fail make this hard to undersand, e.g. svx() and - overlapping and cross-calling when things fail make this hard to undersand, e.g. svx() and
survexcavessingle() can get called for a survex file depending on whether the URL ends in ".svx" or not, survexcavessingle() can get called for a survex file depending on whether the URL ends in ".svx" or not,
but each tries to handle the other case too. but each tries to handle the other case too.
@ -648,23 +643,9 @@ def survexcaveslist(request):
) )
def survexdir(request): def survexdir(request):
"""report on all the SurvexDirectory objects """report on all the primary survex files, per cave and per directory
We are trying to find out how mismatches have crept in.
and whether the whole SurvexDirectory class is actually redundant
as the info it holds is always embedded in the survexFile path directories
""" """
# sds = SurvexDirectory.objects.all() #.order_by("cave")
sds ={}
# for sd in sds:
# sd.matchbad = True
# if f"{sd.primarysurvexfile}".startswith(str(sd.path)):
# sd.matchbad = False
# sd.pathbad = True
# if Path(settings.SURVEX_DATA, f"{sd.primarysurvexfile}.svx").is_file():
# sd.pathbad = False
survexfiles = SurvexFile.objects.all().order_by("cave") survexfiles = SurvexFile.objects.all().order_by("cave")
for f in survexfiles: for f in survexfiles:
f.pathbad = True f.pathbad = True
@ -692,11 +673,6 @@ def survexcavesingle(request, cave_shortname):
cave.sds = get_primaries(cave) cave.sds = get_primaries(cave)
return render(request, "svxcaves.html", {"settings": settings, "caves": [cave]}) return render(request, "svxcaves.html", {"settings": settings, "caves": [cave]})
else: else:
# not a cave or an ambiguous short name, e.g. "122"
# if (SVXPATH / Path(cave_shortname + ".svx")).is_file():
# return svx(request, cave_shortname)
caves = Cave.objects.filter(kataster_number=cave_shortname) caves = Cave.objects.filter(kataster_number=cave_shortname)
if len(caves) > 0: if len(caves) > 0:
# print(f"many {cave_shortname=} => {caves=}") # print(f"many {cave_shortname=} => {caves=}")

View File

@ -2340,7 +2340,7 @@ def parse_one_file(fpath): # --------------------------------------in progress--
This all needs refactoring. This all needs refactoring.
We also need to re-plumb the fileroot after importing, so that We also need to re-plumb the fileroot after importing, so that
the new survexfile appears in the survexdirectory lists the new survexfile appears in the survexdirectory lists?
""" """
if svxfileroot == None: if svxfileroot == None:
svxfileroot = MakeFileRoot(fpath) svxfileroot = MakeFileRoot(fpath)
@ -2368,13 +2368,10 @@ def parse_one_file(fpath): # --------------------------------------in progress--
# Now we don't need or want the dummy any more # Now we don't need or want the dummy any more
block_dummy.delete() block_dummy.delete()
#svxfile.survexdirectory =
global svx_load global svx_load
print(f"\n - Loading One Survex file '{fpath}'", file=sys.stderr) print(f"\n - Loading One Survex file '{fpath}'", file=sys.stderr)
svx_load = LoadingSurvex() svx_load = LoadingSurvex()
#svx_load.survexdict = {}
fname = Path(settings.SURVEX_DATA, (fpath + ".svx")) fname = Path(settings.SURVEX_DATA, (fpath + ".svx"))
@ -2440,15 +2437,6 @@ def parse_one_file(fpath): # --------------------------------------in progress--
#=========== #===========
parse_new_svx(fpath,svx_load) parse_new_svx(fpath,svx_load)
#=========== #===========
# print(f" - Number of SurvexDirectories: {len(svx_load.survexdict):,}")
# tf = 0
# for d in svx_load.survexdict:
# print(f" - SD: {d}")
# tf += len(svx_load.survexdict[d])
# print(f" - Number of SurvexFiles: {tf:,}")
# print(f" - Number of Survex legs: {svx_load.legsnumber:,}")
# print(f" - Length of Survex legs: {svx_load.slength:.2f} m")
svx_load = None svx_load = None
return True return True
@ -2460,12 +2448,6 @@ def MakeSurvexFileRoot():
fileroot = SurvexFile(path=settings.SURVEX_TOPNAME, cave=None) fileroot = SurvexFile(path=settings.SURVEX_TOPNAME, cave=None)
fileroot.save() fileroot.save()
#directoryroot = SurvexDirectory(path=settings.SURVEX_DATA, primarysurvexfile=fileroot)
# MariaDB doesn't like this hack. Complains about non-null cave_id EVEN THOUGH our model file says this is OK:
# cave = models.ForeignKey('Cave', blank=True, null=True,on_delete=models.SET_NULL)
#directoryroot.save()
#fileroot.survexdirectory = directoryroot # i.e. SURVEX_DATA/SURVEX_TOPNAME
#fileroot.save() # mutually dependent objects need a double-save like this
return fileroot return fileroot