diff options
author | Philip Sargent <philip.sargent@klebos.com> | 2021-04-20 23:57:19 +0100 |
---|---|---|
committer | Philip Sargent <philip.sargent@klebos.com> | 2021-04-20 23:57:19 +0100 |
commit | 8f0e7435d694a96733de7d95b09f317e993e18d6 (patch) | |
tree | 3613ca02d5f77206f86d6914bccb7a87b743bae5 /core/views/surveys.py | |
parent | bad5484d126bf0d61a07d642aeb18f9ad4fc9dea (diff) | |
download | troggle-8f0e7435d694a96733de7d95b09f317e993e18d6.tar.gz troggle-8f0e7435d694a96733de7d95b09f317e993e18d6.tar.bz2 troggle-8f0e7435d694a96733de7d95b09f317e993e18d6.zip |
renaming 'tunnel' to 'dwg' in urls and views
Diffstat (limited to 'core/views/surveys.py')
-rw-r--r-- | core/views/surveys.py | 51 |
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" |