rename ScansFolder class as Wallet

This commit is contained in:
Philip Sargent 2021-04-26 18:18:16 +01:00
parent dc840c9bc7
commit 0997fd0901
5 changed files with 19 additions and 19 deletions

View File

@ -7,7 +7,7 @@ from django.core import serializers
from troggle.core.views.other import downloadlogbook from troggle.core.views.other import downloadlogbook
from troggle.core.models.troggle import Person, PersonExpedition, Expedition, DataIssue from troggle.core.models.troggle import Person, PersonExpedition, Expedition, DataIssue
from troggle.core.models.caves import Cave, Area, Entrance, CaveAndEntrance, LogbookEntry, PersonTrip, QM from troggle.core.models.caves import Cave, Area, Entrance, CaveAndEntrance, LogbookEntry, PersonTrip, QM
from troggle.core.models.survex import SurvexBlock, SurvexPersonRole, SurvexStation, ScansFolder, SingleScan from troggle.core.models.survex import SurvexBlock, SurvexPersonRole, SurvexStation, Wallet, SingleScan
'''This code significantly adds to the capabilities of the Django Management control panel for Troggle data. '''This code significantly adds to the capabilities of the Django Management control panel for Troggle data.
In particular, it enables JSON export of any data with 'export_as_json' In particular, it enables JSON export of any data with 'export_as_json'
@ -118,7 +118,7 @@ admin.site.register(PersonExpedition,PersonExpeditionAdmin)
admin.site.register(LogbookEntry, LogbookEntryAdmin) admin.site.register(LogbookEntry, LogbookEntryAdmin)
admin.site.register(QM, QMAdmin) admin.site.register(QM, QMAdmin)
admin.site.register(SurvexStation) admin.site.register(SurvexStation)
admin.site.register(ScansFolder) admin.site.register(Wallet)
admin.site.register(SingleScan) admin.site.register(SingleScan)
admin.site.register(DataIssue) admin.site.register(DataIssue)

View File

@ -114,7 +114,7 @@ class SurvexBlock(models.Model):
survexfile = models.ForeignKey("SurvexFile", blank=True, null=True,on_delete=models.SET_NULL) survexfile = models.ForeignKey("SurvexFile", blank=True, null=True,on_delete=models.SET_NULL)
survexpath = models.CharField(max_length=200) # the path for the survex stations survexpath = models.CharField(max_length=200) # the path for the survex stations
scansfolder = models.ForeignKey("ScansFolder", null=True,on_delete=models.SET_NULL) scansfolder = models.ForeignKey("Wallet", null=True,on_delete=models.SET_NULL)
legsall = models.IntegerField(null=True) # summary data for this block legsall = models.IntegerField(null=True) # summary data for this block
legslength = models.FloatField(null=True) legslength = models.FloatField(null=True)
@ -172,7 +172,7 @@ class SurvexPersonRole(models.Model):
def __str__(self): def __str__(self):
return str(self.person) + " - " + str(self.survexblock) + " - " + str(self.nrole) return str(self.person) + " - " + str(self.survexblock) + " - " + str(self.nrole)
class ScansFolder(models.Model): class Wallet(models.Model):
fpath = models.CharField(max_length=200) fpath = models.CharField(max_length=200)
walletname = models.CharField(max_length=200) walletname = models.CharField(max_length=200)
@ -188,7 +188,7 @@ class ScansFolder(models.Model):
class SingleScan(models.Model): class SingleScan(models.Model):
ffile = models.CharField(max_length=200) ffile = models.CharField(max_length=200)
name = models.CharField(max_length=200) name = models.CharField(max_length=200)
scansfolder = models.ForeignKey("ScansFolder", null=True,on_delete=models.SET_NULL) scansfolder = models.ForeignKey("Wallet", null=True,on_delete=models.SET_NULL)
class Meta: class Meta:
ordering = ('name',) ordering = ('name',)
@ -203,7 +203,7 @@ class DrawingFile(models.Model):
dwgpath = models.CharField(max_length=200) dwgpath = models.CharField(max_length=200)
tunnelname = models.CharField(max_length=200) tunnelname = models.CharField(max_length=200)
bfontcolours = models.BooleanField(default=False) # UNUSED now, can be deleted bfontcolours = models.BooleanField(default=False) # UNUSED now, can be deleted
manyscansfolders = models.ManyToManyField("ScansFolder") # implicitly links via folders to scans to SVX files manyscansfolders = models.ManyToManyField("Wallet") # implicitly links via folders to scans to SVX files
scans = models.ManyToManyField("SingleScan") # implicitly links via scans to SVX files scans = models.ManyToManyField("SingleScan") # implicitly links via scans to SVX files
tunnelcontains = models.ManyToManyField("DrawingFile") # case when its a frame type tunnelcontains = models.ManyToManyField("DrawingFile") # case when its a frame type
filesize = models.IntegerField(default=0) filesize = models.IntegerField(default=0)

View File

@ -8,7 +8,7 @@ from django.conf import settings
from django.shortcuts import render from django.shortcuts import render
from django.http import HttpResponse, Http404 from django.http import HttpResponse, Http404
from troggle.core.models.survex import ScansFolder, SingleScan, SurvexBlock, DrawingFile from troggle.core.models.survex import Wallet, SingleScan, SurvexBlock, DrawingFile
from troggle.core.views.expo import getmimetype from troggle.core.views.expo import getmimetype
import parsers.surveys import parsers.surveys
@ -21,9 +21,9 @@ and render a user-friendly error page.
''' '''
def scanswallet(request, path): def scanswallet(request, path):
#print [ s.walletname for s in ScansFolder.objects.all() ] #print [ s.walletname for s in Wallet.objects.all() ]
try: try:
scansfolder = ScansFolder.objects.get(walletname=urlunquote(path)) scansfolder = Wallet.objects.get(walletname=urlunquote(path))
return render(request, 'scansfolder.html', { 'scansfolder':scansfolder, 'settings': settings }) return render(request, 'scansfolder.html', { 'scansfolder':scansfolder, 'settings': settings })
except: except:
message = f'Scan folder error or not found \'{path}\' .' message = f'Scan folder error or not found \'{path}\' .'
@ -33,7 +33,7 @@ def scansingle(request, path, file):
'''sends a single binary file to the user for display - browser decides how using mimetype '''sends a single binary file to the user for display - browser decides how using mimetype
''' '''
try: try:
scansfolder = ScansFolder.objects.get(walletname=urlunquote(path)) scansfolder = Wallet.objects.get(walletname=urlunquote(path))
singlescan = SingleScan.objects.get(scansfolder=scansfolder, name=file) singlescan = SingleScan.objects.get(scansfolder=scansfolder, name=file)
# print(" - scansingle {}:{}:{}:".format(path, file, getmimetype(file))) # print(" - scansingle {}:{}:{}:".format(path, file, getmimetype(file)))
return HttpResponse(content=open(singlescan.ffile,"rb"), content_type=getmimetype(file)) # any type of image return HttpResponse(content=open(singlescan.ffile,"rb"), content_type=getmimetype(file)) # any type of image
@ -43,7 +43,7 @@ def scansingle(request, path, file):
def scanswallets(request): def scanswallets(request):
manyscansfolders = ScansFolder.objects.all() manyscansfolders = Wallet.objects.all()
return render(request, 'manyscansfolders.html', { 'manyscansfolders':manyscansfolders, 'settings': settings }) return render(request, 'manyscansfolders.html', { 'manyscansfolders':manyscansfolders, 'settings': settings })

View File

@ -17,7 +17,7 @@ from troggle.core.utils import get_process_memory, chaosmonkey
from troggle.parsers.people import GetPersonExpeditionNameLookup from troggle.parsers.people import GetPersonExpeditionNameLookup
from troggle.parsers.logbooks import GetCaveLookup from troggle.parsers.logbooks import GetCaveLookup
from troggle.core.models.troggle import DataIssue, Expedition from troggle.core.models.troggle import DataIssue, Expedition
from troggle.core.models.survex import SurvexPersonRole, ScansFolder, SurvexDirectory, SurvexFile, SurvexBlock, SurvexStation from troggle.core.models.survex import SurvexPersonRole, Wallet, SurvexDirectory, SurvexFile, SurvexBlock, SurvexStation
'''Imports the tree of survex files following form a defined root .svx file '''Imports the tree of survex files following form a defined root .svx file
It does also NOT scan the Loser repo for all the svx files - though it should ! It does also NOT scan the Loser repo for all the svx files - though it should !
@ -473,7 +473,7 @@ class LoadingSurvex():
message = " ! Wallet *REF {} - not numeric in '{}'".format(refscan, survexblock.survexfile.path) message = " ! Wallet *REF {} - not numeric in '{}'".format(refscan, survexblock.survexfile.path)
print((self.insp+message)) print((self.insp+message))
DataIssue.objects.create(parser='survex', message=message) DataIssue.objects.create(parser='survex', message=message)
manyscansfolders = ScansFolder.objects.filter(walletname=refscan) manyscansfolders = Wallet.objects.filter(walletname=refscan)
if manyscansfolders: if manyscansfolders:
survexblock.scansfolder = manyscansfolders[0] # this is a ForeignKey field survexblock.scansfolder = manyscansfolders[0] # this is a ForeignKey field
print(manyscansfolders[0]) print(manyscansfolders[0])

View File

@ -10,7 +10,7 @@ from PIL import Image
from functools import reduce from functools import reduce
import settings import settings
from troggle.core.models.survex import SingleScan, ScansFolder, DrawingFile from troggle.core.models.survex import SingleScan, Wallet, DrawingFile
from troggle.core.models.troggle import DataIssue from troggle.core.models.troggle import DataIssue
from troggle.core.utils import save_carefully from troggle.core.utils import save_carefully
@ -85,11 +85,11 @@ def LoadListScans():
print(' - Loading Survey Scans') print(' - Loading Survey Scans')
SingleScan.objects.all().delete() SingleScan.objects.all().delete()
ScansFolder.objects.all().delete() Wallet.objects.all().delete()
print(' - deleting all scansFolder and scansSingle objects') print(' - deleting all scansFolder and scansSingle objects')
# first do the smkhs (large kh survey scans) directory # first do the smkhs (large kh survey scans) directory
manyscansfoldersmkhs = ScansFolder(fpath=os.path.join(settings.SURVEY_SCANS, "../surveys/smkhs"), walletname="smkhs") manyscansfoldersmkhs = Wallet(fpath=os.path.join(settings.SURVEY_SCANS, "../surveys/smkhs"), walletname="smkhs")
print("smkhs", end=' ') print("smkhs", end=' ')
if os.path.isdir(manyscansfoldersmkhs.fpath): if os.path.isdir(manyscansfoldersmkhs.fpath):
manyscansfoldersmkhs.save() manyscansfoldersmkhs.save()
@ -107,13 +107,13 @@ def LoadListScans():
print("%s" % f, end=' ') print("%s" % f, end=' ')
for fy, ffy, fisdiry in GetListDir(ff): for fy, ffy, fisdiry in GetListDir(ff):
if fisdiry: if fisdiry:
scansfolder = ScansFolder(fpath=ffy, walletname=fy) scansfolder = Wallet(fpath=ffy, walletname=fy)
scansfolder.save() scansfolder.save()
LoadListScansFile(scansfolder) LoadListScansFile(scansfolder)
# do the # do the
elif f != "thumbs": elif f != "thumbs":
scansfolder = ScansFolder(fpath=ff, walletname=f) scansfolder = Wallet(fpath=ff, walletname=f)
scansfolder.save() scansfolder.save()
LoadListScansFile(scansfolder) LoadListScansFile(scansfolder)
@ -125,7 +125,7 @@ def find_tunnel_scan(dwgfile, path):
scansfolder, scansfile = None, None scansfolder, scansfile = None, None
mscansdir = re.search(r"(\d\d\d\d#X?\d+\w?|1995-96kh|92-94Surveybookkh|1991surveybook|smkhs)/(.*?(?:png|jpg|pdf|jpeg))$", path) mscansdir = re.search(r"(\d\d\d\d#X?\d+\w?|1995-96kh|92-94Surveybookkh|1991surveybook|smkhs)/(.*?(?:png|jpg|pdf|jpeg))$", path)
if mscansdir: if mscansdir:
scansfolderl = ScansFolder.objects.filter(walletname=mscansdir.group(1)) scansfolderl = Wallet.objects.filter(walletname=mscansdir.group(1))
# This should properly detect if a list of folders is returned and do something sensible, not just pick the first. # This should properly detect if a list of folders is returned and do something sensible, not just pick the first.
if len(scansfolderl): if len(scansfolderl):
scansfolder = scansfolderl[0] scansfolder = scansfolderl[0]