diff options
Diffstat (limited to 'settings.py')
-rw-r--r-- | settings.py | 210 |
1 files changed, 155 insertions, 55 deletions
diff --git a/settings.py b/settings.py index ea87c2cd..071735cf 100644 --- a/settings.py +++ b/settings.py @@ -1,21 +1,30 @@ import os -# Django settings for archweb project. - -## Import local settings -from local_settings import * +# Django settings for parabolaweb project. ## Set the debug values +DEBUG = False TEMPLATE_DEBUG = DEBUG +DEBUG_TOOLBAR = False + +## Notification admins +ADMINS = () # Set managers to admins MANAGERS = ADMINS +# Package out-of-date emails for orphans +NOTIFICATIONS = ['dev@lists.parabola.nu'] + # Full path to the data directory DEPLOY_PATH = os.path.dirname(os.path.realpath(__file__)) -# Local time zone for this installation. All choices can be found here: -# http://www.postgresql.org/docs/current/static/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE -TIME_ZONE = 'US/Eastern' +# If you set this to False, Django will not use timezone-aware datetimes. +USE_TZ = True + +# Local time zone for this installation. Choices can be found here: +# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name +# although not all choices may be available on all operating systems. +TIME_ZONE = 'UTC' # Language code for this installation. All choices can be found here: # http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes @@ -25,84 +34,79 @@ DEFAULT_CHARSET = 'utf-8' SITE_ID = 1 -# If you set this to False, Django will make some optimizations so as not -# to load the internationalization machinery. -USE_I18N = False - -# If you set this to False, Django will not format dates, numbers and -# calendars according to the current locale -USE_L10N = False - # Default date format in templates for 'date' filter DATE_FORMAT = 'Y-m-d' +DATETIME_FORMAT = 'Y-m-d H:i' -# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a -# trailing slash. -# Examples: "http://foo.com/media/", "/media/". -ADMIN_MEDIA_PREFIX = '/media/admin_media/' - -# login url +# Login URL configuration LOGIN_URL = '/login/' LOGIN_REDIRECT_URL = '/' -# List of callables that know how to import templates from various sources. -TEMPLATE_LOADERS = ( - 'django.template.loaders.filesystem.load_template_source', - 'django.template.loaders.eggs.load_template_source', - 'django.template.loaders.app_directories.load_template_source', -) +# Set django's User stuff to use our profile model +AUTH_PROFILE_MODULE = 'devel.UserProfile' # We add a processor to determine if the request is secure or not TEMPLATE_CONTEXT_PROCESSORS = ( 'django.contrib.auth.context_processors.auth', 'django.core.context_processors.debug', - 'django.core.context_processors.i18n', - 'django.core.context_processors.media', 'django.contrib.messages.context_processors.messages', 'main.context_processors.secure', + 'main.context_processors.branding', +) + +TEMPLATE_DIRS = ( + # Put strings here, like "/home/html/django_templates". + # Always use forward slashes, even on Windows. + '%s/templates' % DEPLOY_PATH, +) + +TEMPLATE_LOADERS = ( + 'django_jinja.loaders.FileSystemLoader', + 'django_jinja.loaders.AppLoader', ) -# This bug is a real bummer: -# http://code.djangoproject.com/ticket/14105 +# Send templates matching the following to the Jinja2 engine +DEFAULT_JINJA2_TEMPLATE_EXTENSION = '.jinja' + MIDDLEWARE_CLASSES = ( - 'main.middleware.UpdateCacheMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.http.ConditionalGetMiddleware', - 'django.middleware.doc.XViewMiddleware', - 'django.middleware.cache.FetchFromCacheMiddleware', ) +# Base of the URL hierarchy ROOT_URLCONF = 'urls' -TEMPLATE_DIRS = ( - # Put strings here, like "/home/html/django_templates". - # Always use forward slashes, even on Windows. - '%s/templates' % DEPLOY_PATH, -) +# URL to serve static files +STATIC_URL = '/static/' -TEMPLATE_LOADERS = ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.eggs.Loader', - 'django.template.loaders.app_directories.Loader', -) +# Location to collect static files +STATIC_ROOT = os.path.join(DEPLOY_PATH, 'collected_static') -# Enable caching templates in production environments -if not TEMPLATE_DEBUG: - TEMPLATE_LOADERS = ( - ('django.template.loaders.cached.Loader', TEMPLATE_LOADERS), - ) +# Look for more static files in these locations +STATICFILES_DIRS = ( + os.path.join(DEPLOY_PATH, 'sitestatic'), +) -# Set django's User stuff to use our profile model -# format is app.model -AUTH_PROFILE_MODULE = 'main.UserProfile' +# Static files backend that allows us to use far future Expires headers +STATICFILES_STORAGE = 'main.storage.MinifiedStaticFilesStorage' +# Configure where messages should reside MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage' +# Session configuration SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db' +SESSION_COOKIE_HTTPONLY = True + +# Clickjacking protection +X_FRAME_OPTIONS = 'DENY' + +# Use new test runner +TEST_RUNNER = 'django.test.runner.DiscoverRunner' INSTALLED_APPS = ( 'django.contrib.auth', @@ -112,15 +116,111 @@ INSTALLED_APPS = ( 'django.contrib.sites', 'django.contrib.sitemaps', 'django.contrib.admin', - 'django.contrib.markup', - 'main', # contains shared models and libs + 'django.contrib.staticfiles', + 'django_countries', + 'django_jinja', + + 'main', 'mirrors', 'news', 'packages', 'todolists', 'devel', 'public', - 'south', # database migration support + 'releng', + 'visualize', + 'retro', ) +# Logging configuration for not getting overspammed +LOGGING = { + 'version': 1, + 'filters': { + 'ratelimit': { + '()': 'main.log.RateLimitFilter', + } + }, + 'handlers': { + 'mail_admins': { + 'level': 'ERROR', + 'filters': ['ratelimit'], + 'class': 'django.utils.log.AdminEmailHandler', + } + }, + 'loggers': { + 'django.request': { + 'handlers': ['mail_admins'], + 'level': 'ERROR', + 'propagate': True, + } + }, +} + +## Server used for linking to PGP keysearch results +PGP_SERVER = 'pgp.mit.edu' +PGP_SERVER_SECURE = True + +# URL to fetch a current list of available ISOs +ISO_LIST_URL = 'https://repo.parabola.nu/iso/' + +# URL to the PXE netboot instructions +PXEBOOT_URL = 'https://repo.parabola.nu/pxeboot/' + +# URL for SVN access for fetching commit messages (note absence of packages or +# community bit on the end, repo.svn_root is appended) +#SVN_BASE_URL = 'svn://svn.archlinux.org/' + +# URL for linking to mailing lists +MAILMAN_BASE_URL = 'https://lists.parabola.nu/' + +# URL for linking to the bugtracker +BUGTRACKER_URL = 'https://labs.parabola.nu/' + +# URL for linking to the release engineering/iso project on the bugtracker +BUGTRACKER_RELENG_URL = 'https://labs.parabola.nu/projects/isos' + +# URL for linking to projects in git +PROJECTS_URL = 'https://projects.parabola.nu' + +# Trackers used for ISO download magnet links +TORRENT_TRACKERS = ( + 'udp://tracker.publicbt.com:80', + 'udp://tracker.openbittorrent.com:80', + 'udp://tracker.istole.it:80', +) + +DOMAIN_RE = r'^(.+\.)?parabola(\.nu|gnulinux\.org)$' + +BRANDING_APPNAME = 'parabolaweb' +BRANDING_DISTRONAME = 'Parabola GNU/Linux-libre' +BRANDING_SHORTNAME = 'Parabola' +BRANDING_SLUG = 'parabola' +BRANDING_WIKINAME = 'ParabolaWiki' +BRANDING_EMAIL = 'Parabola Website Notification <nobody@parabola.nu>' +BRANDING_OSEARCH_TAGS = 'gnu linuxlibre parabola package software' + +# Shorten some names just a bit +COUNTRIES_OVERRIDE = { + 'GB': 'United Kingdom', + 'US': 'United States', +} + +## Import local settings +from local_settings import * + +# Enable caching templates in production environments +if not TEMPLATE_DEBUG: + TEMPLATE_LOADERS = ( + ('django.template.loaders.cached.Loader', TEMPLATE_LOADERS), + ) + JINJA2_BYTECODE_CACHE_ENABLE = True + +# Enable the debug toolbar if requested +if DEBUG_TOOLBAR: + MIDDLEWARE_CLASSES = \ + [ 'debug_toolbar.middleware.DebugToolbarMiddleware' ] + \ + list(MIDDLEWARE_CLASSES) + + INSTALLED_APPS = list(INSTALLED_APPS) + [ 'debug_toolbar' ] + # vim: set ts=4 sw=4 et: |