mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2024-11-25 08:41:51 +00:00
Make troggle compatible with Django 3.1
This commit is contained in:
parent
e17a21defd
commit
879f6c288e
@ -141,6 +141,7 @@ MIDDLEWARE = [
|
||||
'django.contrib.admindocs.middleware.XViewMiddleware', # this and docutils needed by admindocs
|
||||
'django.contrib.messages.middleware.MessageMiddleware', # Cookie-based and session-based message support. Needed by admin system
|
||||
'django.middleware.clickjacking.XFrameOptionsMiddleware', # clickjacking protection via the X-Frame-Options header
|
||||
#'django.middleware.security.SecurityMiddleware', # SECURE_HSTS_SECONDS, SECURE_CONTENT_TYPE_NOSNIFF, SECURE_BROWSER_XSS_FILTER, SECURE_REFERRER_POLICY, and SECURE_SSL_REDIRECT
|
||||
#'troggle.core.middleware.SmartAppendSlashMiddleware' # needs adapting after Dj2.0
|
||||
]
|
||||
|
||||
|
@ -12,11 +12,11 @@
|
||||
|
||||
<p><b>Other years:</b>
|
||||
{% for otherexpedition in expeditions %}
|
||||
{% ifequal otherexpedition expedition %}
|
||||
{% if otherexpedition == expedition %}
|
||||
| <b>{{otherexpedition.year}}</b>
|
||||
{% else %}
|
||||
| <a href="{{otherexpedition.get_absolute_url}}">{{ otherexpedition.year }}</a>
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</p>
|
||||
<p>See also the <a href="/years/{{expedition.year}}/">documentation index</a> for this Expo
|
||||
|
@ -31,11 +31,11 @@
|
||||
<tr><th>Caver</th><th>T/U</th><th>Prev</th><th>Next</th></tr>
|
||||
{% for persontrip in logbookentry.persontrip_set.all %}
|
||||
<tr>
|
||||
{% ifequal persontrip.personexpedition logbookentry.author %}
|
||||
{% if persontrip.personexpedition == logbookentry.author %}
|
||||
<td class="author">
|
||||
{% else %}
|
||||
<td>
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
<a href="{{ persontrip.personexpedition.get_absolute_url }}">{{persontrip.personexpedition.person}}</a>
|
||||
</td>
|
||||
|
||||
|
@ -14,11 +14,11 @@
|
||||
|
||||
<p><b>Other years:</b>
|
||||
{% for otherpersonexpedition in personexpedition.person.personexpedition_set.all %}
|
||||
{% ifequal otherpersonexpedition personexpedition %}
|
||||
{% if otherpersonexpedition == personexpedition %}
|
||||
| <b>{{otherpersonexpedition.expedition.year}}</b>
|
||||
{% else %}
|
||||
| <a href="{{otherpersonexpedition.get_absolute_url}}">{{ otherpersonexpedition.expedition.year }}</a>
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</p>
|
||||
|
||||
|
@ -50,11 +50,11 @@
|
||||
<td class="survexnewfile" rowspan="{{survexfile.survexblock_set.all|length|plusone}}">
|
||||
{% endif %}
|
||||
|
||||
{% ifequal survexfile survexdirectory.primarysurvexfile %}
|
||||
{% if survexfile == survexdirectory.primarysurvexfile %}
|
||||
<a href="{% url "svx" survexfile.path %}"><b>{% url "svx" survexfile.path %}</b></a>
|
||||
{% else %}
|
||||
<a href="{% url "svx" survexfile.path %}"><i><small>{% url "svx" survexfile.path %}</small></i></a><!-- would like to extract only the last bit. Some javascript useful ?-->
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% for survexblock in survexfile.survexblock_set.all %}
|
||||
|
@ -50,11 +50,11 @@ to go to a form to correct the online data.
|
||||
<td class="survexnewfile" rowspan="{{survexfile.survexblock_set.all|length|plusone}}">
|
||||
{% endif %}
|
||||
|
||||
{% ifequal survexfile survexdirectory.primarysurvexfile %}
|
||||
{% if survexfile == survexdirectory.primarysurvexfile %}
|
||||
<a href="{% url "svx" survexfile.path %}"><b>{% url "svx" survexfile.path %}</b></a>
|
||||
{% else %}
|
||||
<a href="{% url "svx" survexfile.path %}"><i><small>{% url "svx" survexfile.path %}</small></i></a><!-- would like to extract only the last bit. Some javascript useful ?-->
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% for survexblock in survexfile.survexblock_set.all %}
|
||||
|
160
urls.py
160
urls.py
@ -1,5 +1,5 @@
|
||||
from django.conf import settings
|
||||
from django.conf.urls import url, include
|
||||
from django.conf.urls import url, include, re_path
|
||||
from django.views.generic.base import RedirectView
|
||||
from django.views.generic.edit import UpdateView
|
||||
from django.views.generic.list import ListView
|
||||
@ -24,7 +24,7 @@ to resolve urls - in both directions as these are declarative.
|
||||
|
||||
HOW THIS WORKS
|
||||
This is a "url dispatcher" - something needed by every web framework.
|
||||
url( <regular expression that matches the thing in the web browser>,
|
||||
re_path( <regular expression that matches the thing in the web browser>,
|
||||
<reference to python function in 'core' folder>, <optional name>)
|
||||
|
||||
Django also provides the reverse function: given an an object, provide the URL
|
||||
@ -41,11 +41,11 @@ The API urls return TSV or JSON and are new in July 2020.
|
||||
|
||||
if settings.EXPOFILESREMOTE:
|
||||
expofilesurls = [
|
||||
url(r'^(?P<path>.*)$', expofiles_redirect, name="expofiles_redirect"), # to http://expo.survex.com/expofiles
|
||||
re_path(r'^(?P<path>.*)$', expofiles_redirect, name="expofiles_redirect"), # to http://expo.survex.com/expofiles
|
||||
]
|
||||
else:
|
||||
expofilesurls = [
|
||||
url(r'^(?P<filepath>.*)$', expofilessingle, name="single"), # local copy of EXPOFILES
|
||||
re_path(r'^(?P<filepath>.*)$', expofilessingle, name="single"), # local copy of EXPOFILES
|
||||
]
|
||||
|
||||
# The URLs provided by include('django.contrib.auth.urls') are:
|
||||
@ -60,124 +60,124 @@ else:
|
||||
# accounts/reset/done/ [name='password_reset_complete']
|
||||
|
||||
trogglepatterns = [
|
||||
url(r'^expofiles/', include(expofilesurls)),
|
||||
re_path(r'^expofiles/', include(expofilesurls)),
|
||||
|
||||
url(r'^troggle$', other.frontpage, name="frontpage"), # control panel. Shows recent actions.
|
||||
url(r'^caves$', caves.caveindex, name="caveindex"),
|
||||
url(r'^indxal.htm$', caves.caveindex, name="caveindex"), # ~420 hrefs to this url in expoweb files
|
||||
url(r'^people/?$', personindex, name="personindex"),
|
||||
re_path(r'^troggle$', other.frontpage, name="frontpage"), # control panel. Shows recent actions.
|
||||
re_path(r'^caves$', caves.caveindex, name="caveindex"),
|
||||
re_path(r'^indxal.htm$', caves.caveindex, name="caveindex"), # ~420 hrefs to this url in expoweb files
|
||||
re_path(r'^people/?$', personindex, name="personindex"),
|
||||
|
||||
url(r'^admin/doc/', include('django.contrib.admindocs.urls')), # needs docutils Python module (http://docutils.sf.net/).
|
||||
url(r'^admin/', admin.site.urls), # includes admin login & logout urls
|
||||
re_path(r'^admin/doc/', include('django.contrib.admindocs.urls')), # needs docutils Python module (http://docutils.sf.net/).
|
||||
re_path(r'^admin/', admin.site.urls), # includes admin login & logout urls
|
||||
|
||||
# setting LOGIN_URL = '/accounts/login/' is default
|
||||
# url ENDS WITH this string
|
||||
url(r'logout/$', expologout, name='expologout'), # higher precedence than /accounts/logout
|
||||
url(r'login/$', expologin, name='expologin'), # higher precedence than /accounts/login
|
||||
#url(r'^accounts/', include('django.contrib.auth.urls')), # from Dj3.0, see site-packages\registration\auth_urls_classes.py
|
||||
re_path(r'logout/$', expologout, name='expologout'), # higher precedence than /accounts/logout
|
||||
re_path(r'login/$', expologin, name='expologin'), # higher precedence than /accounts/login
|
||||
#re_path(r'^accounts/', include('django.contrib.auth.urls')), # from Dj3.0, see site-packages\registration\auth_urls_classes.py
|
||||
|
||||
# Persons - nasty surname recognition logic fails for 19 people!
|
||||
# url(r'^person/(?P<person_id>\d*)/?$', person), makes Ruairidh MacLeod work but kills MacLean
|
||||
# url(r'^person/(\w+_\w+)$', logbooks.person, name="person"),
|
||||
url(r'^person/(?P<first_name>[A-Z]*[a-z\-\'&;]*)[^a-zA-Z]*(?P<last_name>[a-z\-\']*[^a-zA-Z]*[A-Z]*[a-z\-&;]*)/?', person, name="person"),
|
||||
url(r'^personexpedition/(?P<first_name>[A-Z]*[a-z&;]*)[^a-zA-Z]*(?P<last_name>[A-Z]*[a-zA-Z&;]*)/(?P<year>\d+)/?$', personexpedition, name="personexpedition"),
|
||||
# re_path(r'^person/(?P<person_id>\d*)/?$', person), makes Ruairidh MacLeod work but kills MacLean
|
||||
# re_path(r'^person/(\w+_\w+)$', logbooks.person, name="person"),
|
||||
re_path(r'^person/(?P<first_name>[A-Z]*[a-z\-\'&;]*)[^a-zA-Z]*(?P<last_name>[a-z\-\']*[^a-zA-Z]*[A-Z]*[a-z\-&;]*)/?', person, name="person"),
|
||||
re_path(r'^personexpedition/(?P<first_name>[A-Z]*[a-z&;]*)[^a-zA-Z]*(?P<last_name>[A-Z]*[a-zA-Z&;]*)/(?P<year>\d+)/?$', personexpedition, name="personexpedition"),
|
||||
|
||||
# Expedition master page
|
||||
url(r'^expedition/(\d+)$', expedition, name="expedition"),
|
||||
url(r'^api/expeditions_tsv$', Expeditions_tsvListView.as_view()),
|
||||
url(r'^api/expeditions_json$', Expeditions_jsonListView.as_view()),
|
||||
re_path(r'^expedition/(\d+)$', expedition, name="expedition"),
|
||||
re_path(r'^api/expeditions_tsv$', Expeditions_tsvListView.as_view()),
|
||||
re_path(r'^api/expeditions_json$', Expeditions_jsonListView.as_view()),
|
||||
|
||||
# Logbook entries
|
||||
url(r'^logbookentry/(?P<date>.*)/(?P<slug>.*)/?$', logbookentry,name="logbookentry"),
|
||||
url(r'^newfile', other.newFile, name="newFile"), # oddly broken, needs investigating more
|
||||
url(r'^logbooksearch/(.*)/?$', logbookSearch),
|
||||
url(r'^logbook(?P<year>\d\d\d\d)\.(?P<extension>.*)/?$', other.downloadLogbook),
|
||||
url(r'^logbook/?$', other.downloadLogbook, name="downloadlogbook"),
|
||||
re_path(r'^logbookentry/(?P<date>.*)/(?P<slug>.*)/?$', logbookentry,name="logbookentry"),
|
||||
re_path(r'^newfile', other.newFile, name="newFile"), # oddly broken, needs investigating more
|
||||
re_path(r'^logbooksearch/(.*)/?$', logbookSearch),
|
||||
re_path(r'^logbook(?P<year>\d\d\d\d)\.(?P<extension>.*)/?$', other.downloadLogbook),
|
||||
re_path(r'^logbook/?$', other.downloadLogbook, name="downloadlogbook"),
|
||||
|
||||
# Internal. editfile.html template uses these internally
|
||||
url(r'^getPeople/(?P<expeditionslug>.*)', get_people, name = "get_people"),
|
||||
url(r'^getLogBookEntries/(?P<expeditionslug>.*)', get_logbook_entries, name = "get_logbook_entries"),
|
||||
url(r'^getQMs/(?P<caveslug>.*)', caves.get_qms, name = "get_qms"),
|
||||
url(r'^getEntrances/(?P<caveslug>.*)', caves.get_entrances, name = "get_entrances"),
|
||||
re_path(r'^getPeople/(?P<expeditionslug>.*)', get_people, name = "get_people"),
|
||||
re_path(r'^getLogBookEntries/(?P<expeditionslug>.*)', get_logbook_entries, name = "get_logbook_entries"),
|
||||
re_path(r'^getQMs/(?P<caveslug>.*)', caves.get_qms, name = "get_qms"),
|
||||
re_path(r'^getEntrances/(?P<caveslug>.*)', caves.get_entrances, name = "get_entrances"),
|
||||
|
||||
# Cave description pages
|
||||
url(r'^cave/new/$', caves.edit_cave, name="newcave"),
|
||||
url(r'^cave/3d/(?P<cave_id>[^/]+)$', caves.cave3d, name="cave3d"),
|
||||
url(r'^cave/(?P<cave_id>[^/]+)/?$', caves.cave, name="cave"),
|
||||
url(r'^cave/(?P<cave_id>[^/]+)/?(?P<ent_letter>[^/])$', ent), # view_caves.ent
|
||||
url(r'^cave/(?P<slug>[^/]+)/edit/$', caves.edit_cave, name="edit_cave"),
|
||||
re_path(r'^cave/new/$', caves.edit_cave, name="newcave"),
|
||||
re_path(r'^cave/3d/(?P<cave_id>[^/]+)$', caves.cave3d, name="cave3d"),
|
||||
re_path(r'^cave/(?P<cave_id>[^/]+)/?$', caves.cave, name="cave"),
|
||||
re_path(r'^cave/(?P<cave_id>[^/]+)/?(?P<ent_letter>[^/])$', ent), # view_caves.ent
|
||||
re_path(r'^cave/(?P<slug>[^/]+)/edit/$', caves.edit_cave, name="edit_cave"),
|
||||
|
||||
url(r'^cave/entrance/([^/]+)/?$', caves.caveEntrance),
|
||||
url(r'^cave/description/([^/]+)/?$', caves.caveDescription),
|
||||
url(r'^cave/logbook/([^/]+)/?$', caves.caveLogbook),
|
||||
url(r'^(?P<karea>\d\d\d\d)(?P<subpath>.*)$', cavepage, name="cavepage"), # shorthand /1623/264 BUT url links may break
|
||||
re_path(r'^cave/entrance/([^/]+)/?$', caves.caveEntrance),
|
||||
re_path(r'^cave/description/([^/]+)/?$', caves.caveDescription),
|
||||
re_path(r'^cave/logbook/([^/]+)/?$', caves.caveLogbook),
|
||||
re_path(r'^(?P<karea>\d\d\d\d)(?P<subpath>.*)$', cavepage, name="cavepage"), # shorthand /1623/264 BUT url links may break
|
||||
# Note that urls eg '1623/161/l/rl89a.htm' are handled by cavepage which redirects them to 'expopage'
|
||||
|
||||
# Entrances
|
||||
url(r'^entrance/(?P<caveslug>[^/]+)/(?P<slug>[^/]+)/edit/', caves.edit_entrance, name = "editentrance"),
|
||||
url(r'^entrance/new/(?P<caveslug>[^/]+)$', caves.edit_entrance, name = "newentrance"),
|
||||
re_path(r'^entrance/(?P<caveslug>[^/]+)/(?P<slug>[^/]+)/edit/', caves.edit_entrance, name = "editentrance"),
|
||||
re_path(r'^entrance/new/(?P<caveslug>[^/]+)$', caves.edit_entrance, name = "newentrance"),
|
||||
|
||||
|
||||
url(r'^statistics/?$', statistics.stats, name="stats"),
|
||||
url(r'^stats/?$', statistics.stats, name="stats"),
|
||||
url(r'^pathsreport.*$', statistics.pathsreport, name="pathsreport"),
|
||||
url(r'^dataissues/?$', statistics.dataissues, name="dataissues"),
|
||||
re_path(r'^statistics/?$', statistics.stats, name="stats"),
|
||||
re_path(r'^stats/?$', statistics.stats, name="stats"),
|
||||
re_path(r'^pathsreport.*$', statistics.pathsreport, name="pathsreport"),
|
||||
re_path(r'^dataissues/?$', statistics.dataissues, name="dataissues"),
|
||||
|
||||
url(r'^controlpanel/?$', other.controlPanel, name="controlpanel"),
|
||||
re_path(r'^controlpanel/?$', other.controlPanel, name="controlpanel"),
|
||||
|
||||
# The survexfile pages
|
||||
url(r'^survexfile/(?P<survex_file>.*?)\.svx$', survex.svx, name="svx"),
|
||||
url(r'^survexfile/(?P<survex_file>.*?)\.3d$', survex.threed, name="threed"),
|
||||
url(r'^survexfile/(?P<survex_file>.*?)\.log$', survex.svxraw),
|
||||
url(r'^survexfile/(?P<survex_file>.*?)\.err$', survex.err),
|
||||
re_path(r'^survexfile/(?P<survex_file>.*?)\.svx$', survex.svx, name="svx"),
|
||||
re_path(r'^survexfile/(?P<survex_file>.*?)\.3d$', survex.threed, name="threed"),
|
||||
re_path(r'^survexfile/(?P<survex_file>.*?)\.log$', survex.svxraw),
|
||||
re_path(r'^survexfile/(?P<survex_file>.*?)\.err$', survex.err),
|
||||
|
||||
url(r'^survexfile/caves/$', survex.survexcaveslist, name="survexcaveslist"),
|
||||
url(r'^survexfile/caves$', survex.survexcaveslist, name="survexcaveslist"), # auto slash not working
|
||||
url(r'^survexfile/(?P<survex_cave>.*)$', survex.survexcavesingle, name="survexcavessingle"),
|
||||
re_path(r'^survexfile/caves/$', survex.survexcaveslist, name="survexcaveslist"),
|
||||
re_path(r'^survexfile/caves$', survex.survexcaveslist, name="survexcaveslist"), # auto slash not working
|
||||
re_path(r'^survexfile/(?P<survex_cave>.*)$', survex.survexcavesingle, name="survexcavessingle"),
|
||||
|
||||
url(r'^survey_scans/$', surveys.surveyscansfolders, name="surveyscansfolders"),
|
||||
url(r'^survey_scans/(?P<path>[^/]+)/$', surveys.surveyscansfolder, name="surveyscansfolder"),
|
||||
url(r'^survey_scans/(?P<path>[^/]+)/(?P<file>[^/]+)$',
|
||||
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/(?P<path>[^/]+)/(?P<file>[^/]+)$',
|
||||
surveys.surveyscansingle, name="surveyscansingle"),
|
||||
|
||||
# The tunnel and therion drawings files pages
|
||||
url(r'^tunneldata/$', surveys.tunneldata, name="tunneldata"),
|
||||
url(r'^tunneldataraw/(?P<path>.+?\.xml)$', surveys.dwgfilesingle, name="dwgfilesingle"),
|
||||
url(r'^tunneldataraw/(?P<path>.+?\.th)$', surveys.dwgfilesingle, name="dwgfilesingle"),
|
||||
url(r'^tunneldataraw/(?P<path>.+?\.th2)$', surveys.dwgfilesingle, name="dwgfilesingle"),
|
||||
# url(r'^tunneldatainfo/(?P<path>.+?\.xml)$', surveys.tunnelfileinfo, name="tunnelfileinfo"), # parses tunnel for info
|
||||
url(r'^tunneldataraw/(?P<path>.+?\.xml)/upload$', surveys.tunnelfileupload, name="tunnelfileupload"),
|
||||
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"),
|
||||
|
||||
|
||||
# QMs pages - must precede other /caves pages
|
||||
url(r'^cave/qms/([^/]+)/?$', caves.caveQMs), # blank page usually
|
||||
url(r'^cave/(?P<cave_id>[^/]+)/(?P<year>\d\d\d\d)-(?P<qm_id>\d*)(?P<grade>[ABCDX]?)?$', caves.qm, name="qm"),
|
||||
url(r'^cave/(?P<cave_id>[^/]+)/qm\.csv/?$', other.downloadQMs, name="downloadqms"),
|
||||
url(r'^newqmnumber/?$', other.ajax_QM_number, ), # blank page if no ch given
|
||||
# url(r'^downloadqms$', other.downloadQMs), # MultiValueDictKeyError
|
||||
re_path(r'^cave/qms/([^/]+)/?$', caves.caveQMs), # blank page usually
|
||||
re_path(r'^cave/(?P<cave_id>[^/]+)/(?P<year>\d\d\d\d)-(?P<qm_id>\d*)(?P<grade>[ABCDX]?)?$', caves.qm, name="qm"),
|
||||
re_path(r'^cave/(?P<cave_id>[^/]+)/qm\.csv/?$', other.downloadQMs, name="downloadqms"),
|
||||
re_path(r'^newqmnumber/?$', other.ajax_QM_number, ), # blank page if no ch given
|
||||
# re_path(r'^downloadqms$', other.downloadQMs), # MultiValueDictKeyError
|
||||
|
||||
# Prospecting Guide document
|
||||
url(r'^prospecting_guide/$', prospecting),
|
||||
url(r'^prospecting/(?P<name>[^.]+).png$', prospecting_image, name="prospecting_image"),
|
||||
re_path(r'^prospecting_guide/$', prospecting),
|
||||
re_path(r'^prospecting/(?P<name>[^.]+).png$', prospecting_image, name="prospecting_image"),
|
||||
|
||||
# This next set are all intercepted by Apache, if it is running.
|
||||
url(r'^photos/(?P<subpath>.*)$', mediapage, {'doc_root': settings.PHOTOS_ROOT}, name="mediapage"), # photo galleries
|
||||
url(r'^site_media/(?P<subpath>.*)$', mediapage, {'doc_root': settings.MEDIA_ROOT}, name="mediapage"), # MEDIA_ROOT: CSS and JS
|
||||
url(r'^static/(?P<subpath>.*)$', mediapage, {'doc_root': settings.MEDIA_ROOT}, name="mediapage"), # STATIC is in MEDIA now!
|
||||
url(r'^javascript/(?P<subpath>.*)$', mediapage, {'doc_root': settings.JSLIB_ROOT}, name="mediapage"), # JSLIB_URL
|
||||
url(r'^expowebcache/3d/(?P<subpath>.*)$', mediapage, {'doc_root': settings.THREEDCACHEDIR}, name="mediapage"),
|
||||
url(r'^map/map.html', map, name="map"), # Redirects to OpenStreetMap JavaScript
|
||||
url(r'^map/(?P<path>.*)$', mapfile, name="mapfile"), # css, js, gpx
|
||||
re_path(r'^photos/(?P<subpath>.*)$', mediapage, {'doc_root': settings.PHOTOS_ROOT}, name="mediapage"), # photo galleries
|
||||
re_path(r'^site_media/(?P<subpath>.*)$', mediapage, {'doc_root': settings.MEDIA_ROOT}, name="mediapage"), # MEDIA_ROOT: CSS and JS
|
||||
re_path(r'^static/(?P<subpath>.*)$', mediapage, {'doc_root': settings.MEDIA_ROOT}, name="mediapage"), # STATIC is in MEDIA now!
|
||||
re_path(r'^javascript/(?P<subpath>.*)$', mediapage, {'doc_root': settings.JSLIB_ROOT}, name="mediapage"), # JSLIB_URL
|
||||
re_path(r'^expowebcache/3d/(?P<subpath>.*)$', mediapage, {'doc_root': settings.THREEDCACHEDIR}, name="mediapage"),
|
||||
re_path(r'^map/map.html', map, name="map"), # Redirects to OpenStreetMap JavaScript
|
||||
re_path(r'^map/(?P<path>.*)$', mapfile, name="mapfile"), # css, js, gpx
|
||||
|
||||
# Final catchall which also serves expoweb handbook pages and images
|
||||
url(r'^(.*)_edit$', editexpopage, name="editexpopage"),
|
||||
url(r'^(.*)$', expopage, name="expopage"), # CATCHALL assumed relative to EXPOWEB
|
||||
re_path(r'^(.*)_edit$', editexpopage, name="editexpopage"),
|
||||
re_path(r'^(.*)$', expopage, name="expopage"), # CATCHALL assumed relative to EXPOWEB
|
||||
]
|
||||
|
||||
# do not allow DIR_ROOT prefix to all urls
|
||||
urlpatterns = [
|
||||
# url('^%s' % settings.DIR_ROOT, include(trogglepatterns))
|
||||
url('', include(trogglepatterns))
|
||||
# re_path('^%s' % settings.DIR_ROOT, include(trogglepatterns))
|
||||
re_path('', include(trogglepatterns))
|
||||
]
|
||||
|
||||
# When apache is running these prempt Django so Django never sees them.
|
||||
|
Loading…
Reference in New Issue
Block a user