diff options
author | Philip Sargent <philip.sargent@klebos.com> | 2021-05-04 20:57:16 +0100 |
---|---|---|
committer | Philip Sargent <philip.sargent@klebos.com> | 2021-05-04 20:57:16 +0100 |
commit | 1638f97d0c785832ad9c6456f109971d5171c5e7 (patch) | |
tree | 9f222e86fde21a90374574e2f3258a5c0ae7e6fe /core | |
parent | b3fcd7765e4b8cc55ec9b4f433d34cd89ae3bce9 (diff) | |
download | troggle-1638f97d0c785832ad9c6456f109971d5171c5e7.tar.gz troggle-1638f97d0c785832ad9c6456f109971d5171c5e7.tar.bz2 troggle-1638f97d0c785832ad9c6456f109971d5171c5e7.zip |
moved functions between files
Diffstat (limited to 'core')
-rw-r--r-- | core/utils.py | 17 | ||||
-rw-r--r-- | core/views/drawings.py | 72 |
2 files changed, 56 insertions, 33 deletions
diff --git a/core/utils.py b/core/utils.py index ff5f35c..fe5bd07 100644 --- a/core/utils.py +++ b/core/utils.py @@ -63,6 +63,23 @@ def chaosmonkey(n): # print("CHAOS strikes !", file=sys.stderr) return True +# handles url or file, so we can refer to a set of scans (not drawings) on another server +def GetListDir(sdir): + res = [ ] + if sdir[:7] == "http://": + # s = urllib.request.urlopen(sdir) + message = f"! Requesting loading from http:// NOT IMPLEMENTED. [{sdir}]" + print(message) + DataIssue.objects.create(parser='Drawings', message=message) + sdir[:7] = "" + + for f in os.listdir(sdir): + if f[0] != ".": + ff = os.path.join(sdir, f) + res.append((f, ff, os.path.isdir(ff))) + return res + + def save_carefully(objectType, lookupAttribs={}, nonLookupAttribs={}): """Looks up instance using lookupAttribs and carries out the following: diff --git a/core/views/drawings.py b/core/views/drawings.py index f0b684a..9b08dd5 100644 --- a/core/views/drawings.py +++ b/core/views/drawings.py @@ -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") |