troggle-unchained/urls.py

169 lines
10 KiB
Python
Raw Normal View History

2011-07-11 01:49:03 +01:00
from django.conf import settings
from django.conf.urls import url, include
from django.views.generic.base import RedirectView
2020-05-28 01:38:35 +01:00
from django.views.generic.edit import UpdateView
from django.views.generic.list import ListView
from django.contrib import admin
2020-06-18 21:50:16 +01:00
from django.urls import reverse, resolve
from troggle.core import views_other, views_caves, views_logbooks, views_statistics, views_survex, view_surveys
2020-08-02 23:53:35 +01:00
#from troggle.core.views_other import logbook_entry_suggestions
from troggle.core.views_caves import ent, prospecting_image
2020-06-13 01:27:42 +01:00
from troggle.core.views_statistics import pathsreport, stats
2020-06-17 22:55:51 +01:00
from flatpages import views as flatviews
2020-07-18 16:23:54 +01:00
"""This sets the actualurlpatterns[] and urlpatterns[] lists which django uses
to resolve urls - in both directions as these are declarative.
2020-05-28 01:38:35 +01:00
2020-07-18 16:23:54 +01:00
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>,
<reference to python function in 'core' folder>, <optional name>)
2011-07-11 01:49:03 +01:00
2020-07-18 16:23:54 +01:00
Django also provides the reverse function: given an an object, provide the URL
which is vital to writing code for the webapp. So the URL dispatch is declarative.
The API urls return TSV or JSON and are new in July 2020.
2020-07-18 16:23:54 +01:00
"""
2020-07-18 16:23:54 +01:00
# Many of these patterns do not work because troggle spent many years broken and we have
# not yet restored all the functions. Some may have never been fully implemented in
# the first place and what they were intended to provide is obscure.
2020-06-17 22:55:51 +01:00
actualurlpatterns = [
2020-06-16 16:48:19 +01:00
url(r'^troggle$', views_other.frontpage, name="frontpage"),
url(r'^caves$', views_caves.caveindex, name="caveindex"),
url(r'^indxal.htm$', views_caves.caveindex, name="caveindex"), # ~420 hrefs to this url in expoweb files
2011-07-11 01:49:03 +01:00
url(r'^people/?$', views_logbooks.personindex, name="personindex"),
url(r'^newqmnumber/?$', views_other.ajax_QM_number, ),
2020-08-02 23:53:35 +01:00
# url(r'^lbo_suggestions/?$', logbook_entry_suggestions), #broken, removed.
2020-06-18 15:54:40 +01:00
# url(r'^person/(?P<person_id>\d*)/?$', views_logbooks.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\-&;]*)/?', views_logbooks.person, name="person"),
2020-06-18 15:54:40 +01:00
# url(r'^person/(\w+_\w+)$', views_logbooks.person, name="person"),
# url(r'^personform/(.*)$', personForm),
2011-07-11 01:49:03 +01:00
url(r'^expedition/(\d+)$', views_logbooks.expedition, name="expedition"),
2020-06-18 21:50:16 +01:00
url(r'^expeditions/?$', views_logbooks.ExpeditionListView.as_view(), name="expeditions"),
url(r'^api/expeditions_tsv$', views_logbooks.Expeditions_tsvListView.as_view()),
url(r'^api/expeditions_json$', views_logbooks.Expeditions_jsonListView.as_view()),
url(r'^personexpedition/(?P<first_name>[A-Z]*[a-z&;]*)[^a-zA-Z]*(?P<last_name>[A-Z]*[a-zA-Z&;]*)/(?P<year>\d+)/?$', views_logbooks.personexpedition, name="personexpedition"),
2011-07-11 01:49:03 +01:00
url(r'^logbookentry/(?P<date>.*)/(?P<slug>.*)/?$', views_logbooks.logbookentry,name="logbookentry"),
2020-07-26 03:22:37 +01:00
# url(r'^newlogbookentry/(?P<expeditionyear>.*)$', views_logbooks.newLogbookEntry, name="newLogBookEntry"), # Needed !
2020-07-26 02:26:04 +01:00
# url(r'^editlogbookentry/(?P<expeditionyear>[^/]*)/(?P<pdate>[^/]*)/(?P<pslug>[^/]*)/$', views_logbooks.newLogbookEntry, name="editLogBookEntry"), # working !
# url(r'^deletelogbookentry/(?P<expeditionyear>[^/]*)/(?P<date>[^/]*)/(?P<slug>[^/]*)/$', views_logbooks.deleteLogbookEntry, name="deleteLogBookEntry"),
url(r'^newfile', views_other.newFile, name="newFile"), # oddly broken, needs investigating more
2011-07-11 01:49:03 +01:00
url(r'^getEntrances/(?P<caveslug>.*)', views_caves.get_entrances, name = "get_entrances"), #works
2020-06-18 15:54:40 +01:00
# e.g. /getEntrances/1623-161
2020-05-15 21:32:55 +01:00
url(r'^getQMs/(?P<caveslug>.*)', views_caves.get_qms, name = "get_qms"), # no template "get_qms"?
url(r'^getPeople/(?P<expeditionslug>.*)', views_logbooks.get_people, name = "get_people"), # fails
url(r'^getLogBookEntries/(?P<expeditionslug>.*)', views_logbooks.get_logbook_entries, name = "get_logbook_entries"), #works
2011-07-11 01:49:03 +01:00
url(r'^cave/new/$', views_caves.edit_cave, name="newcave"),
2011-07-11 01:49:03 +01:00
url(r'^cave/(?P<cave_id>[^/]+)/?$', views_caves.cave, name="cave"),
2020-06-16 16:48:19 +01:00
url(r'^cave/(?P<cave_id>[^/]+)/?(?P<ent_letter>[^/])$', ent), # how can this work?
url(r'^cave/(?P<slug>[^/]+)/edit/$', views_caves.edit_cave, name="edit_cave"),
url(r'^cave/(?P<cave_id>[^/]+)/(?P<year>\d\d\d\d)-(?P<qm_id>\d*)(?P<grade>[ABCDX]?)?$', views_caves.qm, name="qm"),
2011-07-11 01:49:03 +01:00
url(r'^caveslug/([^/]+)/?$', views_caves.caveSlug, name="caveSlug"),
url(r'^cave/entrance/([^/]+)/?$', views_caves.caveEntrance),
url(r'^cave/description/([^/]+)/?$', views_caves.caveDescription),
2020-05-15 21:32:55 +01:00
url(r'^cave/qms/([^/]+)/?$', views_caves.caveQMs), # blank page
2011-07-11 01:49:03 +01:00
url(r'^cave/logbook/([^/]+)/?$', views_caves.caveLogbook),
2020-06-16 16:48:19 +01:00
url(r'^cave/3d/(?P<cave_id>[^/]+).3d$', views_caves.cave3d, name="cave3d"),
url(r'^entrance/(?P<caveslug>[^/]+)/(?P<slug>[^/]+)/edit/', views_caves.editEntrance, name = "editentrance"),
url(r'^entrance/new/(?P<caveslug>[^/]+)/', views_caves.editEntrance, name = "newentrance"),
2011-07-11 01:49:03 +01:00
2012-08-14 14:06:18 +01:00
url(r'^prospecting_guide/$', views_caves.prospecting),
2011-07-11 01:49:03 +01:00
url(r'^logbooksearch/(.*)/?$', views_logbooks.logbookSearch),
2020-06-18 21:50:16 +01:00
url(r'^statistics/?$', views_statistics.stats, name="stats"),
url(r'^stats/?$', views_statistics.stats, name="stats"),
2020-06-13 01:27:42 +01:00
url(r'^pathsreport.*$', views_statistics.pathsreport, name="pathsreport"),
2011-07-11 01:49:03 +01:00
url(r'^controlpanel/?$', views_other.controlPanel, name="controlpanel"),
url(r'^logbook(?P<year>\d\d\d\d)\.(?P<extension>.*)/?$',views_other.downloadLogbook),
url(r'^logbook/?$',views_other.downloadLogbook, name="downloadlogbook"),
url(r'^cave/(?P<cave_id>[^/]+)/qm\.csv/?$', views_other.downloadQMs, name="downloadqms"),
2020-06-17 22:55:51 +01:00
url(r'^downloadqms$', views_other.downloadQMs),
2011-07-11 01:49:03 +01:00
url(r'^admin/doc/', include('django.contrib.admindocs.urls')), # needs docutils Python module (http://docutils.sf.net/).
2020-06-18 11:48:50 +01:00
url(r'^admin/', admin.site.urls),
url(r'^accounts/', include('registration.backends.default.urls')), #LOGIN_URL = '/accounts/login/' # default
2020-06-18 21:50:16 +01:00
# url(r'^profiles/', include('profiles.urls')), # not used ? Delete this entire app then.
2011-07-11 01:49:03 +01:00
2020-08-02 23:53:35 +01:00
# url(r'^map/', .........), # Intercepted by Apache. Yields OpenStreetMap. Redirects to expoweb/map
2011-07-11 01:49:03 +01:00
url(r'^survexblock/(.+)$', views_caves.survexblock, name="survexblock"),
url(r'^survexfile/(?P<survex_file>.*?)\.svx$', views_survex.svx, name="svx"),
url(r'^survexfile/(?P<survex_file>.*?)\.3d$', views_survex.threed, name="threed"),
url(r'^survexfile/(?P<survex_file>.*?)\.log$', views_survex.svxraw),
url(r'^survexfile/(?P<survex_file>.*?)\.err$', views_survex.err),
url(r'^survexfile/caves', views_survex.survexcaveslist, name="survexcaveslist"),
2020-06-01 17:41:41 +01:00
url(r'^survexfile/(?P<survex_cave>.*)$', views_survex.survexcavesingle, name="survexcavessingle"),
url(r'^survexfileraw/(?P<survex_file>.*?)\.svx$', views_survex.svxraw, name="svxraw"),
# url(r'^survey_files/download/(?P<path>.*)$', view_surveys.download), # needs rewriting
2011-07-11 01:49:03 +01:00
url(r'^survey_scans/$', view_surveys.surveyscansfolders, name="surveyscansfolders"),
url(r'^survey_scans/(?P<path>[^/]+)/$', view_surveys.surveyscansfolder, name="surveyscansfolder"),
2020-06-18 21:50:16 +01:00
url(r'^survey_scans/(?P<path>[^/]+)/(?P<file>[^/]+)$',
view_surveys.surveyscansingle, name="surveyscansingle"),
url(r'^tunneldata/$', view_surveys.tunneldata, name="tunneldata"),
url(r'^tunneldataraw/(?P<path>.+?\.xml)$', view_surveys.tunnelfile, name="tunnelfile"),
# url(r'^tunneldatainfo/(?P<path>.+?\.xml)$', view_surveys.tunnelfileinfo, name="tunnelfileinfo"),
url(r'^tunneldataraw/(?P<path>.+?\.xml)/upload$', view_surveys.tunnelfileupload, name="tunnelfileupload"),
url(r'^prospecting/(?P<name>[^.]+).png$', prospecting_image, name="prospecting_image"),
2011-07-11 01:49:03 +01:00
# use this next alternative if no local copy of expofiles.
url(r'^expofiles/(?P<path>.*)$', flatviews.expofiles_redirect, name="expofiles_redirect"), # to expo.survex.com/expofiles
url(r'^expofiles/(?P<filepath>.*)$',view_surveys.expofilessingle, name="single"), # local copy of EXPOFILES
# url(r'^javascript/(?P<filepath>.*)$', view_surveys.cssfilessingle, name="single"), # JSLIB_URL - Apache: Alias /javascript /usr/share/javascript
2020-06-18 21:50:16 +01:00
# static views not working, removed as a plugin. Use apache instead to serve these:
# url(r'^photos/(?P<path>.*)$', staticviews.serve,
# {'document_root': settings.PHOTOS_ROOT, 'show_indexes':True}),
2020-06-18 15:54:40 +01:00
# url(r'^gallery/(?P<path>.*)$', staticviews.serve,
2020-06-17 22:55:51 +01:00
# {'document_root': settings.PHOTOS_ROOT, 'show_indexes':True}),
# url(r'^site_media/(?P<filepath>.*)$', view_surveys.cssfilessingle, name="single"), # MEDIA_ROOT: CSS and JS
url(r'^(site_media/.*)$', flatviews.flatpage, name="flatpage"), # MEDIA_ROOT: CSS and JS
2020-06-17 22:55:51 +01:00
# url(r'^static/(?P<filepath>.*)$', view_surveys.cssfilessingle, name="single"), # MEDIA_ROOT: CSS and JS
url(r'^(static/.*)$', flatviews.flatpage, name="flatpage"), # STATIC: CSS and JS
url(r'^(.*)_edit$', flatviews.editflatpage, name="editflatpage"),
url(r'^(.*)$', flatviews.flatpage, name="flatpage"), # files assumed relative to EXPOWEB
2020-06-17 22:55:51 +01:00
]
2011-07-11 01:49:03 +01:00
#Allow prefix to all urls
2020-06-17 22:55:51 +01:00
urlpatterns = [
url('^%s' % settings.DIR_ROOT, include(actualurlpatterns))
]
# When apache is running these prempt Django so Django never sees them.
# NEW apache configurations suggested as of 20 March 2021:
# Alias /site-media/ /home/expo/troggle/media/
# Alias /robots.txt /home/expo/troggle/media/robots.txt
# Alias /favicon.ico /home/expo/troggle/media/favicon.ico # comes from /expoweb/* when running runserver
# Alias /javascript /home/expo/troggle/media/javascript
# Copy of old standard apache configurations:
# Alias /expofiles /home/expo/expofiles
# Alias /photos /home/expo/webphotos
# Alias /map /home/expo/expoweb/map
# Alias /javascript /usr/share/javascript # to be changed
# Alias /robots.txt /home/expo/static/robots.txt # to be changed
# Alias /favicon.ico /home/expo/static/favicon.ico # to be changed
# Alias /static/ /home/expo/static/
# ScriptAlias /repositories /home/expo/config/apache/services/hgweb/hgweb.cgi
# ScriptAlias /boe /home/expo/boe/boc/boc.pl
# ScriptAlias /boe-lastyear /home/expo/boe/boc-previous/boc.pl