website/conservancy/settings/base.py
Ben Sturmfels 789d0c8c84
contacts: Remove ContactEntry and add Unsubscription
This change removes the unused `ContactEntry` model and the `subscribe` view and
replaces it with an `Unsubscription` model and an `unsubscribe` view. It works
similarly, but is intended to be used with the `list-unsubscribe` and
`list-unsubscribe-post` headers.
2024-04-09 22:53:24 +10:00

144 lines
4.2 KiB
Python

# Copyright 2005-2008, James Garrison
# Copyright 2010, Bradley M. Kuhn
# This software's license gives you freedom; you can copy, convey,
# propagate, redistribute, modify and/or redistribute modified versions of
# this program under the terms of the GNU Affero General Public License
# (AGPL) as published by the Free Software Foundation (FSF), either
# version 3 of the License, or (at your option) any later version of the
# AGPL published by the FSF.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
# General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program in a file in the toplevel directory called
# "AGPLv3". If not, see <http://www.gnu.org/licenses/>.
from pathlib import Path
SITE_ID = 2
ROOT_URLCONF = 'conservancy.urls'
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'default': {
'format': '%(asctime)s %(levelname)s %(name)s: %(message)s',
'datefmt': '%Y-%m-%d %H:%M:%S',
},
},
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
},
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'default',
},
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
# Avoid email notification on DisallowedHost error.
'django.security.DisallowedHost': {
'handlers': ['console'],
'propagate': False,
},
'conservancy.contacts': {
'handlers': ['console'],
'level': 'DEBUG',
'propagate': False,
}
},
'root': {
'handlers': ['console'],
'level': 'INFO',
},
}
INSTALLED_APPS = [
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'django.contrib.messages',
'django.contrib.humanize',
'django.contrib.staticfiles',
'conservancy.blog',
'conservancy.contacts',
'conservancy.contractpatch',
'conservancy.events',
'conservancy.news',
'conservancy.staff',
'conservancy.worldmap',
'conservancy.supporters',
'conservancy.fundgoal',
'conservancy.assignment',
'conservancy.fossy',
'conservancy.podjango',
'conservancy.usethesource.apps.UseTheSourceConfig',
]
DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'
BASE_DIR = Path(__file__).resolve().parent.parent
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
BASE_DIR / 'templates',
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'conservancy.local_context_processors.host_url',
'conservancy.local_context_processors.sitefundraiser',
]
}
}
]
# Internationalization
TIME_ZONE = 'America/New_York'
LANGUAGE_CODE = 'en-us'
USE_TZ = False
STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR.parent / 'collected_static'
STATICFILES_DIRS = [
BASE_DIR / 'static',
]
MEDIA_URL = '/media/'
MIDDLEWARE = [
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
]
USETHESOURCE = {
'SENDER': 'compliance@sfconservancy.org',
'LIST_RECIPIENT': 'ccs-review@lists.sfconservancy.org',
}