summaryrefslogtreecommitdiffstats
path: root/core/views
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@gmail.com>2021-10-31 19:25:45 +0200
committerPhilip Sargent <philip.sargent@gmail.com>2021-10-31 19:25:45 +0200
commit2869f228d4f22976c0da4b106d901fccc3b6d59b (patch)
tree9f149761322d70c6abcd17b4175b57f218d2618e /core/views
parent252fcc4716f546169294dd740c92e79d81731c47 (diff)
downloadtroggle-2869f228d4f22976c0da4b106d901fccc3b6d59b.tar.gz
troggle-2869f228d4f22976c0da4b106d901fccc3b6d59b.tar.bz2
troggle-2869f228d4f22976c0da4b106d901fccc3b6d59b.zip
fix side effects in tests: git and file upload
Diffstat (limited to 'core/views')
-rw-r--r--core/views/drawings.py48
-rw-r--r--core/views/uploads.py31
2 files changed, 18 insertions, 61 deletions
diff --git a/core/views/drawings.py b/core/views/drawings.py
index 9b08dd5..f86cd10 100644
--- a/core/views/drawings.py
+++ b/core/views/drawings.py
@@ -54,51 +54,5 @@ def dwgfilesingle(request, path):
return HttpResponse(content=open(tfile, errors='ignore'), content_type="text/xhtml")
else:
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)
-
- # 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")
-
- # 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")
-
- # # 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]
-
- # ttext = uploadedfile.read()
-
- # # could check that the user and projects agree here
-
- # fout = open(tfile, "w")
- # fout.write(ttext)
- # fout.close()
-
- # # 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")
+
diff --git a/core/views/uploads.py b/core/views/uploads.py
index 6273ec4..b5b5168 100644
--- a/core/views/uploads.py
+++ b/core/views/uploads.py
@@ -103,7 +103,7 @@ def scanupload(request, wallet=None):
{'form': form, 'wallet': wallet, **context, 'files': files, 'dirs': dirs, 'filesaved': filesaved, 'actual_saved': actual_saved})
@login_required_if_public
-def dwgupload(request, folder=None):
+def dwgupload(request, folder=None, gitdisable='no'):
'''Upload DRAWING files (tunnel or therion) into the upload folder in :drawings:
This does NOT use a Django model linked to a Django form. Just a simple Django form.
@@ -115,14 +115,14 @@ def dwgupload(request, folder=None):
if name in [ '.gitignore', '.hgignore', ]:
return False
if Path(name).suffix.lower() in ['.xml', '.th', '.th2', '', '.svg', '.jpg', '.pdf', 'jpeg']:
- return True
+ return True # dangerous, we should check the actual file binary signature
return False
filesaved = False
actual_saved = []
refused = []
doesnotexist = ''
- #print(f'! - FORM dwgupload - start "{folder}"')
+ # print(f'! - FORM dwgupload - start "{folder}" - gitdisable "{gitdisable}"')
if folder is None:
folder = "" # improve this later
dirpath = Path(settings.DRAWINGS_DATA)
@@ -144,28 +144,31 @@ def dwgupload(request, folder=None):
actual_saved = []
refused = []
- git = settings.GIT
+ if gitdisable != 'yes': # set in url 'dwguploadnogit/'
+ git = settings.GIT
+ else:
+ git = 'echo'
+
if multiple:
for f in multiple:
if dwgvalid(f.name):
saved_filename = fs.save(f.name, content=f)
actual_saved.append(saved_filename)
- subprocess.call([git, "add", saved_filename], cwd=dirpath)
- # dwgfile = DrawingFile(dwgpath=f.name, dwgname=Path(f.name).stem, filesize=f.size)
+ if gitdisable != 'yes':
+ subprocess.call([git, "add", saved_filename], cwd=dirpath)
dwgfile, created = DrawingFile.objects.get_or_create(dwgpath=saved_filename, dwgname=Path(f.name).stem, filesize=f.size)
- # if not created:
- # print(f'FAILED to create {saved_filename} in {dirpath}')
- # else:
- # print(f'{dwgfile}')
dwgfile.save()
else:
refused.append(f.name)
- # print(f'! - FORM dwgupload multiple {actual_saved}')
- filesaved = True
- subprocess.call([git, "commit", "-m", 'dwgupload'], cwd=dirpath)
+ if actual_saved: # maybe all were refused by the suffix test in dwgvalid()
+ filesaved = True
+ if gitdisable != 'yes':
+ subprocess.call([git, "commit", "-m", 'dwgupload'], cwd=dirpath)
+
+
files = []
dirs = []
- #print(f'! - FORM dwgupload - start {folder} \n"{dirpath}" \n"{dirpath.parent}" \n"{dirpath.exists()}"')
+ # print(f'! - FORM dwgupload - start {folder} \n"{dirpath}" \n"{dirpath.parent}" \n"{dirpath.exists()}"')
try:
for f in dirpath.iterdir():
if f.is_dir():