diff options
author | Philip Sargent <philip.sargent@gmail.com> | 2025-02-07 13:02:25 +0000 |
---|---|---|
committer | Philip Sargent <philip.sargent@gmail.com> | 2025-02-07 13:02:25 +0000 |
commit | c3eed61080e0e37336a20eeaf3ca18ba2d360e51 (patch) | |
tree | 08a1f7bdd755337ca95aa0a4363e531f16d12286 | |
parent | ea77d4f3e451860276765f8d879375903d89e8d5 (diff) | |
download | troggle-c3eed61080e0e37336a20eeaf3ca18ba2d360e51.tar.gz troggle-c3eed61080e0e37336a20eeaf3ca18ba2d360e51.tar.bz2 troggle-c3eed61080e0e37336a20eeaf3ca18ba2d360e51.zip |
turn off print stmts
-rw-r--r-- | localsettings-0.py | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/localsettings-0.py b/localsettings-0.py new file mode 100644 index 0000000..8967344 --- /dev/null +++ b/localsettings-0.py @@ -0,0 +1,179 @@ +import sys +from pathlib import Path + +"""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. + +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/ +""" + +print(" * importing troggle/localsettings.py") + +# ----------------------------------------------------------------- +# 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 ! +# ----------------------------------------------------------------- +# default values, real secrets imported from credentials.py + +SECRET_KEY = "real-SECRET_KEY--imported-from-localsettings.py" +EXPOUSERPASS = "161:gosser" #- real-expo-password---imported-from-localsettings.py" +EXPOADMINUSERPASS = "gosser:161" #- real-expo-password---imported-from-localsettings.py" +EMAIL_HOST_PASSWORD = "real-email-password---imported-from-localsettings.py" + +EXPOFILESREMOTE = False # if True, then re-routes urls in expofiles to remote sever. 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 + +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 +# If pathlib is new to you, you will need to read https://realpython.com/python-pathlib/ + +# --------------------- MEDIA redirections BEGIN --------------------- +REPOS_ROOT_PATH = Path(__file__).parent.parent +LIBDIR = REPOS_ROOT_PATH / "lib" / PV + +TROGGLE_PATH = Path(__file__).parent +TEMPLATE_PATH = TROGGLE_PATH / "templates" +MEDIA_ROOT = TROGGLE_PATH / "media" +JSLIB_ROOT = TROGGLE_PATH / "media" / "jslib" # used for CaveViewer JS utility + +EXPOFILES = REPOS_ROOT_PATH / "expofiles" + +SCANS_ROOT = EXPOFILES / "surveyscans" +PHOTOS_ROOT = EXPOFILES / "photos" +PHOTOS_YEAR = "2024" +# NOTABLECAVESHREFS = ["290", "291", "264", "258", "204", "359"] # moved to settings.py + + +PYTHON_PATH = REPOS_ROOT_PATH / "troggle" +LOGFILE = PYTHON_PATH / "troggle.log" +SQLITEDB = PYTHON_PATH / "troggle.sqlite" +KMZ_ICONS_PATH = PYTHON_PATH / "kmz_icons" + +# 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). +MEDIA_URL = "/site-media/" + +DIR_ROOT = Path("") # this should end in / if a value is given +URL_ROOT = "/" +# URL_ROOT = 'http://localhost:'+ SERVERPORT +'/' + +# Note that these constants are not actually used in urls.py, they should be.. +# and they all need to end with / so using 'Path' doesn't work.. +MEDIA_URL = Path(URL_ROOT, "/site_media/") +PHOTOS_URL = Path(URL_ROOT, "/photos/") + + +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 + +# STATIC_ROOT removed after merging content into MEDIA_ROOT. See urls.py & core/views/surveys.py +# --------------------- MEDIA redirections END --------------------- + +PUBLIC_SITE = True +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 +DEVSERVER = True # running on WSL we are always a dev machine + +DBSQLITE = { + "default": { + "ENGINE": "django.db.backends.sqlite3", # 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. + "NAME": str(SQLITEDB), + # 'NAME' : ':memory:', + "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. + } +} +DBMARIADB = { + "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. + } +} + +# default database for me is squlite +DBSWITCH = "sqlite" + +if DBSWITCH == "sqlite": + DATABASES = DBSQLITE +if DBSWITCH == "mariadb": + DATABASES = DBMARIADB + + + +TEMPLATES = [ + { + "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 + "django.contrib.auth.context_processors.auth", # knowledge of logged-on user & permissions + "core.context.troggle_context", # in core/troggle.py - only used in expedition.html + "django.template.context_processors.debug", + "django.template.context_processors.i18n", + "django.template.context_processors.media", # includes a variable MEDIA_URL + "django.template.context_processors.static", # includes a variable STATIC_URL used by admin pages + "django.template.context_processors.tz", + "django.template.context_processors.request", # must be enabled in DjangoTemplates (TEMPLATES) in order to use the admin navigation sidebar. + "django.contrib.messages.context_processors.messages", + ], + "loaders": [ + "django.template.loaders.filesystem.Loader", # default lcation is troggle/templates/ + "django.template.loaders.app_directories.Loader", # needed for admin 'app' + ], + }, + }, +] + +EXPOUSER = "expo" +EXPOUSER_EMAIL = "philip.sargent@gmail.com" +EXPOADMINUSER = "expoadmin" +EXPOADMINUSER_EMAIL = "philip.sargent@gmail.com" + +EMAIL_HOST = "smtp-auth.mythic-beasts.com" +EMAIL_HOST_USER = "django-test@klebos.net" # Philip Sargent really +EMAIL_PORT = 587 +EMAIL_USE_TLS = True +DEFAULT_FROM_EMAIL = "django-test@klebos.net" + +SURVEX_DATA = REPOS_ROOT_PATH / "loser" +DRAWINGS_DATA = REPOS_ROOT_PATH / "drawings" +EXPOWEB = REPOS_ROOT_PATH / "expoweb" +CAVEDESCRIPTIONS = EXPOWEB / "cave_data" +ENTRANCEDESCRIPTIONS = EXPOWEB / "entrance_data" + +EXPOWEB_URL = "" +# SCANS_URL = '/survey_scans/' # defunct, removed. + +sys.path.append(str(REPOS_ROOT_PATH)) +sys.path.append(str(PYTHON_PATH)) +#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) + "/" + |