2011-07-11 01:49:03 +01:00
from django . conf import settings
2024-12-15 18:48:28 +00:00
from django . conf . urls . static import static
2023-01-19 21:34:09 +00:00
from django . contrib import admin
from django . urls import include , path , re_path
2020-06-22 00:03:23 +01:00
2022-03-18 20:00:15 +00:00
from troggle . core . views import statistics , survex
2021-04-06 00:49:09 +01:00
from troggle . core . views . auth import expologin , expologout
2024-12-15 18:48:28 +00:00
from troggle . core . views . caves import (
cave3d ,
cave_debug ,
caveindex ,
cavepage ,
caveQMs ,
caveslist ,
caveslugfwd ,
edit_cave ,
edit_entrance ,
entranceindex ,
expo_kml ,
expo_kmz ,
get_entrances ,
qm ,
)
2023-01-19 18:30:05 +00:00
from troggle . core . views . drawings import dwgallfiles , dwgfilesingle
2022-06-25 23:17:19 +01:00
from troggle . core . views . editor_helpers import image_selector , new_image_form
2024-12-15 18:48:28 +00:00
from troggle . core . views . expo import (
editexpopage ,
expofiles_redirect ,
expofilessingle ,
expopage ,
indexpage ,
map ,
mapfile ,
mediapage ,
pubspage ,
spider ,
)
from troggle . core . views . logbooks import (
Expeditions_jsonListView ,
Expeditions_tsvListView ,
QMs_jsonListView ,
expedition ,
get_logbook_entries ,
get_people ,
logbookentry ,
logentrydelete ,
logreport ,
notablepersons ,
person ,
personexpedition ,
)
from troggle . core . views . other import controlpanel , exportlogbook , frontpage , todos
2023-01-19 21:34:09 +00:00
from troggle . core . views . prospect import prospecting
2024-12-15 18:48:28 +00:00
from troggle . core . views . scans import allscans , cavewallets , scansingle , walletslistperson , walletslistyear
from troggle . core . views . uploads import dwgupload , expofilerename , gpxupload , logbookedit , photoupload
2023-02-01 21:58:48 +00:00
from troggle . core . views . wallets_edit import walletedit
2024-12-15 18:48:28 +00:00
2021-03-28 03:48:04 +01:00
""" This sets the actualurlpatterns[] and urlpatterns[] lists which django uses
2021-03-21 01:37:52 +00:00
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 .
2021-04-19 01:32:18 +01:00
re_path ( < regular expression that matches the thing in the web browser > ,
2020-07-18 16:23:54 +01:00
< 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 .
2020-07-28 01:22:06 +01:00
The API urls return TSV or JSON and are new in July 2020.
2020-07-18 16:23:54 +01:00
"""
2021-03-21 01:37:52 +00:00
2023-02-02 21:50:40 +00:00
todo = '''
- Replace more re_path ( ) with modern and simpler path ( ) . Careful : some have to stay as re_path ( )
- The admin and logout paths need to stay using re_path ( ) as they
have to be locked to the start .
- The final _edit and CATCHALL also have to use re_path ( ) .
- Test VERY CAREFULLY for each change . It is fragile .
2021-04-21 19:08:42 +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-22 00:03:23 +01:00
2024-07-08 17:48:49 +01:00
2024-12-15 18:48:28 +00:00
# WHen running on the server, apache intercepts all the /expofiles/ files so troggle never sees them,
2024-07-08 17:48:49 +01:00
# so the "content type" is set by whatever apache thinks it should be. Which means .gpx files
# get treated as XML and the web browser fails to do anything usefull
2021-03-26 13:51:00 +00:00
if settings . EXPOFILESREMOTE :
expofilesurls = [
2022-03-22 02:22:15 +00:00
path ( ' <path:filepath> ' , expofiles_redirect , name = " expofiles_redirect " ) , # to http://expo.survex.com/expofiles
2021-04-28 00:48:20 +01:00
path ( ' ' , expofiles_redirect , { ' filepath ' : " " } , name = " expofiles_redirect " ) ,
]
2021-03-26 13:51:00 +00:00
else :
expofilesurls = [
2021-04-28 00:48:20 +01:00
path ( ' ' , expofilessingle , { ' filepath ' : " " } , name = " single " ) ,
2022-03-22 02:22:15 +00:00
path ( ' <path:filepath> ' , expofilessingle , name = " single " ) , # local copy of EXPOFILES
2021-04-28 00:48:20 +01:00
]
2022-03-02 21:15:24 +00:00
2022-07-31 16:08:28 +01:00
# see https://docs.djangoproject.com/en/dev/topics/auth/default/tiny
2021-04-06 00:49:09 +01:00
# The URLs provided by include('django.contrib.auth.urls') are:
2022-03-04 14:54:49 +00:00
#
2021-04-06 00:49:09 +01:00
# accounts/login/ [name='login']
# accounts/logout/ [name='logout']
# accounts/password_change/ [name='password_change']
# accounts/password_change/done/ [name='password_change_done']
# accounts/password_reset/ [name='password_reset']
# accounts/password_reset/done/ [name='password_reset_done']
# accounts/reset/<uidb64>/<token>/ [name='password_reset_confirm']
# accounts/reset/done/ [name='password_reset_complete']
2021-03-31 23:41:46 +01:00
2022-03-05 17:05:15 +00:00
# BUT many of these are set up by opinionated Django even if 'django.contrib.auth.urls' is NOT included.
# Some overlap with 'admin.site.urls' needs to be investigated.
2023-03-05 18:20:18 +00:00
# admin.site.urls is urls() which maps to get_urls() which is a function declared
# in django/contrib/admin/sites.py which for me is
# /home/philip/p11d5/lib/python3.11/site-packages/django/contrib/admin/sites.py
2021-03-31 16:14:36 +01:00
trogglepatterns = [
2024-07-08 19:22:42 +01:00
path ( ' pubs.htm ' , pubspage , name = " pubspage " ) , # ~165 hrefs to this url in expoweb files
2024-07-10 12:10:55 +01:00
#path('', indexpage, name="indexpage"), # ~1,212 hrefs to this url in expoweb files
2024-07-08 19:22:42 +01:00
path ( ' index.htm ' , indexpage , name = " indexpage " ) , # ~1,212 hrefs to this url in expoweb files
2021-12-30 00:56:09 +00:00
path ( ' expofiles/ ' , include ( expofilesurls ) ) , # intercepted by Apache, if it is running.
2021-04-28 00:48:20 +01:00
path ( ' expofiles ' , include ( expofilesurls ) ) , # curious interaction with the include() here, not just a slash problem.
2023-02-02 11:13:02 +00:00
re_path ( r ' ^(.*)_edit_edit$ ' , spider , name = " spider " ) , # web spider funny
2022-03-18 20:00:15 +00:00
re_path ( r ' ^caves$ ' , caveindex , name = " caveindex " ) ,
re_path ( r ' ^indxal.htm$ ' , caveindex , name = " caveindex " ) , # ~420 hrefs to this url in expoweb files
2021-04-30 21:32:53 +01:00
re_path ( r ' ^people/?$ ' , notablepersons , name = " notablepersons " ) ,
2023-11-07 00:12:57 +00:00
path ( ' caveslist ' , caveslist , name = " caveslist " ) ,
path ( ' entrances ' , entranceindex , name = " entranceindex " ) ,
2011-07-11 01:49:03 +01:00
2021-04-19 01:32:18 +01:00
re_path ( r ' ^admin/doc/ ' , include ( ' django.contrib.admindocs.urls ' ) ) , # needs docutils Python module (http://docutils.sf.net/).
2023-03-05 18:20:18 +00:00
re_path ( r ' ^admin/ ' , admin . site . urls ) , # includes admin login & logout urls & /admin/jsi18n/
2021-03-27 18:22:07 +00:00
2021-05-04 14:16:48 +01:00
# Uploads - uploading a file
2023-02-01 21:31:07 +00:00
path ( ' walletedit/ ' , walletedit , name = ' walletedit ' ) ,
2023-01-31 17:13:41 +00:00
path ( ' walletedit/<path:path> ' , walletedit , name = ' walletedit ' ) , # path=2020#01
2022-03-13 01:01:00 +00:00
path ( ' photoupload/ ' , photoupload , name = ' photoupload ' ) , # restricted to current year
path ( ' photoupload/<path:folder> ' , photoupload , name = ' photoupload ' ) , # restricted to current year
2024-07-13 13:49:55 +01:00
path ( ' gpxupload/ ' , gpxupload , name = ' gpxupload ' ) , # restricted to current year
path ( ' gpxupload/<path:folder> ' , gpxupload , name = ' gpxupload ' ) , # restricted to current year
2022-03-13 01:01:00 +00:00
path ( ' dwgupload/<path:folder> ' , dwgupload , name = ' dwgupload ' ) ,
path ( ' dwgupload/ ' , dwgupload , name = ' dwgupload ' ) ,
2021-10-31 17:25:45 +00:00
path ( ' dwguploadnogit/ ' , dwgupload , { ' gitdisable ' : ' yes ' } , name = ' dwguploadnogit ' ) , # used in testing
path ( ' dwguploadnogit/<path:folder> ' , dwgupload , { ' gitdisable ' : ' yes ' } , name = ' dwguploadnogit ' ) , # used in testing
2023-09-03 21:28:36 +01:00
path ( ' logbookedit/ ' , logbookedit , name = ' logbookedit ' ) ,
2023-08-10 21:17:03 +01:00
path ( ' logbookedit/<slug:slug> ' , logbookedit , name = ' logbookedit ' ) ,
2021-04-22 02:45:28 +01:00
2023-07-31 13:49:54 +01:00
# Renaming an uploaded file
path ( ' expofilerename/<path:filepath> ' , expofilerename , name = ' expofilerename ' ) ,
2022-03-18 11:28:35 +00:00
# setting LOGIN_URL = '/accounts/login/' is default.
2023-02-10 00:05:04 +00:00
# NB setting url pattern name to 'login' instea dof 'expologin' with override Django, see https://docs.djangoproject.com/en/dev/topics/http/urls/#naming-url-patterns
2022-03-02 21:15:24 +00:00
path ( ' accounts/logout/ ' , expologout , name = ' expologout ' ) , # same as in django.contrib.auth.urls
path ( ' accounts/login/ ' , expologin , name = ' expologin ' ) , # same as in django.contrib.auth.urls
#re_path(r'^accounts/', include('django.contrib.auth.urls')), # see site-packages\registration\auth_urls_classes.py
2021-04-06 00:49:09 +01:00
2023-09-29 20:00:10 +01:00
# Persons - nasty surname recognition logic fails for 19 people! See also Wallets by person below.
# path('person/<str:name>', person, name="person"), # This is much more complex than it looks..
2023-10-01 14:10:17 +01:00
path ( ' person/<slug:slug> ' , 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-zA-Z\-&;]*)/?', person, name="person"),
2023-10-01 13:55:28 +01:00
#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"),
path ( ' personexpedition/<slug:slug>/<int:year> ' , personexpedition , name = " personexpedition " ) ,
2020-06-18 15:54:40 +01:00
2021-04-22 02:45:28 +01:00
# Expedition master page & API exports
2021-04-19 01:32:18 +01:00
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 ( ) ) ,
2023-03-16 21:06:52 +00:00
re_path ( r ' ^api/QMs_json$ ' , QMs_jsonListView . as_view ( ) ) ,
2021-04-11 03:02:06 +01:00
# Logbook entries
2023-08-31 16:55:20 +01:00
re_path ( r ' ^logbookentry/(?P<date>.*)/(?P<slug>.*)/?$ ' , logbookentry , name = " logbookentry " ) ,
2021-04-28 02:43:09 +01:00
re_path ( r ' ^logbook$ ' , exportlogbook , name = ' exportlogbook ' ) ,
2024-07-14 15:01:44 +01:00
path ( ' logreport/<slug:year> ' , logreport , name = ' logreport ' ) ,
2024-07-17 20:58:27 +01:00
path ( ' logentrydelete/<slug:year> ' , logentrydelete , name = ' logentrydelete ' ) ,
2021-04-28 02:43:09 +01:00
2021-04-16 21:28:44 +01:00
# Internal. editfile.html template uses these internally
2021-04-19 01:32:18 +01:00
re_path ( r ' ^getPeople/(?P<expeditionslug>.*) ' , get_people , name = " get_people " ) ,
re_path ( r ' ^getLogBookEntries/(?P<expeditionslug>.*) ' , get_logbook_entries , name = " get_logbook_entries " ) ,
2022-07-08 20:19:56 +01:00
re_path ( r ' ^getEntrances/(?P<caveslug>.*) ' , get_entrances , name = " get_entrances " ) , # used internally ?
2021-04-16 21:28:44 +01:00
2021-04-11 03:02:06 +01:00
# Cave description pages
2023-09-30 20:09:18 +01:00
path ( ' cave/<slug:slug> ' , caveslugfwd , name = " caveslugfwd " ) ,
2023-03-28 15:37:25 +01:00
path ( ' cave_debug ' , cave_debug , name = " cave_debug " ) ,
2022-03-18 20:00:15 +00:00
re_path ( r ' ^newcave/$ ' , edit_cave , name = " newcave " ) ,
2023-06-07 22:58:28 +01:00
re_path ( r ' ^cave/3d/(?P<cave_id>[^/]+).3d$ ' , cave3d , name = " cave3d " ) ,
2022-03-18 20:00:15 +00:00
#re_path(r'^cave/description/([^/]+)/?$', caves.caveDescription), #!!!BAD, local links fail..
#re_path(r'^cave/(?P<cave_id>[^/]+)/?$', caves.cave, name="cave"), # used only in testing !? XXXXXXXXXXXXXXXXXXXXXXXXXX
#re_path(r'^cave/(?P<cave_id>[^/]+)/?(?P<ent_letter>[^/])$', ent), #!!!BAD, local links fail..# view_caves.ent
2022-07-31 20:29:17 +01:00
# Edit caves and entrances
2022-07-31 16:08:28 +01:00
re_path ( r ' ^(?P<path>.*)/(?P<slug>[^/]+)_cave_edit/$ ' , edit_cave , name = " edit_cave " ) , # edit_cave needed by cave.html template for url matching
2023-11-07 21:23:15 +00:00
re_path ( r ' ^(?P<caveslug>[^/]+):(?P<entslug>[^:]+)_entrance_edit ' , edit_entrance , name = " editentrance " ) , #edit existing entrance
2022-07-31 20:29:17 +01:00
re_path ( r ' ^(?P<path>.*)/(?P<caveslug>[^/]+)_entrance_new$ ' , edit_entrance , name = " newentrance " ) , # new entrance for a cave
2023-02-02 11:13:02 +00:00
2022-06-19 00:49:07 +01:00
re_path ( r ' ^(.*)_edit$ ' , editexpopage , name = " editexpopage " ) ,
2024-07-23 22:43:08 +01:00
re_path ( r ' ^(?P<karea>162 \ d)(?P<subpath>.*)$ ' , cavepage , name = " cavepage " ) , # shorthand /1623/264 or 1623/161/top.htm or 1623/161/i/stuff.jpg
2023-03-15 13:58:09 +00:00
# Note that urls eg '/1623/161/l/rl89a.htm' are handled by cavepage which redirects them to 'expopage'
# Note that _edit$ for a cave description page in a subfolder e.g. /1623/204/204.html_edit gets caught here and breaks with 404
2023-03-15 14:22:21 +00:00
2024-07-10 20:07:45 +01:00
# These re-enable archaic URLs which are in old web pages which may still be public on other servers - old
# path('smkridge/<path:subpath>', cavepagefwd, {'karea': "1623"}, name="cavepagefwd"),
# path('expo/smkridge/<path:subpath>', cavepagefwd, {'karea': "1623"}, name="cavepagefwd"),
2023-03-15 14:22:21 +00:00
# Archaic, kept. This /expo/ prefix only works for expoweb HTML pages not troggle pages
path ( ' expo/<path:path> ' , expopage , name = " expopage " ) ,
2023-07-27 12:40:52 +01:00
2021-04-21 19:08:42 +01:00
# System admin and monitoring
2022-10-08 22:17:53 +01:00
path ( ' statistics ' , statistics . stats , name = " stats " ) ,
path ( ' stats ' , statistics . stats , name = " stats " ) ,
path ( ' pathsreport ' , statistics . pathsreport , name = " pathsreport " ) ,
path ( ' dataissues ' , statistics . dataissues , name = " dataissues " ) ,
2023-01-26 22:36:49 +00:00
path ( ' therionissues ' , statistics . therionissues , name = " therionissues " ) ,
2023-01-29 12:11:47 +00:00
path ( ' surveximport ' , statistics . surveximport , name = " surveximport " ) ,
2023-01-29 12:41:50 +00:00
path ( ' survexdebug ' , statistics . survexdebug , name = " survexdebug " ) ,
2023-10-27 20:28:10 +01:00
path ( ' stations ' , statistics . stations , name = " stations " ) ,
2022-10-08 22:17:53 +01:00
path ( ' aliases/<int:year> ' , statistics . aliases , name = " aliases " ) ,
2020-06-04 21:57:04 +01:00
2021-04-30 03:44:53 +01:00
path ( ' troggle ' , frontpage , name = " frontpage " ) , # control panel. Shows recent actions.
path ( ' todo/<path:module> ' , todos , name = " todos " ) ,
path ( ' controlpanel ' , controlpanel , name = " controlpanel " ) ,
2011-07-11 01:49:03 +01:00
2021-04-11 03:02:06 +01:00
# The survexfile pages
2023-09-05 19:46:10 +01:00
path ( ' survexdir ' , survex . survexdir , name = " survexdir " ) ,
2023-09-06 11:20:29 +01:00
path ( ' survexfile ' , survex . survexcavesingle , { ' cave_shortname ' : ' ' } , name = " survexcavessingle " ) ,
path ( ' survexfile/ ' , survex . survexcavesingle , { ' cave_shortname ' : ' ' } , name = " survexcavessingle " ) ,
2021-04-28 00:48:20 +01:00
path ( ' survexfile/caves ' , survex . survexcaveslist , name = " survexcaveslist " ) ,
path ( ' survexfile/caves/ ' , survex . survexcaveslist , name = " survexcaveslist " ) , # auto slash not working
2021-04-27 19:02:11 +01:00
path ( ' survexfile/<path:survex_file>.svx ' , survex . svx , name = " svx " ) ,
path ( ' survexfile/<path:survex_file>.3d ' , survex . threed , name = " threed " ) ,
2022-03-11 16:22:37 +00:00
path ( ' survexfile/<path:survex_file>.log ' , survex . svxlog , name = " svxlog " ) ,
2021-04-27 19:02:11 +01:00
path ( ' survexfile/<path:survex_file>.err ' , survex . err , name = " err " ) ,
2023-09-06 11:20:29 +01:00
path ( ' survexfile/<path:cave_shortname> ' , survex . survexcavesingle , name = " survexcavessingle " ) ,
2021-04-19 01:32:18 +01:00
2023-08-05 10:43:06 +01:00
path ( ' survexfilewild ' , statistics . svxfilewild , name = " svxfilewild " ) ,
2023-08-05 11:26:55 +01:00
path ( ' survexfilewild/ ' , statistics . svxfilewild , name = " svxfilewild " ) ,
2023-08-05 10:43:06 +01:00
path ( ' survexfilewild/<int:year> ' , statistics . svxfilewild , name = " svxfilewild " ) ,
2021-04-19 01:32:18 +01:00
2022-07-27 21:22:46 +01:00
# The survey scans in the wallets. This short-cuts SCANS_URL which is not used anymore and is defunct
path ( ' survey_scans/ ' , allscans , name = " allscans " ) , # all the scans in all wallets
2023-01-31 17:13:41 +00:00
path ( ' survey_scans/<path:path>/ ' , walletedit , name = " singlewallet " ) , # replaced singlewallet()
2022-07-27 21:22:46 +01:00
path ( ' survey_scans/<path:path>/<file> ' , scansingle , name = " scansingle " ) , # works, but html href goes direct to /expofiles/ too
path ( ' cave/scans/<slug:caveid> ' , cavewallets , name = " cavewallets " ) , # like allscans, but for just one cave
# The data about the wallets themselves, not the scans inside tehm
path ( ' wallets/year/<int:year> ' , walletslistyear , name = " walletslistyear " ) , # wallets that are for a specific year, as an integer '1985'
2023-10-01 13:55:28 +01:00
# re_path('wallets/person/(?P<first_name>[A-Z]*[a-z\-\'&;]*)[^a-zA-Z]*(?P<last_name>[a-z\-\']*[^a-zA-Z]*[\-]*[A-Z]*[a-zA-Z\-&;]*)/?', walletslistperson, name="walletslistperson"),
path ( ' wallets/person/<slug:slug> ' , walletslistperson , name = " walletslistperson " ) ,
2022-07-27 21:22:46 +01:00
2020-06-04 21:57:04 +01:00
2022-07-27 21:22:46 +01:00
# The tunnel and therion drawings files pageswalletslistcave
2023-09-07 19:40:39 +01:00
path ( ' drawings ' , dwgallfiles , name = " dwgallfiles " ) ,
path ( ' drawings/ ' , dwgallfiles , name = " dwgallfiles " ) ,
2021-05-04 14:16:48 +01:00
path ( ' dwgfiles ' , dwgallfiles , name = " dwgallfiles " ) ,
2022-07-31 16:08:28 +01:00
path ( ' dwgfiles/ ' , dwgallfiles , name = " dwgallfiles " ) ,
2021-05-04 14:16:48 +01:00
path ( ' dwgdataraw/<path:path> ' , dwgfilesingle , name = " dwgfilesingle " ) ,
2021-04-17 23:59:11 +01:00
2021-04-28 00:48:20 +01:00
# QMs pages - must precede other /caves pages?
2022-07-31 16:08:28 +01:00
re_path ( r ' ^cave/qms/([^/]+)/?$ ' , caveQMs , name = " caveQMs " ) ,
2023-04-05 23:13:12 +01:00
re_path ( r ' ^cave/openqms/([^/]+)/?$ ' , caveQMs , { ' open ' : True } , name = " cave_openQMs " ) ,
2022-07-20 18:47:29 +01:00
re_path ( r ' ^cave/qms/(?P<cave_id>[^/]+)/(?P<year> \ d \ d \ d \ d)-(?P<qm_id> \ d*)(?P<grade>[ABCDXV \ ?]?)-?(?P<blockname>[a-zA-Z]+.*)?$ ' , qm , name = " qm " ) , # Dogs breakfast
2022-07-06 13:38:53 +01:00
# the resolution of a QM uses several fields together, there is no clean slug field. Artefact of history.
2021-04-17 23:59:11 +01:00
2021-04-16 21:28:44 +01:00
# Prospecting Guide document
2022-03-05 17:05:15 +00:00
re_path ( r ' ^prospecting_guide/$ ' , prospecting ) , # disabled. Bad links, incompatible image package use and very, very out of date.
2021-04-16 21:28:44 +01:00
2023-05-20 19:36:05 +01:00
# This next set are all intercepted by Apache, if it is running, with no problem.
2021-04-19 01:32:18 +01:00
re_path ( r ' ^photos/(?P<subpath>.*)$ ' , mediapage , { ' doc_root ' : settings . PHOTOS_ROOT } , name = " mediapage " ) , # photo galleries
2023-11-08 20:53:30 +00:00
re_path ( r ' ^map/slippy/map.html ' , map , name = " map " ) , # Redirects to OpenStreetMap JavaScript. NOT WORKING
2023-11-14 17:43:49 +00:00
re_path ( r ' ^map/(?P<path>.*)$ ' , mapfile , name = " mapfile " ) , # css, js, gpx. working. This does not add any troggle menus or headers
2023-05-20 19:36:05 +01:00
# This next set are all intercepted by Apache, if it is running, AND troggle must manage these,
# even though the code is not in the troggle repo
# Alias /static/ /home/expo/static/
2022-02-20 00:21:56 +00:00
re_path ( r ' ^static/(?P<subpath>.*)$ ' , mediapage , { ' doc_root ' : settings . MEDIA_ROOT } , name = " mediapage " ) , # STATIC only used by admin pages
2023-05-20 19:36:05 +01:00
# Alias /javascript /usr/share/javascript
2021-04-30 00:24:36 +01:00
path ( ' javascript/<path:subpath> ' , mediapage , { ' doc_root ' : settings . JSLIB_ROOT } , name = " mediapage " ) , # JSLIB_URL
2021-04-28 00:48:20 +01:00
2023-05-20 19:36:05 +01:00
# NOT intercepted by apache
re_path ( r ' ^site_media/(?P<subpath>.*)$ ' , mediapage , { ' doc_root ' : settings . MEDIA_ROOT } , name = " mediapage " ) , # MEDIA_ROOT: CSS and JS
# Fossil ? /loser/caves-1623/171/171.svx fails 404, /loser/docs/smklengths fails 404
2021-04-28 00:48:20 +01:00
re_path ( r ' ^/loser/(?P<subpath>.*)$ ' , mediapage , { ' doc_root ' : settings . SURVEX_DATA } , name = " mediapage " ) , # Oddly not working !?
2023-05-20 19:36:05 +01:00
2022-06-25 23:17:19 +01:00
# Helpers to edit HTML
re_path ( r ' ^image_selector/(?P<path>.*) ' , image_selector , name = ' image_selector ' ) ,
re_path ( r ' ^new_image_form/(?P<path>.*) ' , new_image_form , name = ' new_image_form ' ) ,
2023-05-01 00:01:41 +01:00
re_path ( r ' ^expo.kml ' , expo_kml , name = ' expo.kml ' ) ,
2023-05-08 01:10:43 +01:00
re_path ( r ' ^expo.kmz ' , expo_kmz , name = ' expo.kmz ' ) ,
2020-06-20 23:08:34 +01:00
2022-07-31 16:08:28 +01:00
# Final catchall which also serves expoweb handbook pages and imagestiny
2021-04-19 01:32:18 +01:00
re_path ( r ' ^(.*)$ ' , expopage , name = " expopage " ) , # CATCHALL assumed relative to EXPOWEB
2020-06-17 22:55:51 +01:00
]
2011-07-11 01:49:03 +01:00
2021-04-27 19:02:11 +01:00
# do NOT allow DIR_ROOT prefix to all urls
2023-04-30 18:54:53 +01:00
#urlpatterns = static(settings.JSLIB_URL, document_root=settings.JSLIB_ROOT) #For development purposes, in production this should be served statically perhaps from /usr/share/javascript
#urlpatterns += static(settings.EXPOWEBCACHE_URL, document_root=settings.EXPOWEBCACHE_ROOT) #For development purposes, in production this should be served statically
urlpatterns = [ re_path ( ' ' , include ( trogglepatterns ) ) ]
2021-03-25 16:15:26 +00:00
2021-03-21 01:37:52 +00:00
# When apache is running these prempt Django so Django never sees them.
2021-04-10 15:30:29 +01:00
# NB apache has its own ideas about mimetypes, so behaviour may not be identical for .xml files by troggle
2023-05-20 19:36:05 +01:00
# These directives are in /home/expo/config/apache/expo.conf on the server
# checked as correct 3 May 2023.
#These are the critical ones: /static/ and /javascript/
#Note that apache does NOT intercept /site-media/
# Alias /static/ /home/expo/static/
# Alias /javascript /usr/share/javascript
#
# Alias /expofiles /home/expo/expofiles
# Alias /photos /home/expo/webphotos
# Alias /map /home/expo/expoweb/map
2023-11-08 13:28:19 +00:00
# Alias /expowebcache /home/expo/expowebcache/ # no longer used
2023-05-20 19:36:05 +01:00
# Alias /robots.txt /home/expo/static/robots.txt
# Alias /favicon.ico /home/expo/static/favicon.ico
#This is archaic ?
# Redirect permanent "/expoimages/" "/expofiles/"
# #kanboard, the trello-clone, but need individual user id to be effective
# Alias /kanboard /home/expo/kanboard
# #Search function (xapian-omega)
# ScriptAlias /search /usr/lib/cgi-bin/omega/omega
# ScriptAlias /hgrepositories /home/expo/config/apache/services/hgweb/hgweb.cgi
# #bank of expo
# #current expedition
# ScriptAlias "/boe" "/home/expo/boe/boc/boc.pl"
# #archived expedition boe instances
# ScriptAliasMatch "^/boe-(.*)" "/home/expo/boe/boc-$1/boc.pl"
2021-03-21 01:37:52 +00:00