2
0
mirror of https://expo.survex.com/repositories/troggle/.git synced 2024-12-24 01:12:27 +00:00
troggle/_deploy/wsl/localsettingsWSL.py

184 lines
7.6 KiB
Python
Raw Normal View History

2023-01-19 20:47:26 +00:00
import sys
2021-03-24 17:32:45 +00:00
from pathlib import Path
2023-01-19 20:47:26 +00:00
2020-07-18 16:23:54 +01:00
"""Settings for a troggle installation which may vary among different
installations: for development or deployment, in a docker image or
python virtual environment (venv), on ubuntu, debian or in Windows
System for Linux (WSL), on the main server or in the potato hut,
using SQLite or mariaDB.
It sets the directory locations for the major parts of the system so
that e.g. expofiles can be on a different filesystem, or /javascript/ can be in
a system-wide location rather than just a local directory.
2020-07-18 16:23:54 +01:00
This file is included at the end of the main troggle/settings.py file so that
it overwrites defaults in that file.
Read https://realpython.com/python-pathlib/
Read https://adamj.eu/tech/2020/03/16/use-pathlib-in-your-django-project/
2020-07-18 16:23:54 +01:00
"""
print(" * importing troggle/localsettings.py")
2023-01-30 23:04:11 +00:00
# -----------------------------------------------------------------
# THINK before you push this to a repo
# - have you checked that credentials.py is in .gitignore ?
# - we don't want to have to change the expo system password !
2023-01-30 23:04:11 +00:00
# -----------------------------------------------------------------
2024-12-12 17:09:36 +00:00
# default values, real secrets will be imported from credentials.py in future
SECRET_KEY = "real-SECRET_KEY--imported-from-localsettings.py"
EXPOUSERPASS = "nnn:gggggg - real-expo-password---imported-from-localsettings.py"
EXPOADMINUSERPASS = "gggggg:nnn - real-expo-password---imported-from-localsettings.py"
EMAIL_HOST_PASSWORD = "real-email-password---imported-from-localsettings.py"
2021-04-03 00:33:55 +01:00
2024-12-12 17:09:36 +00:00
SQLITEFILE = "/home/philip/expo/troggle.sqlite" # can be ':memory:'
2021-03-26 13:51:00 +00:00
2024-12-12 17:09:36 +00:00
PHOTOSREMOTE = False # if True, then re-routes urls in expofiles/photos to remote server. Not implemented yet
EXPOFILESREMOTE = False # if True, then re-routes urls in expofiles to remote server. Tests are then less accurate.
# SECURE_SSL_REDIRECT = True # breaks 7 tests in test suite 301 not 200 (or 302) and runserver fails completely
SERVERPORT = "8000" # not needed as it is the default
PV = "python" + str(sys.version_info.major) + "." + str(sys.version_info.minor)
# Troggle does a lot of file-handling. This is very error-prone when using primitive methods,
# so we use pathlib which has been standard since python 3.4
2022-04-06 19:07:43 +01:00
# If pathlib is new to you, you will need to read https://realpython.com/python-pathlib/
2023-01-30 23:04:11 +00:00
# --------------------- MEDIA redirections BEGIN ---------------------
REPOS_ROOT_PATH = Path(__file__).parent.parent
2023-01-30 23:04:11 +00:00
LIBDIR = REPOS_ROOT_PATH / "lib" / PV
2021-03-24 17:32:45 +00:00
TROGGLE_PATH = Path(__file__).parent
2023-01-30 23:04:11 +00:00
TEMPLATE_PATH = TROGGLE_PATH / "templates"
MEDIA_ROOT = TROGGLE_PATH / "media"
JSLIB_ROOT = TROGGLE_PATH / "media" / "jslib" # used for CaveViewer JS utility
2024-02-06 18:52:46 +00:00
# FILES = Path('/mnt/d/expofiles/')
2022-12-23 22:13:11 +00:00
EXPOFILES = REPOS_ROOT_PATH / "expofiles"
2023-01-30 23:04:11 +00:00
SCANS_ROOT = EXPOFILES / "surveyscans"
2024-02-06 18:52:46 +00:00
PHOTOS_ROOT = EXPOFILES / "photos"
PHOTOS_YEAR = "2023"
2023-07-05 11:11:44 +01:00
NOTABLECAVESHREFS = ["290", "291", "264", "258", "204", "359", "76", "107"]
2023-09-26 16:32:11 +01:00
PYTHON_PATH = REPOS_ROOT_PATH / "troggle"
LOGFILE = PYTHON_PATH / "troggle.log"
2021-03-22 02:26:46 +00:00
# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash if there is a path component (optional in other cases).
2023-01-30 23:04:11 +00:00
MEDIA_URL = "/site-media/"
2023-01-30 23:04:11 +00:00
DIR_ROOT = Path("") # this should end in / if a value is given
URL_ROOT = "/"
# URL_ROOT = 'http://localhost:'+ SERVERPORT +'/'
2021-03-24 17:32:45 +00:00
2023-01-30 23:04:11 +00:00
# Note that these constants are not actually used in urls.py, they should be..
2022-12-23 22:13:11 +00:00
# and they all need to end with / so using 'Path' doesn't work..
2023-01-30 23:04:11 +00:00
MEDIA_URL = Path(URL_ROOT, "/site_media/")
PHOTOS_URL = Path(URL_ROOT, "/photos/")
2021-03-24 17:32:45 +00:00
2023-09-26 16:32:11 +01:00
2023-01-30 23:04:11 +00:00
STATIC_URL = Path(URL_ROOT, "/static/") # used by Django admin pages. Do not delete.
JSLIB_URL = Path(URL_ROOT, "/javascript/") # used for CaveViewer JS utility
2021-03-24 17:32:45 +00:00
2023-01-30 23:04:11 +00:00
# STATIC_ROOT removed after merging content into MEDIA_ROOT. See urls.py & core/views/surveys.py
# --------------------- MEDIA redirections END ---------------------
2020-07-19 01:23:07 +01:00
PUBLIC_SITE = True
2024-02-06 18:52:46 +00:00
DEBUG = True # Always keep this True, even when on public server. Otherwise NO USEFUL ERROR MESSAGES !
CACHEDPAGES = True # experimental page cache for a handful of page types
# executables:
2024-02-06 18:52:46 +00:00
CAVERN = "cavern" # for parsing .svx files and producing .3d files
2023-01-30 23:04:11 +00:00
SURVEXPORT = "survexport" # for parsing .3d files and producing .pos files
2022-06-25 18:01:43 +01:00
DBSQLITE = {
2023-01-30 23:04:11 +00:00
"default": {
"ENGINE": "django.db.backends.sqlite3", # 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
2024-12-12 17:09:36 +00:00
"NAME": SQLITEFILE,
2023-09-26 16:32:11 +01:00
# 'NAME' : ':memory:',
2023-01-30 23:04:11 +00:00
"USER": "expo", # Not used with sqlite3.
"PASSWORD": "sekrit", # Not used with sqlite3.
"HOST": "", # Set to empty string for localhost. Not used with sqlite3.
"PORT": "", # Set to empty string for default. Not used with sqlite3.
}
}
2022-06-25 18:01:43 +01:00
DBMARIADB = {
2023-01-30 23:04:11 +00:00
"default": {
"ENGINE": "django.db.backends.mysql", # 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
"NAME": "troggle", # Or path to database file if using sqlite3.
"USER": "expo",
"PASSWORD": "my-secret-password-schwatzmooskogel",
"HOST": "", # Set to empty string for localhost. Not used with sqlite3.
"PORT": "", # Set to empty string for default. Not used with sqlite3.
2022-06-25 18:01:43 +01:00
}
}
# default database for me is squlite
DBSWITCH = "sqlite"
if DBSWITCH == "sqlite":
DATABASES = DBSQLITE
if DBSWITCH == "mariadb":
DATABASES = DBMARIADB
2022-12-23 22:13:11 +00:00
TEMPLATES = [
{
2023-01-30 23:04:11 +00:00
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [TEMPLATE_PATH],
"OPTIONS": {
"debug": "DEBUG",
"context_processors": [
# django.template.context_processors.csrf, # is always enabled and cannot be removed, sets csrf_token
2023-09-26 16:32:11 +01:00
"django.contrib.auth.context_processors.auth", # knowledge of logged-on user & permissions
2024-02-06 18:52:46 +00:00
"core.context.troggle_context", # in core/context.py - only used in expedition.html
2023-01-30 23:04:11 +00:00
"django.template.context_processors.debug",
"django.template.context_processors.i18n",
"django.template.context_processors.media", # includes a variable MEDIA_URL
2023-09-26 16:32:11 +01:00
"django.template.context_processors.static", # includes a variable STATIC_URL used by admin pages
2023-01-30 23:04:11 +00:00
"django.template.context_processors.tz",
2023-09-26 16:32:11 +01:00
"django.template.context_processors.request", # must be enabled in DjangoTemplates (TEMPLATES) in order to use the admin navigation sidebar.
2023-01-30 23:04:11 +00:00
"django.contrib.messages.context_processors.messages",
],
2023-01-30 23:04:11 +00:00
"loaders": [
2023-09-26 16:32:11 +01:00
"django.template.loaders.filesystem.Loader", # default lcation is troggle/templates/
"django.template.loaders.app_directories.Loader", # needed for admin 'app'
2023-01-30 23:04:11 +00:00
],
},
},
]
2023-01-30 23:04:11 +00:00
EXPOUSER = "expo"
EXPOUSER_EMAIL = "philip.sargent@gmail.com"
EXPOADMINUSER = "expoadmin"
EXPOADMINUSER_EMAIL = "philip.sargent@gmail.com"
EMAIL_HOST = "smtp-auth.mythic-beasts.com"
2023-01-30 23:04:11 +00:00
EMAIL_HOST_USER = "django-test@klebos.net" # Philip Sargent really
EMAIL_PORT = 587
EMAIL_USE_TLS = True
2023-01-30 23:04:11 +00:00
DEFAULT_FROM_EMAIL = "django-test@klebos.net"
2021-03-24 17:32:45 +00:00
SURVEX_DATA = REPOS_ROOT_PATH / "loser"
2021-04-26 18:42:10 +01:00
DRAWINGS_DATA = REPOS_ROOT_PATH / "drawings"
2023-01-30 23:04:11 +00:00
EXPOWEB = REPOS_ROOT_PATH / "expoweb"
CAVEDESCRIPTIONS = EXPOWEB / "cave_data"
ENTRANCEDESCRIPTIONS = EXPOWEB / "entrance_data"
2024-02-06 18:52:46 +00:00
# EXPOWEB_URL = "" # defunct, removed.
2022-07-27 21:23:43 +01:00
# SCANS_URL = '/survey_scans/' # defunct, removed.
2022-12-23 22:13:11 +00:00
sys.path.append(str(REPOS_ROOT_PATH))
2023-01-30 23:04:11 +00:00
sys.path.append(str(PYTHON_PATH))
2023-09-26 16:32:11 +01:00
#TINY_MCE_MEDIA_ROOT = STATIC_ROOT + '/tiny_mce/' # not needed while TinyMCE not installed
#TINY_MCE_MEDIA_URL = STATIC_URL + '/tiny_mce/' # not needed while TinyMCE not installed
# Sanitise these to be strings as Django seems to be particularly sensitive to crashing if they aren't
STATIC_URL = str(STATIC_URL) + "/"
MEDIA_URL = str(MEDIA_URL) + "/"