# 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 . 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, }, 'conservancy.supporters': { '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', 'captcha', ] 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.context_processors.host_url', 'conservancy.context_processors.sitefundraiser', ] } } ] # Internationalization TIME_ZONE = 'America/New_York' LANGUAGE_CODE = 'en-us' USE_TZ = False STORAGES = { 'default': { 'BACKEND': 'django.core.files.storage.FileSystemStorage', }, 'staticfiles': { 'BACKEND': 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage', }, } STATIC_URL = '/static/' STATIC_ROOT = BASE_DIR.parent / 'collected_static' STATICFILES_DIRS = [ BASE_DIR / 'static', ] MEDIA_ROOT = BASE_DIR.parent / 'media' 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', } SITE_FUNDGOAL = 'cy2024-end-year-match'