summaryrefslogtreecommitdiffstats
path: root/core/views/surveys.py
diff options
context:
space:
mode:
Diffstat (limited to 'core/views/surveys.py')
-rw-r--r--core/views/surveys.py51
1 files changed, 36 insertions, 15 deletions
diff --git a/core/views/surveys.py b/core/views/surveys.py
index 22be7ec..2737a05 100644
--- a/core/views/surveys.py
+++ b/core/views/surveys.py
@@ -16,22 +16,30 @@ import parsers.surveys
as does the urls.py dispatcher which sends them here. Here they should actually have the filetype checked
by looking inside the file before being served.
- need to check if inavlid query string is invalid, or produces multiple replies
- and render a user-friendly error page.
+need to check if inavlid query string is invalid, or produces multiple replies
+and render a user-friendly error page.
'''
def surveyscansfolder(request, path):
#print [ s.walletname for s in ScansFolder.objects.all() ]
- scansfolder = ScansFolder.objects.get(walletname=urlunquote(path)) # need to check if inavlid query string and produce friendly error
- return render(request, 'scansfolder.html', { 'scansfolder':scansfolder, 'settings': settings })
+ try:
+ scansfolder = ScansFolder.objects.get(walletname=urlunquote(path))
+ return render(request, 'scansfolder.html', { 'scansfolder':scansfolder, 'settings': settings })
+ except:
+ message = f'Scan folder error or not found \'{path}\' .'
+ return render(request, 'errors/generic.html', {'message': message})
def surveyscansingle(request, path, file):
- '''sends a single binary file to the user,
+ '''sends a single binary file to the user for display - browser decides how using mimetype
'''
- scansfolder = ScansFolder.objects.get(walletname=urlunquote(path)) # need to check if inavlid query string and produce friendly error
- singlescan = SingleScan.objects.get(scansfolder=scansfolder, name=file)
- # print(" - surveyscansingle {}:{}:{}:".format(path, file, getmimetype(file)))
- return HttpResponse(content=open(singlescan.ffile,"rb"), content_type=getmimetype(file)) # any type of image
+ try:
+ scansfolder = ScansFolder.objects.get(walletname=urlunquote(path))
+ singlescan = SingleScan.objects.get(scansfolder=scansfolder, name=file)
+ # print(" - surveyscansingle {}:{}:{}:".format(path, file, getmimetype(file)))
+ return HttpResponse(content=open(singlescan.ffile,"rb"), content_type=getmimetype(file)) # any type of image
+ except:
+ message = f'Scan folder or scan item error or not found \'{path}\' and \'{file}\'.'
+ return render(request, 'errors/generic.html', {'message': message})
def surveyscansfolders(request):
@@ -39,16 +47,23 @@ def surveyscansfolders(request):
return render(request, 'manyscansfolders.html', { 'manyscansfolders':manyscansfolders, 'settings': settings })
-def tunneldata(request):
+def dwgdata(request):
+ '''Report on all the drawing files in the system. These were loaded by parsing the entire directory tree
+ '''
tunnelfiles = TunnelFile.objects.all()
- return render(request, 'tunnelfiles.html', { 'tunnelfiles':tunnelfiles, 'settings': settings })
+ return render(request, 'dwgfiles.html', { 'tunnelfiles':tunnelfiles, 'settings': settings })
def dwgfilesingle(request, path):
'''sends a single binary file to the user, We should have a renderer that syntax-colours this Tunnel xml
but it might be a Therion file
'''
- tunnelfile = TunnelFile.objects.get(tunnelpath=urlunquote(path)) # need to check if invalid query string and produce friendly error
+ try:
+ tunnelfile = TunnelFile.objects.get(tunnelpath=urlunquote(path))
+ except:
+ message = f'Drawing file error or not found \'{path}\' .'
+ return render(request, 'errors/generic.html', {'message': message})
+
tfile = Path(settings.TUNNEL_DATA, tunnelfile.tunnelpath)
try: # for display not download
return HttpResponse(content=open(tfile, errors='strict'), content_type="text/xhtml")
@@ -63,12 +78,18 @@ def dwgfilesingle(request, path):
return HttpResponse(content="Unable to understand the encoding for this file: not UTF-8 nor iso-8859-1, or some other read error happened.")
-def tunnelfileupload(request, path):
- tunnelfile = TunnelFile.objects.get(tunnelpath=urlunquote(path)) # need to check if inavlid query string and produce friendly error
+def dwgfileupload(request, path):
+ '''uploads a drawing file, but where is the Form? This just processes POST info. Apparently unfinished?
+ '''
+ try:
+ tunnelfile = TunnelFile.objects.get(tunnelpath=urlunquote(path)) # need to check if inavlid query string and produce friendly error
+ except:
+ message = f'Drawing file error or not found \'{path}\' .'
+ return render(request, 'errors/generic.html', {'message': message})
tfile = Path(settings.TUNNEL_DATA, tunnelfile.tunnelpath)
project, user, password, tunnelversion = request.POST["tunnelproject"], request.POST["tunneluser"], request.POST["tunnelpassword"], request.POST["tunnelversion"]
- print((project, user, tunnelversion))
+ print(project, user, tunnelversion)
if not (len(list(request.FILES.values())) == 1): # "only one file to upload"