c37ed61036
This should eradicate wagtail from the project. While wagtail may be nice, our goals are to keep all things public, and having things locked behidn a DB is congruent to that plan. All in all, the django project only leveraged a single wagtail feature, "richtext" which has been hacikly removed and will result in bad display of however it comes up. But this is on homepage.html, which will be removed and covered up with a static website, which means we should be able remove homepage entirely from this project. This reduction hopefully makes the monolith easier to understand, maintain, and wield.
279 lines
8.1 KiB
Python
279 lines
8.1 KiB
Python
import os
|
|
from django.utils.crypto import get_random_string
|
|
|
|
|
|
PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))
|
|
PACKAGE_ROOT = os.path.abspath(os.path.dirname(__file__))
|
|
BASE_DIR = PACKAGE_ROOT
|
|
|
|
DEBUG = True # bool(int(os.environ.get("DEBUG", "1")))
|
|
|
|
DATABASES = {
|
|
"default": {
|
|
"ENGINE": "django.db.backends.sqlite3",
|
|
"NAME": os.path.join(PROJECT_ROOT, "dev.db"),
|
|
}
|
|
}
|
|
|
|
CACHES = {
|
|
'default': {
|
|
'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
|
|
}
|
|
}
|
|
|
|
|
|
ALLOWED_HOSTS = ['lca2018.org']
|
|
|
|
TIME_ZONE = "Australia/Sydney"
|
|
DATE_FORMAT = "j F Y"
|
|
LANGUAGE_CODE = "en-au"
|
|
|
|
SITE_ID = int(os.environ.get("SITE_ID", 1))
|
|
USE_I18N = True
|
|
USE_L10N = True
|
|
USE_TZ = True
|
|
|
|
MEDIA_ROOT = os.path.join(PACKAGE_ROOT, "site_media", "media")
|
|
MEDIA_URL = "/site_media/media/"
|
|
|
|
STATIC_ROOT = os.path.join(PROJECT_ROOT, "static", "distx")
|
|
STATIC_URL = "/static/dist/"
|
|
|
|
STATICFILES_DIRS = [
|
|
os.path.join(PROJECT_ROOT, "static", "dist"),
|
|
]
|
|
|
|
STATICFILES_FINDERS = [
|
|
"django.contrib.staticfiles.finders.FileSystemFinder",
|
|
"django.contrib.staticfiles.finders.AppDirectoriesFinder",
|
|
]
|
|
|
|
SECRET_KEY = os.environ.get("DJANGO_SECRET_KEY", get_random_string(length=64))
|
|
|
|
TEMPLATES = [
|
|
{
|
|
"BACKEND": "django.template.backends.django.DjangoTemplates",
|
|
"DIRS": [
|
|
os.path.join(PACKAGE_ROOT, "templates"),
|
|
],
|
|
"APP_DIRS": True,
|
|
"OPTIONS": {
|
|
"debug": DEBUG,
|
|
"context_processors": [
|
|
"django.contrib.auth.context_processors.auth",
|
|
"django.core.context_processors.debug",
|
|
"django.core.context_processors.i18n",
|
|
"django.core.context_processors.media",
|
|
"django.core.context_processors.static",
|
|
"django.core.context_processors.tz",
|
|
"django.core.context_processors.request",
|
|
"django.contrib.messages.context_processors.messages",
|
|
"pinax_theme_bootstrap.context_processors.theme",
|
|
"symposion.reviews.context_processors.reviews",
|
|
],
|
|
},
|
|
},
|
|
]
|
|
|
|
MIDDLEWARE_CLASSES = [
|
|
"django.contrib.sessions.middleware.SessionMiddleware",
|
|
"django.middleware.common.CommonMiddleware",
|
|
"django.middleware.csrf.CsrfViewMiddleware",
|
|
"django.contrib.auth.middleware.AuthenticationMiddleware",
|
|
"django.contrib.auth.middleware.SessionAuthenticationMiddleware",
|
|
"django.contrib.messages.middleware.MessageMiddleware",
|
|
"debug_toolbar.middleware.DebugToolbarMiddleware",
|
|
"reversion.middleware.RevisionMiddleware",
|
|
"django.middleware.clickjacking.XFrameOptionsMiddleware",
|
|
'pinaxcon.monkey_patch.MonkeyPatchMiddleware',
|
|
]
|
|
|
|
ROOT_URLCONF = "pinaxcon.urls"
|
|
|
|
# Python dotted path to the WSGI application used by Django's runserver.
|
|
WSGI_APPLICATION = "pinaxcon.wsgi.application"
|
|
|
|
INSTALLED_APPS = [
|
|
"django.contrib.admin",
|
|
"django.contrib.auth",
|
|
"django.contrib.contenttypes",
|
|
"django.contrib.messages",
|
|
"django.contrib.sessions",
|
|
"django.contrib.sites",
|
|
"django.contrib.staticfiles",
|
|
"django.contrib.humanize",
|
|
"debug_toolbar",
|
|
|
|
# theme
|
|
"bootstrapform",
|
|
"pinax_theme_bootstrap",
|
|
|
|
# external
|
|
"easy_thumbnails",
|
|
"taggit",
|
|
"reversion",
|
|
"metron",
|
|
"sitetree",
|
|
"pinax.eventlog",
|
|
|
|
# symposion
|
|
"symposion",
|
|
"symposion.conference",
|
|
"symposion.proposals",
|
|
"symposion.reviews",
|
|
"symposion.schedule",
|
|
"symposion.speakers",
|
|
"symposion.sponsorship",
|
|
"symposion.teams",
|
|
|
|
# Registrasion
|
|
"registrasion",
|
|
|
|
# Registrasion-stipe
|
|
"pinax.stripe",
|
|
"django_countries",
|
|
"registripe",
|
|
|
|
# admin - required by registrasion ??
|
|
"nested_admin",
|
|
|
|
# project
|
|
"pinaxcon",
|
|
"pinaxcon.proposals",
|
|
"pinaxcon.registrasion",
|
|
"jquery",
|
|
"djangoformsetjs",
|
|
|
|
# testing
|
|
"django_nose",
|
|
]
|
|
|
|
DEBUG_TOOLBAR_PANELS = [
|
|
'debug_toolbar.panels.versions.VersionsPanel',
|
|
'debug_toolbar.panels.timer.TimerPanel',
|
|
'debug_toolbar.panels.settings.SettingsPanel',
|
|
'debug_toolbar.panels.headers.HeadersPanel',
|
|
'debug_toolbar.panels.request.RequestPanel',
|
|
'debug_toolbar.panels.sql.SQLPanel',
|
|
'debug_toolbar.panels.staticfiles.StaticFilesPanel',
|
|
'debug_toolbar.panels.templates.TemplatesPanel',
|
|
'debug_toolbar.panels.cache.CachePanel',
|
|
'debug_toolbar.panels.signals.SignalsPanel',
|
|
'debug_toolbar.panels.logging.LoggingPanel',
|
|
'debug_toolbar.panels.redirects.RedirectsPanel',
|
|
]
|
|
|
|
DEBUG_TOOLBAR_CONFIG = {
|
|
'INTERCEPT_REDIRECTS': False,
|
|
'SHOW_TOOLBAR_CALLBACK': lambda x: DEBUG,
|
|
}
|
|
|
|
LOGGING = {
|
|
'version': 1,
|
|
'disable_existing_loggers': False,
|
|
'formatters': {
|
|
'verbose': {
|
|
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
|
|
},
|
|
'simple': {
|
|
'format': '%(asctime)s %(levelname)s $(module)s %(message)s'
|
|
},
|
|
},
|
|
'filters': {
|
|
'require_debug_false': {
|
|
'()': 'django.utils.log.RequireDebugFalse'
|
|
}
|
|
},
|
|
'handlers': {
|
|
'console': {
|
|
'level': 'DEBUG',
|
|
'class': 'logging.StreamHandler',
|
|
'formatter': 'simple'
|
|
},
|
|
'mail_admins': {
|
|
'level': 'ERROR',
|
|
'filters': ['require_debug_false'],
|
|
'class': 'django.utils.log.AdminEmailHandler',
|
|
'include_html': True,
|
|
}
|
|
},
|
|
'loggers': {
|
|
'django.request': {
|
|
'handlers': ['mail_admins'],
|
|
'level': 'DEBUG',
|
|
'propagate': True,
|
|
},
|
|
'symposion.request': {
|
|
'handlers': ['mail_admins'],
|
|
'level': 'DEBUG',
|
|
'propagate': True,
|
|
},
|
|
},
|
|
'root': {
|
|
'handlers': ['console'],
|
|
'level': 'DEBUG'
|
|
},
|
|
}
|
|
FIXTURE_DIRS = [
|
|
os.path.join(PROJECT_ROOT, "fixtures"),
|
|
]
|
|
|
|
EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"
|
|
|
|
THEME_CONTACT_EMAIL = "team@lca2018.org"
|
|
|
|
AUTHENTICATION_BACKENDS = [
|
|
"symposion.teams.backends.TeamPermissionsBackend",
|
|
]
|
|
|
|
CONFERENCE_ID = 1
|
|
PROPOSAL_FORMS = {
|
|
"talk": "pinaxcon.proposals.forms.TalkProposalForm",
|
|
"tutorial": "pinaxcon.proposals.forms.TutorialProposalForm",
|
|
"miniconf": "pinaxcon.proposals.forms.MiniconfProposalForm",
|
|
"sysadmin-miniconf": "pinaxcon.proposals.forms.SysAdminProposalForm",
|
|
"openradio-miniconf": "pinaxcon.proposals.forms.RadioProposalForm",
|
|
"wootconf-miniconf": "pinaxcon.proposals.forms.WootconfProposalForm",
|
|
"writethedocs-miniconf": "pinaxcon.proposals.forms.WriteTheDocsProposalForm",
|
|
"security-miniconf": "pinaxcon.proposals.forms.SecurityProposalForm",
|
|
"kernel-miniconf": "pinaxcon.proposals.forms.KernelProposalForm",
|
|
"games-miniconf": "pinaxcon.proposals.forms.GamesProposalForm",
|
|
"testing-miniconf": "pinaxcon.proposals.forms.TestingProposalForm",
|
|
"knowledge-miniconf": "pinaxcon.proposals.forms.KnowledgeProposalForm",
|
|
"lawpolicy-miniconf": "pinaxcon.proposals.forms.LawProposalForm",
|
|
"openhardware-miniconf": "pinaxcon.proposals.forms.OpenHardwareProposalForm",
|
|
}
|
|
|
|
# PINAX_PAGES_HOOKSET = "pinaxcon.hooks.PinaxPagesHookSet"
|
|
# PINAX_BOXES_HOOKSET = "pinaxcon.hooks.PinaxBoxesHookSet"
|
|
|
|
# Registrasion bits:
|
|
ATTENDEE_PROFILE_MODEL = "pinaxcon.registrasion.models.AttendeeProfile"
|
|
ATTENDEE_PROFILE_FORM = "pinaxcon.registrasion.forms.ProfileForm"
|
|
INVOICE_CURRENCY = "AUD"
|
|
PINAX_STRIPE_PUBLIC_KEY = os.environ.get("STRIPE_PUBLIC_KEY", "your test public key")
|
|
PINAX_STRIPE_SECRET_KEY = os.environ.get("STRIPE_SECRET_KEY", "your test secret key")
|
|
PINAX_STRIPE_SEND_EMAIL_RECEIPTS = False
|
|
|
|
ATTENDEE_PROFILE_FORM = "pinaxcon.registrasion.forms.ProfileForm"
|
|
|
|
# CSRF custom error screen
|
|
CSRF_FAILURE_VIEW = "pinaxcon.csrf_view.csrf_failure"
|
|
|
|
# Use nose to run all tests
|
|
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
|
|
|
|
# Tell nose to measure coverage on the 'foo' and 'bar' apps
|
|
NOSE_ARGS = [
|
|
'--with-coverage',
|
|
'--cover-package=registrasion.controllers,registrasion.models',
|
|
]
|
|
|
|
# Production settings have their own file to override stuff here
|
|
try:
|
|
LOCAL_SETTINGS
|
|
except NameError:
|
|
try:
|
|
from local_settings import * # noqa: F401,F403
|
|
except ImportError:
|
|
pass
|