forked from expo/troggle
renaming 'tunnel' to 'dwg' in urls and views
This commit is contained in:
parent
bad5484d12
commit
8f0e7435d6
@ -345,9 +345,9 @@ class PageTests(TestCase):
|
||||
phmatch = re.search(ph, content)
|
||||
self.assertIsNotNone(phmatch, "Failed to find expected text: '" + ph +"'")
|
||||
|
||||
def test_page_tunneldataraw_empty(self):
|
||||
def test_page_dwgdataraw_empty(self):
|
||||
# this gets an empty page as the database has not been loaded
|
||||
response = self.client.get('/tunneldataraw/')
|
||||
response = self.client.get('/dwgdataraw/')
|
||||
self.assertEqual(response.status_code, 200)
|
||||
content = response.content.decode()
|
||||
ph = r"<h1>Directory not found"
|
||||
@ -387,9 +387,9 @@ class PageTests(TestCase):
|
||||
# self.assertEqual(response.status_code, 200)
|
||||
# self.assertEqual(len(response.content), 823304) # fails, but is working manually!
|
||||
|
||||
# def test_page_tunneldataraw_107sketch_xml(self):
|
||||
# def test_page_dwgdataraw_107sketch_xml(self):
|
||||
# # this has an error as the database has not been loaded yet in the tests
|
||||
# response = self.client.get('/tunneldataraw/107/107sketch-v2.xml')
|
||||
# response = self.client.get('/dwgdataraw/107/107sketch-v2.xml')
|
||||
# if response.status_code != 200:
|
||||
# self.assertEqual(response.status_code, 302)
|
||||
# if response.status_code != 302:
|
||||
|
@ -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
|
||||
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
|
||||
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):
|
||||
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"
|
||||
|
@ -32,7 +32,7 @@
|
||||
<a href="/survexfile/">Survex</a> |
|
||||
<a href="{% url "survexcaveslist" %}">All Survex</a> |
|
||||
<a href="{% url "surveyscansfolders" %}">Scans</a> |
|
||||
<a href="{% url "tunneldata" %}">Drawing files</a> |
|
||||
<a href="{% url "dwgdata" %}">Drawings</a> |
|
||||
<a href="/1623/290/290.html">290 (FGH)</a> |
|
||||
<a href="/1623/291/291">291 (GSH)</a> |
|
||||
<a href="/1623/204/204.html">204 (Steinbrucken)</a> |
|
||||
|
@ -18,7 +18,7 @@
|
||||
<ul>
|
||||
<li><a href="{% url "survexcaveslist" %}">All Survex</a></li>
|
||||
<li><a href="{% url "surveyscansfolders" %}">Scans</a></li>
|
||||
<li><a href="{% url "tunneldata" %}">Tunneldata</a></li>
|
||||
<li><a href="{% url "dwgdata" %}">Drawings</a></li>
|
||||
<li><a href="{% url "survexcavessingle" "caves-1623/290/290.svx" %}">290</a></li>
|
||||
<li><a href="{% url "survexcavessingle" "caves-1623/291/291.svx" %}">291</a></li>
|
||||
<li><a href="{% url "survexcavessingle" "caves-1626/359/359.svx" %}">359</a></li>
|
||||
|
21
urls.py
21
urls.py
@ -7,7 +7,8 @@ from django.contrib import admin
|
||||
from django.contrib import auth
|
||||
from django.urls import reverse, resolve
|
||||
|
||||
from troggle.core.views import surveys, other, caves, statistics, survex
|
||||
from troggle.core.views import other, caves, statistics, survex
|
||||
from troggle.core.views.surveys import surveyscansingle, surveyscansfolder, surveyscansfolders, dwgdata, dwgfilesingle, dwgfileupload
|
||||
from troggle.core.views.other import troggle404, frontpage
|
||||
from troggle.core.views.caves import ent, cavepage
|
||||
from troggle.core.views.logbooks import get_logbook_entries, logbookentry, logbookSearch
|
||||
@ -135,18 +136,18 @@ trogglepatterns = [
|
||||
re_path(r'^survexfile/caves$', survex.survexcaveslist, name="survexcaveslist"), # auto slash not working
|
||||
re_path(r'^survexfile/(?P<survex_cave>.*)$', survex.survexcavesingle, name="survexcavessingle"),
|
||||
|
||||
re_path(r'^survey_scans/$', surveys.surveyscansfolders, name="surveyscansfolders"),
|
||||
re_path(r'^survey_scans/(?P<path>[^/]+)/$', surveys.surveyscansfolder, name="surveyscansfolder"),
|
||||
re_path(r'^survey_scans/$', surveyscansfolders, name="surveyscansfolders"),
|
||||
re_path(r'^survey_scans/(?P<path>[^/]+)/$', surveyscansfolder, name="surveyscansfolder"),
|
||||
re_path(r'^survey_scans/(?P<path>[^/]+)/(?P<file>[^/]+)$',
|
||||
surveys.surveyscansingle, name="surveyscansingle"),
|
||||
surveyscansingle, name="surveyscansingle"),
|
||||
|
||||
# The tunnel and therion drawings files pages
|
||||
re_path(r'^tunneldata/$', surveys.tunneldata, name="tunneldata"),
|
||||
re_path(r'^tunneldataraw/(?P<path>.+?\.xml)$', surveys.dwgfilesingle, name="dwgfilesingle"),
|
||||
re_path(r'^tunneldataraw/(?P<path>.+?\.th)$', surveys.dwgfilesingle, name="dwgfilesingle"),
|
||||
re_path(r'^tunneldataraw/(?P<path>.+?\.th2)$', surveys.dwgfilesingle, name="dwgfilesingle"),
|
||||
# re_path(r'^tunneldatainfo/(?P<path>.+?\.xml)$', surveys.tunnelfileinfo, name="tunnelfileinfo"), # parses tunnel for info
|
||||
re_path(r'^tunneldataraw/(?P<path>.+?\.xml)/upload$', surveys.tunnelfileupload, name="tunnelfileupload"),
|
||||
re_path(r'^dwgdata/$', dwgdata, name="dwgdata"),
|
||||
re_path(r'^dwgdataraw/(?P<path>.+?\.xml)$', dwgfilesingle, name="dwgfilesingle"),
|
||||
re_path(r'^dwgdataraw/(?P<path>.+?\.th)$', dwgfilesingle, name="dwgfilesingle"),
|
||||
re_path(r'^dwgdataraw/(?P<path>.+?\.th2)$', dwgfilesingle, name="dwgfilesingle"),
|
||||
# re_path(r'^dwgdatainfo/(?P<path>.+?\.xml)$', dwgfileinfo, name="dwgfileinfo"), # parses tunnel for info
|
||||
re_path(r'^dwgdataraw/(?P<path>.+?\.xml)/upload$', dwgfileupload, name="dwgfileupload"), # Not working
|
||||
|
||||
|
||||
# QMs pages - must precede other /caves pages
|
||||
|
Loading…
Reference in New Issue
Block a user