ruf cleanup imports, bigly.

This commit is contained in:
2023-01-30 23:04:11 +00:00
parent e35fccea5d
commit 3aca0d0c76
29 changed files with 165 additions and 325 deletions

View File

@@ -1,4 +1,3 @@
from builtins import str
from django.conf import settings
from django.contrib.auth import authenticate

View File

@@ -1,24 +1,18 @@
import os
import re
import string
import subprocess
import urllib.parse
from pathlib import Path
from django import forms
from django.conf import settings
from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist
from django.http import HttpResponse, HttpResponseNotFound, HttpResponseRedirect
from django.shortcuts import get_object_or_404, render
from django.urls import NoReverseMatch, reverse
from django.shortcuts import render
from django.urls import NoReverseMatch
import settings
import troggle.settings as settings
from troggle.core.forms import CaveAndEntranceFormSet, CaveForm, EntranceForm, EntranceLetterForm
from troggle.core.models.caves import Area, Cave, CaveAndEntrance, Entrance, EntranceSlug, GetCaveLookup, SurvexStation
from troggle.core.models.caves import Cave, CaveAndEntrance, Entrance, EntranceSlug, GetCaveLookup
from troggle.core.models.logbooks import CaveSlug, QM
from troggle.core.models.troggle import DataIssue, Expedition
from troggle.core.utils import write_and_commit, writetrogglefile
from troggle.core.utils import write_and_commit
from troggle.core.views import expo
from .auth import login_required_if_public
@@ -107,13 +101,13 @@ def getnotablecaves():
caves = Cave.objects.all().filter(kataster_number=kataster_number)
for c in caves:
# print(c.kataster_number, c.slug())
if c.slug() != None:
if c.slug() is not None:
notablecaves.append(c)
return notablecaves
def caveindex(request):
caves = Cave.objects.all()
Cave.objects.all()
caves1623 = list(Cave.objects.filter(area__short_name="1623"))
caves1626 = list(Cave.objects.filter(area__short_name="1626"))
caves1623.sort(key=caveKey)
@@ -201,7 +195,6 @@ def file3d(request, cave, cave_id):
survexpath = Path(settings.SURVEX_DATA, cave.survex_file)
threedname = Path(survexname).with_suffix(".3d") # removes .svx, replaces with .3d
threedpath = Path(settings.SURVEX_DATA, threedname)
threedcachedir = Path(settings.SURVEX_DATA)
# These if statements need refactoring more cleanly
if cave.survex_file:

View File

@@ -1,9 +1,4 @@
import os
import re
import stat
from pathlib import Path
from urllib.parse import unquote as urlunquote
from urllib.parse import urljoin
from django.conf import settings
from django.http import HttpResponse

View File

@@ -1,12 +1,11 @@
import io
import re
from pathlib import Path
import django.forms as forms
from django.http import Http404, HttpResponse, HttpResponseRedirect, JsonResponse
from django.shortcuts import redirect, render
from django.template import Context, loader
from django.urls import resolve, reverse
from django.http import JsonResponse
from django.shortcuts import render
from django.template import loader
from django.urls import reverse
from django.views.decorators.csrf import ensure_csrf_cookie
from PIL import Image

View File

@@ -4,14 +4,11 @@ from pathlib import Path
from sys import getfilesystemencoding as sys_getfilesystemencoding
from urllib.parse import unquote as urlunquote
from urllib.parse import urljoin
from urllib.request import urlopen
import django.forms as forms
from django.contrib import admin
from django.http import Http404, HttpResponse, HttpResponseRedirect
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import redirect, render
from django.template import Context, loader
from django.urls import resolve, reverse
from django.urls import reverse
from django.views.decorators.csrf import ensure_csrf_cookie
import troggle.core.views.caves

View File

@@ -1,28 +1,15 @@
import datetime
import os.path
import re
import time
import django.db.models
from django.db.models import Max, Min
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render
from django.template import Context, loader
from django.template.defaultfilters import slugify
from django.urls import reverse
from django.utils import timezone
from django.views.generic.list import ListView
import troggle.settings as settings
from troggle.core.models.logbooks import LogbookEntry, PersonLogEntry
from troggle.core.models.survex import SurvexBlock
from troggle.core.models.troggle import Expedition, Person, PersonExpedition
from troggle.core.models.troggle import Expedition, Person
from troggle.core.models.wallets import Wallet
from troggle.core.utils import TROG
from troggle.parsers.imports import import_logbook
from troggle.parsers.people import GetPersonExpeditionNameLookup
from .auth import login_required_if_public
"""These views are for logbook items when they appear in an 'expedition' page
and for persons: their individual pages and their perseonexpedition pages.
@@ -78,7 +65,7 @@ def expedition(request, expeditionname):
expo = Expedition.objects.get(year=int(expeditionname))
except:
message = (
f"Expedition not found - database apparently empty, you probably need to do a full re-import of all data."
"Expedition not found - database apparently empty, you probably need to do a full re-import of all data."
)
return render(request, "errors/generic.html", {"message": message})
@@ -92,7 +79,7 @@ def expedition(request, expeditionname):
ts = TROG["pagecache"]["expedition"] # not much use unless single user!
if settings.CACHEDPAGES:
nexpos = len(TROG["pagecache"]["expedition"])
len(TROG["pagecache"]["expedition"])
# print(f'! - expo {expeditionname} CACHEDPAGES {nexpos} expo pages in cache.')
if expeditionname in ts:
# print('! - expo {expeditionanme} using cached page')

View File

@@ -1,23 +1,16 @@
import os
import re
import subprocess
from pathlib import Path
from django import forms
from django.conf import settings
from django.core.files.storage import FileSystemStorage, default_storage
from django.db.models import Q
from django.http import HttpResponse, HttpResponseRedirect
from django.http import HttpResponse
from django.shortcuts import render
from django.template import Context, loader
from django.urls import reverse
from django.template import loader
from troggle.core.models.caves import Cave
from troggle.core.models.logbooks import QM, LogbookEntry # , PersonLogEntry
from troggle.core.models.survex import DrawingFile
from troggle.core.models.logbooks import LogbookEntry # , PersonLogEntry
# from databaseReset import reinit_db # don't do this. databaseRest runs code *at import time*
from troggle.core.models.troggle import Expedition, Person, PersonExpedition
from troggle.core.models.troggle import Expedition
from troggle.parsers.imports import (
import_caves,
import_drawingsfiles,

View File

@@ -1,15 +1,11 @@
import os
import re
import string
import urllib.parse
from django.http import HttpResponse
from django.shortcuts import render
import troggle.settings as settings
from troggle.core.models.caves import Area, Cave, Entrance, SurvexStation
from troggle.core.models.caves import Area, Cave, Entrance
from troggle.core.views.caves import caveKey
from troggle.parsers.locations import MapLocations
# from pathlib import Path
@@ -65,7 +61,7 @@ def prospecting(request):
has been disabled.
"""
message = (
f"This prospecting guide text report contains many broken URLs because of a major redesign\n"
"This prospecting guide text report contains many broken URLs because of a major redesign\n"
+ " to put caves into 1623/ and 1624/ folders in 2017. It was mostly useless because recent QM info was not in it anyway.\n\n"
+ 'It is disabled in the python code in "prospecting(request):" in troggle/core/views/prospect.py'
)

View File

@@ -1,19 +1,14 @@
import datetime
import os
import re
import stat
from pathlib import Path
from urllib.parse import unquote as urlunquote
from urllib.parse import urljoin
from urllib.request import urlopen
from django.conf import settings
from django.db import transaction
from django.http import HttpResponse
from django.shortcuts import render
from troggle.core.models.caves import GetCaveLookup
from troggle.core.models.survex import SingleScan, SurvexBlock, Wallet
from troggle.core.models.survex import SingleScan, SurvexBlock
from troggle.core.models.wallets import Wallet
from troggle.core.models.troggle import DataIssue, Expedition, Person
from troggle.core.views.expo import getmimetype
@@ -158,7 +153,7 @@ def walletslistperson(request, first_name, last_name):
fixsurvextick(w, w.ticks)
return manywallets
print(f"-walletslistperson")
print("-walletslistperson")
try:
if last_name:
@@ -176,7 +171,7 @@ def walletslistperson(request, first_name, last_name):
manywallets = tickspersonwallet(p)
expeditions = Expedition.objects.all()
print(f"--")
print("--")
return render(
request,
"personwallets.html",
@@ -209,7 +204,7 @@ def walletslistyear(request, year):
return manywallets
print(f"-walletslistyear")
print("-walletslistyear")
if year < 1976 or year > 2050:
return render(request, "errors/generic.html", {"message": "Year out of range. Must be between 1976 and 2050"})
@@ -219,7 +214,7 @@ def walletslistyear(request, year):
manywallets = ticksyearwallet(year)
expeditions = Expedition.objects.all()
expedition = expeditions.filter(year=year)
print(f"--")
print("--")
return render(
request,
"yearwallets.html",
@@ -235,7 +230,7 @@ def walletslistyear(request, year):
def cavewallets(request, caveid):
"""Returns all the wallets for just one cave"""
print(f"-cavewalletsl")
print("-cavewalletsl")
Gcavelookup = GetCaveLookup()
if caveid in Gcavelookup:
@@ -270,7 +265,7 @@ def cavewallets(request, caveid):
w.ticks = w.get_ticks() # the complaints in colour form, from the json file on disc
fixsurvextick(w, w.ticks)
expeditions = Expedition.objects.all()
print(f"--")
print("--")
return render(
request,
"cavewallets.html",

View File

@@ -1,21 +1,12 @@
import datetime
import operator
import os.path
import re
from collections import OrderedDict
from pathlib import Path
import django.db.models
from django.db.models import Max, Min
from django.shortcuts import render
from django.template import Context, loader
from django.template.defaultfilters import slugify
from django.utils import timezone
import troggle.settings as settings
from troggle.core.models.caves import Cave, Entrance
from troggle.core.models.logbooks import LogbookEntry
from troggle.core.models.survex import SurvexBlock, SurvexStation
from troggle.core.models.survex import SurvexStation
from troggle.core.models.troggle import DataIssue, Expedition, Person, PersonExpedition
from troggle.parsers.people import GetPersonExpeditionNameLookup, foreign_friends

View File

@@ -7,19 +7,13 @@ from pathlib import Path
from django import forms
from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist
from django.http import Http404, HttpResponse, HttpResponseRedirect
from django.http import HttpResponse
from django.shortcuts import render
from django.template.context_processors import csrf
from django.views.decorators.csrf import ensure_csrf_cookie
import parsers.survex
import troggle.settings as settings
from troggle.core.models.caves import Cave
from troggle.core.models.logbooks import LogbookEntry # , PersonLogEntry
from troggle.core.models.survex import SurvexBlock, SurvexDirectory, SurvexFile, SurvexPersonRole
from troggle.core.models.troggle import Expedition, Person, PersonExpedition
from troggle.core.utils import WriteAndCommitError, only_commit
from troggle.parsers.people import GetPersonExpeditionNameLookup
from troggle.core.utils import only_commit
"""Everything that views survexfiles
but also displays data on a cave or caves when there is ambiguity
@@ -165,8 +159,8 @@ class SvxForm(forms.Form):
)
# javascript seems to insert CRLF on WSL1 whatever you say. So fix that:
res = fout.write(rcode.replace("\r", ""))
res = fout.write("\n")
fout.write(rcode.replace("\r", ""))
fout.write("\n")
fout.close()
if socket.gethostname() == "expo":
@@ -323,7 +317,7 @@ def process(survex_file):
def threed(request, survex_file):
filepath3d = survexdatasetpath / str(survex_file + ".3d")
filepathlog = survexdatasetpath / str(survex_file + ".log")
survexdatasetpath / str(survex_file + ".log")
if filepath3d.is_file():
threed = open(filepath3d, "rb")
return HttpResponse(threed, content_type="application/x-aven")
@@ -447,7 +441,7 @@ def survexcaveslist(request):
if os.path.isdir(gcavedir) and cavedir[0] != ".":
subdirs, subsvx = identifycavedircontents(gcavedir)
caveid = check_cave_registered(
check_cave_registered(
area, cavedir
) # should do this only once per database load or it will be slow
survdirobj = []

View File

@@ -1,45 +1,30 @@
import datetime
import json
import operator
import os
import re
import socket
import subprocess
import urllib
from functools import reduce
from pathlib import Path
from urllib.parse import unquote
from django import forms
from django.conf import settings
from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist
from django.core.files.storage import FileSystemStorage, default_storage
from django.db.models import Q
from django.http import HttpResponse, HttpResponseRedirect
from django.core.files.storage import FileSystemStorage
from django.http import HttpResponseRedirect
from django.shortcuts import render
from django.template import Context, loader
from django.urls import reverse
import settings
from troggle.core.models.caves import Cave
from troggle.core.models.logbooks import QM, LogbookEntry # , PersonLogEntry
from troggle.core.models.survex import DrawingFile, SurvexBlock, SurvexFile, SurvexPersonRole, Wallet
from troggle.core.models.logbooks import LogbookEntry # , PersonLogEntry
from troggle.core.models.survex import DrawingFile, SurvexBlock, SurvexFile, SurvexPersonRole
from troggle.core.models.wallets import Wallet
# from databaseReset import reinit_db # don't do this. databaseRest runs code *at import time*
from troggle.core.models.troggle import DataIssue, Expedition, Person, PersonExpedition
from troggle.core.models.troggle import DataIssue, Expedition
from troggle.core.views.caves import getCave
from troggle.core.views.scans import caveifywallet, oldwallet
# from troggle import settings
from troggle.parsers.imports import (
import_caves,
import_drawingsfiles,
import_logbooks,
import_people,
import_QMs,
import_survex,
import_surveyscans,
)
from troggle.parsers.scans import contentsjson
from .auth import login_required_if_public
@@ -194,13 +179,13 @@ def get_complaints(complaints, waldata, svxfiles, files, wallet, wurl):
else:
try:
sxpath = str(Path(sx).with_suffix(""))
svxfile = SurvexFile.objects.get(path=sxpath)
SurvexFile.objects.get(path=sxpath)
except MultipleObjectsReturned:
# can happen if connecting a wallet to a survex file.. i think..
QSsvxfiles = SurvexFile.objects.filter(path=sxpath)
for s in QSsvxfiles:
print(s.path, s.cave, s.survexdirectory)
svxfile = QSsvxfiles[0] # dont' know how this happened, fix later..
# QSsvxfiles[0] # dont' know how this happened, fix later..
except:
file_complaint = (
f"{wallet} Survex file {sx} exists, but is not registered in the database {sxpath}. How?.."
@@ -286,7 +271,7 @@ def get_complaints(complaints, waldata, svxfiles, files, wallet, wurl):
caveobject = None
else:
complaints.append(
f'No cave ID is given. If there is no survex file, please give something, even if it is just "1623-000", "surface survey" or "scraps found in hut"'
'No cave ID is given. If there is no survex file, please give something, even if it is just "1623-000", "surface survey" or "scraps found in hut"'
)
caveobject = None
@@ -323,7 +308,6 @@ def scanupload(request, path=None):
Should sanitise to ensure no spurious backslashes e.g. in windows style paths"""
waldata = {}
if contents_path.is_file():
create = False # yes wallet exists because JSON exists, even if no files in the surveyscans folder, or even if that folder does not exist
with open(contents_path) as json_file:
try:
waldata = json.load(json_file)
@@ -333,7 +317,7 @@ def scanupload(request, path=None):
DataIssue.objects.create(parser="scans", message=message, url=wurl) # set URL to this wallet folder
raise
else: # no JSON file exists
print(f"--- No JSON exists, so creating blank copy")
print("--- No JSON exists, so creating blank copy")
waldata = WALLET_BLANK_JSON.copy()
if not waldata["survex file"]:
try:
@@ -347,10 +331,9 @@ def scanupload(request, path=None):
return waldata
def save_json(jsondict):
newfolder = contents_path.parent
# print(f'--- Wallet directory in :drawings: repo {newfolder=} {jsondict}')
if not os.path.exists(contents_path.parent):
print(f"--- No wallet directory in :drawings: repo, so creating it")
print("--- No wallet directory in :drawings: repo, so creating it")
os.makedirs(contents_path.parent)
with open(contents_path, "w") as jfile:
@@ -521,7 +504,7 @@ def scanupload(request, path=None):
commit_json(wd)
else:
print(f"--- INVALID JSON Update form submitted")
print("--- INVALID JSON Update form submitted")
print(formj.errors)
return render(request, "errors/generic.html", {"message": formj.errors})
@@ -671,7 +654,7 @@ def scanupload(request, path=None):
# else:
# print(f' - Wallet not matching *ref {b.scanswallet=} {wallet}')
except:
message = f"Specified survex file not found - database may be empty, or this survex file is not *included anywhere."
message = "Specified survex file not found - database may be empty, or this survex file is not *included anywhere."
# return render(request, 'errors/generic.html', {'message': message})
pass
@@ -704,7 +687,7 @@ def scanupload(request, path=None):
print(f" - Setting wallet name to {names[0]}")
elif len(names) == 0:
waldata["name"] = ""
print(f" - Setting wallet name blank")
print(" - Setting wallet name blank")
else:
waldata["name"] = f"several, please edit: {names}"
print(