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)
|
phmatch = re.search(ph, content)
|
||||||
self.assertIsNotNone(phmatch, "Failed to find expected text: '" + ph +"'")
|
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
|
# 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)
|
self.assertEqual(response.status_code, 200)
|
||||||
content = response.content.decode()
|
content = response.content.decode()
|
||||||
ph = r"<h1>Directory not found"
|
ph = r"<h1>Directory not found"
|
||||||
@ -387,9 +387,9 @@ class PageTests(TestCase):
|
|||||||
# self.assertEqual(response.status_code, 200)
|
# self.assertEqual(response.status_code, 200)
|
||||||
# self.assertEqual(len(response.content), 823304) # fails, but is working manually!
|
# 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
|
# # 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:
|
# if response.status_code != 200:
|
||||||
# self.assertEqual(response.status_code, 302)
|
# self.assertEqual(response.status_code, 302)
|
||||||
# if 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
|
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.
|
by looking inside the file before being served.
|
||||||
|
|
||||||
need to check if inavlid query string is invalid, or produces multiple replies
|
need to check if inavlid query string is invalid, or produces multiple replies
|
||||||
and render a user-friendly error page.
|
and render a user-friendly error page.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
def surveyscansfolder(request, path):
|
def surveyscansfolder(request, path):
|
||||||
#print [ s.walletname for s in ScansFolder.objects.all() ]
|
#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 })
|
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):
|
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)
|
singlescan = SingleScan.objects.get(scansfolder=scansfolder, name=file)
|
||||||
# print(" - surveyscansingle {}:{}:{}:".format(path, file, getmimetype(file)))
|
# print(" - surveyscansingle {}:{}:{}:".format(path, file, getmimetype(file)))
|
||||||
return HttpResponse(content=open(singlescan.ffile,"rb"), content_type=getmimetype(file)) # any type of image
|
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):
|
def surveyscansfolders(request):
|
||||||
@ -39,16 +47,23 @@ def surveyscansfolders(request):
|
|||||||
return render(request, 'manyscansfolders.html', { 'manyscansfolders':manyscansfolders, 'settings': settings })
|
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()
|
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):
|
def dwgfilesingle(request, path):
|
||||||
'''sends a single binary file to the user, We should have a renderer that syntax-colours this Tunnel xml
|
'''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
|
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)
|
tfile = Path(settings.TUNNEL_DATA, tunnelfile.tunnelpath)
|
||||||
try: # for display not download
|
try: # for display not download
|
||||||
return HttpResponse(content=open(tfile, errors='strict'), content_type="text/xhtml")
|
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.")
|
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
|
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)
|
tfile = Path(settings.TUNNEL_DATA, tunnelfile.tunnelpath)
|
||||||
|
|
||||||
project, user, password, tunnelversion = request.POST["tunnelproject"], request.POST["tunneluser"], request.POST["tunnelpassword"], request.POST["tunnelversion"]
|
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"
|
if not (len(list(request.FILES.values())) == 1): # "only one file to upload"
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
<a href="/survexfile/">Survex</a> |
|
<a href="/survexfile/">Survex</a> |
|
||||||
<a href="{% url "survexcaveslist" %}">All Survex</a> |
|
<a href="{% url "survexcaveslist" %}">All Survex</a> |
|
||||||
<a href="{% url "surveyscansfolders" %}">Scans</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/290/290.html">290 (FGH)</a> |
|
||||||
<a href="/1623/291/291">291 (GSH)</a> |
|
<a href="/1623/291/291">291 (GSH)</a> |
|
||||||
<a href="/1623/204/204.html">204 (Steinbrucken)</a> |
|
<a href="/1623/204/204.html">204 (Steinbrucken)</a> |
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="{% url "survexcaveslist" %}">All Survex</a></li>
|
<li><a href="{% url "survexcaveslist" %}">All Survex</a></li>
|
||||||
<li><a href="{% url "surveyscansfolders" %}">Scans</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/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-1623/291/291.svx" %}">291</a></li>
|
||||||
<li><a href="{% url "survexcavessingle" "caves-1626/359/359.svx" %}">359</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.contrib import auth
|
||||||
from django.urls import reverse, resolve
|
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.other import troggle404, frontpage
|
||||||
from troggle.core.views.caves import ent, cavepage
|
from troggle.core.views.caves import ent, cavepage
|
||||||
from troggle.core.views.logbooks import get_logbook_entries, logbookentry, logbookSearch
|
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/caves$', survex.survexcaveslist, name="survexcaveslist"), # auto slash not working
|
||||||
re_path(r'^survexfile/(?P<survex_cave>.*)$', survex.survexcavesingle, name="survexcavessingle"),
|
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/$', surveyscansfolders, name="surveyscansfolders"),
|
||||||
re_path(r'^survey_scans/(?P<path>[^/]+)/$', surveys.surveyscansfolder, name="surveyscansfolder"),
|
re_path(r'^survey_scans/(?P<path>[^/]+)/$', surveyscansfolder, name="surveyscansfolder"),
|
||||||
re_path(r'^survey_scans/(?P<path>[^/]+)/(?P<file>[^/]+)$',
|
re_path(r'^survey_scans/(?P<path>[^/]+)/(?P<file>[^/]+)$',
|
||||||
surveys.surveyscansingle, name="surveyscansingle"),
|
surveyscansingle, name="surveyscansingle"),
|
||||||
|
|
||||||
# The tunnel and therion drawings files pages
|
# The tunnel and therion drawings files pages
|
||||||
re_path(r'^tunneldata/$', surveys.tunneldata, name="tunneldata"),
|
re_path(r'^dwgdata/$', dwgdata, name="dwgdata"),
|
||||||
re_path(r'^tunneldataraw/(?P<path>.+?\.xml)$', surveys.dwgfilesingle, name="dwgfilesingle"),
|
re_path(r'^dwgdataraw/(?P<path>.+?\.xml)$', dwgfilesingle, name="dwgfilesingle"),
|
||||||
re_path(r'^tunneldataraw/(?P<path>.+?\.th)$', surveys.dwgfilesingle, name="dwgfilesingle"),
|
re_path(r'^dwgdataraw/(?P<path>.+?\.th)$', dwgfilesingle, name="dwgfilesingle"),
|
||||||
re_path(r'^tunneldataraw/(?P<path>.+?\.th2)$', surveys.dwgfilesingle, name="dwgfilesingle"),
|
re_path(r'^dwgdataraw/(?P<path>.+?\.th2)$', dwgfilesingle, name="dwgfilesingle"),
|
||||||
# re_path(r'^tunneldatainfo/(?P<path>.+?\.xml)$', surveys.tunnelfileinfo, name="tunnelfileinfo"), # parses tunnel for info
|
# re_path(r'^dwgdatainfo/(?P<path>.+?\.xml)$', dwgfileinfo, name="dwgfileinfo"), # parses tunnel for info
|
||||||
re_path(r'^tunneldataraw/(?P<path>.+?\.xml)/upload$', surveys.tunnelfileupload, name="tunnelfileupload"),
|
re_path(r'^dwgdataraw/(?P<path>.+?\.xml)/upload$', dwgfileupload, name="dwgfileupload"), # Not working
|
||||||
|
|
||||||
|
|
||||||
# QMs pages - must precede other /caves pages
|
# QMs pages - must precede other /caves pages
|
||||||
|
Loading…
Reference in New Issue
Block a user