forked from expo/troggle
New troggle config for Barbie Xubuntu pink
This commit is contained in:
parent
5149cf1ece
commit
f3002a694d
@ -62,9 +62,12 @@ CREATE DATABASE troggle;
|
|||||||
GRANT ALL PRIVILEGES ON troggle.* TO 'expo'@'localhost' IDENTIFIED BY 'somepassword';
|
GRANT ALL PRIVILEGES ON troggle.* TO 'expo'@'localhost' IDENTIFIED BY 'somepassword';
|
||||||
|
|
||||||
install django:
|
install django:
|
||||||
sudo apt install python-django python-django-registration python-django-imagekit python-django-tinymce fonts-freefont-ttf libapache2-mod-wsgi
|
NO!
|
||||||
|
This was:sudo apt install python-django python-django-registration python-django-imagekit python-django-tinymce fonts-freefont-ttf libapache2-mod-wsgi
|
||||||
|
Should be ?
|
||||||
|
sudo apt install python-django python-django-tinymce fonts-freefont-ttf libapache2-mod-wsgi
|
||||||
|
|
||||||
python-django-imagekit comes from https://salsa.debian.org/python-team/modules/python-django-imagekit
|
CHeck if this is correct:
|
||||||
python-django-tinymce comes from https://salsa.debian.org/python-team/modules/python-django-tinymce
|
python-django-tinymce comes from https://salsa.debian.org/python-team/modules/python-django-tinymce
|
||||||
(both modified for stretch/python2). packages under /home/wookey/packages/
|
(both modified for stretch/python2). packages under /home/wookey/packages/
|
||||||
|
|
||||||
|
196
_deploy/xubuntu/localsettingsXubuntu.py
Normal file
196
_deploy/xubuntu/localsettingsXubuntu.py
Normal file
@ -0,0 +1,196 @@
|
|||||||
|
import sys
|
||||||
|
import os
|
||||||
|
import urllib.parse
|
||||||
|
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 = "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"
|
||||||
|
|
||||||
|
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
|
||||||
|
#LIBDIR = REPOS_ROOT_PATH / 'lib' / 'python3.9' # should be finding this automatically: python --version etc.
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
#FILES = Path('/mnt/d/expofiles/')
|
||||||
|
EXPOFILES = Path('/media/philip/sd-huge1/cucc-expo/expofiles/')
|
||||||
|
SCANS_ROOT = EXPOFILES / 'surveyscans'
|
||||||
|
PHOTOS_ROOT = EXPOFILES / 'photos'
|
||||||
|
PHOTOS_YEAR = "2022"
|
||||||
|
|
||||||
|
# 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 = ''#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..
|
||||||
|
MEDIA_URL = urllib.parse.urljoin(URL_ROOT , '/site_media/')
|
||||||
|
SCANS_URL = urllib.parse.urljoin(URL_ROOT , '/survey_scans/')
|
||||||
|
PHOTOS_URL = urllib.parse.urljoin(URL_ROOT , '/photos/')
|
||||||
|
SVX_URL = urllib.parse.urljoin(URL_ROOT , '/survex/')
|
||||||
|
|
||||||
|
|
||||||
|
STATIC_URL = urllib.parse.urljoin(URL_ROOT , '/static/') # used by Django admin pages. Do not delete.
|
||||||
|
JSLIB_URL = urllib.parse.urljoin(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
|
||||||
|
|
||||||
|
# executables:
|
||||||
|
CAVERN = 'cavern' # for parsing .svx files and producing .3d files
|
||||||
|
SURVEXPORT = 'survexport' # for parsing .3d files and producing .pos files
|
||||||
|
|
||||||
|
DBSQLITE = {
|
||||||
|
'default': {
|
||||||
|
'ENGINE': 'django.db.backends.sqlite3', # 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
|
||||||
|
'NAME' : 'troggle.sqlite',
|
||||||
|
# '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
|
||||||
|
|
||||||
|
NOTABLECAVESHREFS = [ "290", "291", "359", "264", "258", "204", "76", "107"]
|
||||||
|
|
||||||
|
PYTHON_PATH = REPOS_ROOT_PATH / 'troggle'
|
||||||
|
sys.path.append(os.fspath(REPOS_ROOT_PATH))
|
||||||
|
sys.path.append(os.fspath(PYTHON_PATH))
|
||||||
|
|
||||||
|
LOGFILE = PYTHON_PATH / 'troggle.log'
|
||||||
|
PYTHON_PATH = os.fspath(PYTHON_PATH)
|
||||||
|
|
||||||
|
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'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
EXPOUSERPASS = "nnn:gggggg - real-expo-password---imported-from-localsettings.py"
|
||||||
|
EMAIL_HOST_PASSWORD = "real-email-password---imported-from-localsettings.py"
|
||||||
|
|
||||||
|
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"
|
||||||
|
#SURVEYS = REPOS_ROOT_PATH
|
||||||
|
CAVEDESCRIPTIONS = EXPOWEB / "cave_data"
|
||||||
|
ENTRANCEDESCRIPTIONS = EXPOWEB / "entrance_data"
|
||||||
|
EXPOWEB_URL = ''
|
||||||
|
# SCANS_URL = '/survey_scans/' # defunct, removed.
|
||||||
|
|
||||||
|
# Sanitise these to be strings as all other code is expecting strings
|
||||||
|
# and we have not made the change to pathlib Path type in the other localsettings-* variants yet.
|
||||||
|
CAVEDESCRIPTIONS = os.fspath(CAVEDESCRIPTIONS)
|
||||||
|
ENTRANCEDESCRIPTIONS = os.fspath(ENTRANCEDESCRIPTIONS)
|
||||||
|
LOGFILE = os.fspath(LOGFILE)
|
||||||
|
#SURVEYS = os.fspath(SURVEYS)
|
||||||
|
EXPOWEB = os.fspath(EXPOWEB)
|
||||||
|
DRAWINGS_DATA = os.fspath(DRAWINGS_DATA)
|
||||||
|
SURVEX_DATA = os.fspath(SURVEX_DATA)
|
||||||
|
REPOS_ROOT_PATH = os.fspath(REPOS_ROOT_PATH)
|
||||||
|
TEMPLATE_PATH = os.fspath(TROGGLE_PATH)
|
||||||
|
MEDIA_ROOT = os.fspath(MEDIA_ROOT)
|
||||||
|
JSLIB_ROOT = os.fspath(JSLIB_ROOT)
|
||||||
|
SCANS_ROOT = os.fspath(SCANS_ROOT)
|
196
_deploy/xubuntu/localsettingsXubuntu.py.bak
Normal file
196
_deploy/xubuntu/localsettingsXubuntu.py.bak
Normal file
@ -0,0 +1,196 @@
|
|||||||
|
import sys
|
||||||
|
import os
|
||||||
|
import urllib.parse
|
||||||
|
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 = "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"
|
||||||
|
|
||||||
|
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
|
||||||
|
#LIBDIR = REPOS_ROOT_PATH / 'lib' / 'python3.9' # should be finding this automatically: python --version etc.
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
#FILES = Path('/mnt/d/expofiles/')
|
||||||
|
EXPOFILES = Path('/media/philip/sd-huge1/cucc-expo/expofiles/')
|
||||||
|
SCANS_ROOT = EXPOFILES / 'surveyscans'
|
||||||
|
PHOTOS_ROOT = EXPOFILES / 'photos'
|
||||||
|
PHOTOS_YEAR = "2022"
|
||||||
|
|
||||||
|
# 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 = ''#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..
|
||||||
|
MEDIA_URL = urllib.parse.urljoin(URL_ROOT , '/site_media/')
|
||||||
|
SCANS_URL = urllib.parse.urljoin(URL_ROOT , '/survey_scans/')
|
||||||
|
PHOTOS_URL = urllib.parse.urljoin(URL_ROOT , '/photos/')
|
||||||
|
SVX_URL = urllib.parse.urljoin(URL_ROOT , '/survex/')
|
||||||
|
|
||||||
|
|
||||||
|
STATIC_URL = urllib.parse.urljoin(URL_ROOT , '/static/') # used by Django admin pages. Do not delete.
|
||||||
|
JSLIB_URL = urllib.parse.urljoin(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
|
||||||
|
|
||||||
|
# executables:
|
||||||
|
CAVERN = 'cavern' # for parsing .svx files and producing .3d files
|
||||||
|
SURVEXPORT = 'survexport' # for parsing .3d files and producing .pos files
|
||||||
|
|
||||||
|
DBSQLITE = {
|
||||||
|
'default': {
|
||||||
|
'ENGINE': 'django.db.backends.sqlite3', # 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
|
||||||
|
'NAME' : 'troggle.sqlite',
|
||||||
|
# '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
|
||||||
|
|
||||||
|
NOTABLECAVESHREFS = [ "290", "291", "359", "264", "258", "204", "76", "107"]
|
||||||
|
|
||||||
|
PYTHON_PATH = REPOS_ROOT_PATH / 'troggle'
|
||||||
|
sys.path.append(os.fspath(REPOS_ROOT_PATH))
|
||||||
|
sys.path.append(os.fspath(PYTHON_PATH))
|
||||||
|
|
||||||
|
LOGFILE = PYTHON_PATH / 'troggle.log'
|
||||||
|
PYTHON_PATH = os.fspath(PYTHON_PATH)
|
||||||
|
|
||||||
|
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'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
EXPOUSERPASS = "nnn:gggggg - real-expo-password---imported-from-localsettings.py"
|
||||||
|
EMAIL_HOST_PASSWORD = "real-email-password---imported-from-localsettings.py"
|
||||||
|
|
||||||
|
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"
|
||||||
|
#SURVEYS = REPOS_ROOT_PATH
|
||||||
|
CAVEDESCRIPTIONS = EXPOWEB / "cave_data"
|
||||||
|
ENTRANCEDESCRIPTIONS = EXPOWEB / "entrance_data"
|
||||||
|
EXPOWEB_URL = ''
|
||||||
|
# SCANS_URL = '/survey_scans/' # defunct, removed.
|
||||||
|
|
||||||
|
# Sanitise these to be strings as all other code is expecting strings
|
||||||
|
# and we have not made the change to pathlib Path type in the other localsettings-* variants yet.
|
||||||
|
CAVEDESCRIPTIONS = os.fspath(CAVEDESCRIPTIONS)
|
||||||
|
ENTRANCEDESCRIPTIONS = os.fspath(ENTRANCEDESCRIPTIONS)
|
||||||
|
LOGFILE = os.fspath(LOGFILE)
|
||||||
|
#SURVEYS = os.fspath(SURVEYS)
|
||||||
|
EXPOWEB = os.fspath(EXPOWEB)
|
||||||
|
DRAWINGS_DATA = os.fspath(DRAWINGS_DATA)
|
||||||
|
SURVEX_DATA = os.fspath(SURVEX_DATA)
|
||||||
|
REPOS_ROOT_PATH = os.fspath(REPOS_ROOT_PATH)
|
||||||
|
TEMPLATE_PATH = os.fspath(TROGGLE_PATH)
|
||||||
|
MEDIA_ROOT = os.fspath(MEDIA_ROOT)
|
||||||
|
JSLIB_ROOT = os.fspath(JSLIB_ROOT)
|
||||||
|
SCANS_ROOT = os.fspath(SCANS_ROOT)
|
@ -1,6 +1,6 @@
|
|||||||
/home/philip/p10d3/lib/python3.10/site-packages/django/utils/version.py:6: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
|
/home/philip/.local/lib/python3.10/site-packages/django/utils/version.py:6: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
|
||||||
from distutils.version import LooseVersion
|
from distutils.version import LooseVersion
|
||||||
/home/philip/p10d3/lib/python3.10/site-packages/django/utils/asyncio.py:19: DeprecationWarning: There is no current event loop
|
/home/philip/.local/lib/python3.10/site-packages/django/utils/asyncio.py:19: DeprecationWarning: There is no current event loop
|
||||||
event_loop = asyncio.get_event_loop()
|
event_loop = asyncio.get_event_loop()
|
||||||
/home/philip/p10d3/lib/python3.10/site-packages/django/utils/asyncio.py:19: DeprecationWarning: There is no current event loop
|
/home/philip/.local/lib/python3.10/site-packages/django/utils/asyncio.py:19: DeprecationWarning: There is no current event loop
|
||||||
event_loop = asyncio.get_event_loop()
|
event_loop = asyncio.get_event_loop()
|
||||||
|
@ -9,20 +9,20 @@ python --version : ensure python is an alias for python3 not python2.7
|
|||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt dist-upgrade
|
sudo apt dist-upgrade
|
||||||
sudo apt install sqlite3
|
sudo apt install sqlite3
|
||||||
sudo apt install python3-pip # this installs a shed-load of other stuff: binutils etc.
|
sudo apt install python3-pip
|
||||||
|
|
||||||
sudo apt install survex-aven
|
# this installs a shed-load of other stuff: binutils etc.sudo apt install survex-aven
|
||||||
sudo apt install openssh-client tunnelx therion
|
sudo apt install openssh-client tunnelx therion
|
||||||
sudo apt install git sftp
|
sudo apt install git sftp
|
||||||
# On a clean debian 11 (bullseye) installation with Xfce & ssh,
|
# On a clean debian 11 (bullseye) installation with Xfce & ssh,
|
||||||
# as debian does not install everything that ubuntu does, you need:
|
# as debian does not install everything that ubuntu does, you need:
|
||||||
sudo usermod -a -G sudo expo # to put expo in sudoers group, re-login required
|
sudo usermod -a -G sudo expo # to put expo in sudoers group, re-login required
|
||||||
sudo apt install python3.10
|
# default since 22.04 # sudo apt install python3.10
|
||||||
sudo apt install python3.10-venv
|
sudo apt install python3.10-venv
|
||||||
sudo apt install python3.10-dev
|
sudo apt install python3.10-dev
|
||||||
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1
|
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1
|
||||||
|
|
||||||
sudo apt install mariadb-server
|
sudo apt install mariadb-server -y
|
||||||
sudo apt install libmariadb-dev
|
sudo apt install libmariadb-dev
|
||||||
|
|
||||||
sudo python -m pip install --upgrade pip
|
sudo python -m pip install --upgrade pip
|
||||||
|
46
pre-push-barbie.sh
Executable file
46
pre-push-barbie.sh
Executable file
@ -0,0 +1,46 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# create and sanitise files for pushing to repo, for Babie laptop
|
||||||
|
|
||||||
|
echo deprecations.
|
||||||
|
python -Wall manage.py check -v 3 2>deprecations.txt >/dev/null
|
||||||
|
echo diffsettings.
|
||||||
|
rm diffsettings.txt
|
||||||
|
if test -f "diffsettings.txt"; then
|
||||||
|
echo "diffsettings.txt not deleted. You have a serious permissions problem. Aborting.."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
python manage.py diffsettings | grep "###" > diffsettings.txt
|
||||||
|
echo pip freeze.
|
||||||
|
pip freeze > requirements.txt
|
||||||
|
echo inspectdb.
|
||||||
|
# this next line requires database setting to be troggle.sqlite:
|
||||||
|
python manage.py inspectdb > troggle-inspectdb.py
|
||||||
|
#egrep -in "unable|error" troggle-inspectdb.py
|
||||||
|
echo remove passwords.
|
||||||
|
cp localsettings.py localsettingsXubuntu.py
|
||||||
|
sed -i '/EXPOUSERPASS/ s/^.*$/EXPOUSERPASS = "nnn:gggggg - real-expo-password---imported-from-localsettings.py"/' diffsettings.txt
|
||||||
|
sed -i '/EXPOUSERPASS/ s/^.*$/EXPOUSERPASS = "nnn:gggggg - real-expo-password---imported-from-localsettings.py"/' localsettingsXubuntu.py
|
||||||
|
echo " reset: EXPOUSERPASS = \"nnn:gggggg\" - real-expo-password---imported-from-localsettings.py"
|
||||||
|
|
||||||
|
sed -i '/EXPOADMINUSERPASS/ s/^.*$/EXPOADMINUSERPASS = "gggggg:nnn - real-expo-password---imported-from-localsettings.py"/' diffsettings.txt
|
||||||
|
sed -i '/EXPOADMINUSERPASS/ s/^.*$/EXPOADMINUSERPASS = "gggggg:nnn - real-expo-password---imported-from-localsettings.py"/' localsettingsXubuntu.py
|
||||||
|
echo " reset: EXPOUSERPASS = \"gggggg:nnn\" - real-expo-password---imported-from-localsettings.py"
|
||||||
|
|
||||||
|
sed -i '/EMAIL_HOST_PASSWORD/ s/^.*$/EMAIL_HOST_PASSWORD = "real-email-password---imported-from-localsettings.py"/' diffsettings.txt
|
||||||
|
sed -i '/EMAIL_HOST_PASSWORD/ s/^.*$/EMAIL_HOST_PASSWORD = "real-email-password---imported-from-localsettings.py"/' localsettingsXubuntu.py
|
||||||
|
echo " reset: EMAIL_HOST_PASSWORD = \"real-email-password--imported-from-localsettings.py\""
|
||||||
|
|
||||||
|
sed -i '/SECRET_KEY/ s/^.*$/SECRET_KEY = "real-SECRET_KEY--imported-from-localsettings.py"/' diffsettings.txt
|
||||||
|
sed -i '/SECRET_KEY/ s/^.*$/SECRET_KEY = "real-SECRET_KEY--imported-from-localsettings.py"/' localsettingsXubuntu.py
|
||||||
|
echo " reset: SECRET_KEY = \"real-SECRET_KEY--imported-from-localsettings.py\""
|
||||||
|
|
||||||
|
mv _deploy/xubuntu/localsettingsXubuntu.py _deploy/xubuntu/localsettingsXubuntu.py.bak
|
||||||
|
mv localsettingsXubuntu.py _deploy/xubuntu
|
||||||
|
#
|
||||||
|
# Do these before final testing, *not* just before pushing:
|
||||||
|
# in ./pre-run.sh
|
||||||
|
# python reset-django.py
|
||||||
|
# python manage.py makemigrations
|
||||||
|
# python manage.py test
|
||||||
|
# python manage.py inspectdb > troggle-inspectdb.py
|
||||||
|
# egrep -i "unable|error" troggle-inspectdb.py
|
@ -1,16 +1,84 @@
|
|||||||
|
apturl==0.5.2
|
||||||
asgiref==3.5.0
|
asgiref==3.5.0
|
||||||
|
blinker==1.4
|
||||||
|
catfish==4.16.3
|
||||||
|
certifi==2020.6.20
|
||||||
|
cffi==1.15.0
|
||||||
|
chardet==4.0.0
|
||||||
|
click==8.0.3
|
||||||
|
colorama==0.4.4
|
||||||
|
command-not-found==0.3
|
||||||
confusable-homoglyphs==3.2.0
|
confusable-homoglyphs==3.2.0
|
||||||
coverage==6.4
|
coverage==6.4
|
||||||
|
cryptography==3.4.8
|
||||||
|
cupshelpers==1.0
|
||||||
|
dbus-python==1.2.18
|
||||||
|
defer==1.0.6
|
||||||
|
distro==1.7.0
|
||||||
|
distro-info===1.1build1
|
||||||
Django==3.2
|
Django==3.2
|
||||||
docutils==0.18
|
docutils==0.18
|
||||||
|
gpg===1.16.0-unknown
|
||||||
gunicorn==20.1.0
|
gunicorn==20.1.0
|
||||||
|
httplib2==0.20.2
|
||||||
|
idna==3.3
|
||||||
|
importlib-metadata==4.6.4
|
||||||
|
jeepney==0.7.1
|
||||||
|
keyring==23.5.0
|
||||||
|
language-selector==0.1
|
||||||
|
launchpadlib==1.10.16
|
||||||
|
lazr.restfulclient==0.14.4
|
||||||
|
lazr.uri==1.0.6
|
||||||
|
lightdm-gtk-greeter-settings==1.2.2
|
||||||
|
macaroonbakery==1.3.1
|
||||||
|
Mako==1.1.3
|
||||||
mariadb==1.0.11
|
mariadb==1.0.11
|
||||||
|
MarkupSafe==2.0.1
|
||||||
|
menulibre==2.2.2
|
||||||
|
mercurial==6.1.1
|
||||||
|
more-itertools==8.10.0
|
||||||
|
mugshot==0.4.3
|
||||||
mysql-connector-python==8.0.29
|
mysql-connector-python==8.0.29
|
||||||
mysqlclient==2.1.0
|
mysqlclient==2.1.0
|
||||||
|
netifaces==0.11.0
|
||||||
|
oauthlib==3.2.0
|
||||||
|
olefile==0.46
|
||||||
|
onboard==1.4.1
|
||||||
|
pexpect==4.8.0
|
||||||
Pillow==9.1.0
|
Pillow==9.1.0
|
||||||
|
ply==3.11
|
||||||
protobuf==4.21.2
|
protobuf==4.21.2
|
||||||
|
psutil==5.9.0
|
||||||
|
ptyprocess==0.7.0
|
||||||
|
pycairo==1.20.1
|
||||||
|
pycparser==2.21
|
||||||
|
pycups==2.0.1
|
||||||
|
PyGObject==3.42.1
|
||||||
|
PyJWT==2.4.0
|
||||||
|
pymacaroons==0.13.0
|
||||||
|
PyNaCl==1.5.0
|
||||||
|
pyparsing==2.4.7
|
||||||
|
pyRFC3339==1.1
|
||||||
|
python-apt==2.3.0+ubuntu2.1
|
||||||
|
python-dateutil==2.8.1
|
||||||
|
python-debian===0.1.43ubuntu1
|
||||||
pytz==2022.1
|
pytz==2022.1
|
||||||
|
PyYAML==5.4.1
|
||||||
reportlab==3.6.0
|
reportlab==3.6.0
|
||||||
|
requests==2.25.1
|
||||||
|
SecretStorage==3.3.1
|
||||||
|
sgt-launcher==0.2.7
|
||||||
|
six==1.16.0
|
||||||
sqlparse==0.4.0
|
sqlparse==0.4.0
|
||||||
|
systemd-python==234
|
||||||
typing_extensions==4.2.0
|
typing_extensions==4.2.0
|
||||||
|
ubuntu-advantage-tools==27.9
|
||||||
|
ubuntu-drivers-common==0.0.0
|
||||||
|
ufw==0.36.1
|
||||||
|
unattended-upgrades==0.1
|
||||||
Unidecode==1.3.0
|
Unidecode==1.3.0
|
||||||
|
urllib3==1.26.5
|
||||||
|
wadllib==1.3.6
|
||||||
|
xcffib==0.11.1
|
||||||
|
xkit==0.0.0
|
||||||
|
zipp==1.0.0
|
||||||
|
Loading…
Reference in New Issue
Block a user