forked from expo/troggle
rename ScansFolder class as Wallet
This commit is contained in:
parent
dc840c9bc7
commit
0997fd0901
@ -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)
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
@ -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 })
|
||||||
|
|
||||||
|
|
||||||
|
@ -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])
|
||||||
|
@ -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]
|
||||||
|
Loading…
Reference in New Issue
Block a user