2
0
mirror of https://expo.survex.com/repositories/troggle/.git synced 2025-12-16 00:07:10 +00:00

moved functions between files

This commit is contained in:
Philip Sargent
2021-05-04 20:57:16 +01:00
parent b3fcd7765e
commit 1638f97d0c
4 changed files with 60 additions and 143 deletions

View File

@@ -15,10 +15,16 @@ from troggle.core.views.expo import getmimetype
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.
'''
todo='''The git stuff on upload!
need to check if invalid query string is invalid, or produces multiple replies
and render a user-friendly error page.
'''
def dwgallfiles(request):
'''Report on all the drawing files in the system. These were loaded by parsing the entire directory tree
'''
@@ -50,49 +56,49 @@ 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 dwgfileupload(request, path):
'''Use bits of this to REGISTEr a recently uploaded dwg file which used dwgupload
'''
try:
dwgfile = DrawingFile.objects.get(dwgpath=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.DRAWINGS_DATA, dwgfile.dwgpath)
# def dwgfileupload(request, path):
# '''Use bits of this to REGISTEr a recently uploaded dwg file which used dwgupload
# '''
# try:
# dwgfile = DrawingFile.objects.get(dwgpath=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.DRAWINGS_DATA, dwgfile.dwgpath)
project, user, password, tunnelversion = request.POST["tunnelproject"], request.POST["tunneluser"], request.POST["tunnelpassword"], request.POST["tunnelversion"]
print(project, user, tunnelversion)
# project, user, password, tunnelversion = request.POST["tunnelproject"], request.POST["tunneluser"], request.POST["tunnelpassword"], request.POST["tunnelversion"]
# print(project, user, tunnelversion)
if not (len(list(request.FILES.values())) == 1): # "only one file to upload"
return HttpResponse(content="Error: more than one file selected for upload", content_type="text/plain")
# if not (len(list(request.FILES.values())) == 1): # "only one file to upload"
# return HttpResponse(content="Error: more than one file selected for upload", content_type="text/plain")
uploadedfile = list(request.FILES.values())[0]
# uploadedfile = list(request.FILES.values())[0]
if uploadedfile.field_name != "sketch":
return HttpResponse(content="Error: non-sketch file uploaded", content_type="text/plain")
if uploadedfile.content_type != "text/plain":
return HttpResponse(content="Error: non-plain content type", content_type="text/plain")
# if uploadedfile.field_name != "sketch":
# return HttpResponse(content="Error: non-sketch file uploaded", content_type="text/plain")
# if uploadedfile.content_type != "text/plain":
# return HttpResponse(content="Error: non-plain content type", content_type="text/plain")
# could use this to add new files
if os.path.split(path)[1] != uploadedfile.name:
return HttpResponse(content="Error: name disagrees", content_type="text/plain")
# # could use this to add new files
# if os.path.split(path)[1] != uploadedfile.name:
# return HttpResponse(content="Error: name disagrees", content_type="text/plain")
orgsize = dwgfile.filesize # = os.stat(tfile)[stat.ST_SIZE]
# orgsize = dwgfile.filesize # = os.stat(tfile)[stat.ST_SIZE]
ttext = uploadedfile.read()
# ttext = uploadedfile.read()
# could check that the user and projects agree here
# # could check that the user and projects agree here
fout = open(tfile, "w")
fout.write(ttext)
fout.close()
# fout = open(tfile, "w")
# fout.write(ttext)
# fout.close()
# redo its settings of
parsers.surveys.SetTunnelfileInfo(dwgfile) # commented out
dwgfile.save()
# # redo its settings of
# parsers.surveys.SetTunnelfileInfo(dwgfile) # commented out
# dwgfile.save()
uploadedfile.close()
message = "File size %d overwritten with size %d" % (orgsize, dwgfile.filesize)
return HttpResponse(content=message, content_type="text/plain")
# uploadedfile.close()
# message = "File size %d overwritten with size %d" % (orgsize, dwgfile.filesize)
# return HttpResponse(content=message, content_type="text/plain")