diff gpp/settings/base.py @ 499:1a09a7bea000

For #236, switch to a settings package scheme.
author Brian Neal <bgneal@gmail.com>
date Wed, 30 Nov 2011 02:41:18 +0000
parents
children 3fd369e1197f
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gpp/settings/base.py	Wed Nov 30 02:41:18 2011 +0000
@@ -0,0 +1,284 @@
+# Base Django settings for the gpp project.
+
+import os
+from decimal import Decimal
+
+import django.utils.simplejson as json
+from django.contrib.messages import constants as message_constants
+
+PROJECT_PATH = os.path.abspath(os.path.join(os.path.split(__file__)[0], '..'))
+
+DEBUG = True
+TEMPLATE_DEBUG = DEBUG
+
+ADMINS = (
+    ('Brian Neal', 'admin@surfguitar101.com'),
+)
+
+MANAGERS = ADMINS
+
+AUTH_PROFILE_MODULE = 'bio.userprofile'
+
+INTERNAL_IPS = ['127.0.0.1']
+
+# 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.
+# If running in a Windows environment this must be set to the same as your
+# system time zone.
+TIME_ZONE = 'America/Chicago'
+
+# Language code for this installation. All choices can be found here:
+# http://www.i18nguy.com/unicode/language-identifiers.html
+LANGUAGE_CODE = 'en-us'
+
+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
+
+# Absolute path to the directory that holds media.
+# Example: "/home/media/media.lawrence.com/"
+MEDIA_ROOT = os.path.abspath(os.path.join(PROJECT_PATH, '..', 'media'))
+
+# 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).
+# Examples: "http://media.lawrence.com", "http://example.com/media/"
+MEDIA_URL = '/media/'
+
+# 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 = '/static/admin/'
+
+# Staticfiles settings:
+STATICFILES_DIRS = [
+    os.path.abspath(os.path.join(PROJECT_PATH, '..', 'static')),
+]
+STATIC_ROOT = '/tmp/test_static_root'
+STATIC_URL = '/static/'
+
+# Make this unique, and don't share it with anybody.
+SECRETS = json.load(open(os.path.join(PROJECT_PATH, 'settings', 'secrets.json')))
+SECRET_KEY = SECRETS['SECRET_KEY']
+
+# List of Loader classes that know how to import templates from various sources.
+
+TEMPLATE_LOADERS = (
+    'django.template.loaders.filesystem.Loader',
+    'django.template.loaders.app_directories.Loader',
+)
+
+MIDDLEWARE_CLASSES = [
+    'django.middleware.common.CommonMiddleware',
+    'django.middleware.csrf.CsrfViewMiddleware',
+    'django.contrib.sessions.middleware.SessionMiddleware',
+    'django.contrib.messages.middleware.MessageMiddleware',
+    'django.contrib.auth.middleware.AuthenticationMiddleware',
+    'gpp.core.middleware.InactiveUserMiddleware',
+    'gpp.core.middleware.WhosOnline',
+    'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
+]
+
+ROOT_URLCONF = 'gpp.urls'
+
+TEMPLATE_DIRS = (
+    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
+    # Always use forward slashes, even on Windows.
+    # Don't forget to use absolute paths, not relative paths.
+    os.path.join(PROJECT_PATH, 'templates'),
+)
+
+TEMPLATE_CONTEXT_PROCESSORS = (
+    "django.contrib.auth.context_processors.auth",
+    "django.core.context_processors.debug",
+    "django.core.context_processors.request",
+    "django.core.context_processors.media",
+    "django.core.context_processors.static",
+    "django.contrib.messages.context_processors.messages",
+)
+
+INSTALLED_APPS = [
+    'django.contrib.admin',
+    'django.contrib.admindocs',
+    'django.contrib.auth',
+    'django.contrib.contenttypes',
+    'django.contrib.flatpages',
+    'django.contrib.humanize',
+    'django.contrib.markup',
+    'django.contrib.messages',
+    'django.contrib.sessions',
+    'django.contrib.sites',
+    'django.contrib.staticfiles',
+    'elsewhere',
+    'tagging',
+    'haystack',
+    'queued_search',
+    'accounts',
+    'antispam',
+    'bio',
+    'bulletins',
+    'comments',
+    'contact',
+    'core',
+    'donations',
+    'downloads',
+    'forums',
+    'gcalendar',
+    'irc',
+    'legacy',
+    'mailer',
+    'membermap',
+    'messages',
+    'news',
+    'oembed',
+    'podcast',
+    'polls',
+    'potd',
+    'shoutbox',
+    'smiley',
+    'weblinks',
+    'ygroup',
+]
+
+LOGIN_URL = '/accounts/login/'
+LOGIN_REDIRECT_URL = '/profile/me/'
+LOGOUT_URL = '/accounts/logout/'
+
+FILE_UPLOAD_PERMISSIONS = 0644
+DEFAULT_FROM_EMAIL = ADMINS[0][1]
+
+#######################################################################
+# Messages
+#######################################################################
+MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage'
+MESSAGE_TAGS = {
+    message_constants.DEBUG: 'notice',
+    message_constants.INFO: 'info',
+    message_constants.SUCCESS: 'success',
+    message_constants.WARNING: 'alert',
+    message_constants.ERROR: 'error',
+}
+
+#######################################################################
+# Email
+#######################################################################
+EMAIL_HOST = 'localhost'
+EMAIL_PORT = 1025
+
+#######################################################################
+# Sessions
+#######################################################################
+SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"
+SESSION_COOKIE_AGE = 2 * 7 * 24 * 60 * 60   # 2 weeks in seconds
+SESSION_COOKIE_DOMAIN = None
+SESSION_COOKIE_NAME = 'sg101_sessionid'
+SESSION_COOKIE_PATH = '/'
+SESSION_COOKIE_SECURE = False
+SESSION_EXPIRE_AT_BROWSER_CLOSE = False
+SESSION_SAVE_EVERY_REQUEST = False
+
+#######################################################################
+# Tagging Specific Settings
+#######################################################################
+FORCE_LOWERCASE_TAGS = True
+MAX_TAG_LENGTH = 50
+
+#######################################################################
+# Haystack Search Settings
+#######################################################################
+HAYSTACK_SITECONF = 'gpp.search_sites'
+HAYSTACK_SEARCH_ENGINE = 'xapian'
+HAYSTACK_XAPIAN_PATH = os.path.join(PROJECT_PATH, 'xapian_index')
+
+
+#######################################################################
+# GPP Specific Settings
+#######################################################################
+GPP_LOG_LEVEL = 0
+GPP_SEND_EMAIL = False
+GPP_NO_REPLY_EMAIL = 'no_reply'
+AVATAR_DIR = 'avatars'
+MAX_AVATAR_SIZE_BYTES = 2 * 1024 * 1024
+MAX_AVATAR_SIZE_PIXELS = 100
+AVATAR_DEFAULT_URL = MEDIA_URL + AVATAR_DIR + '/default.png'
+
+# Donations application settings:
+DONATIONS_DEBUG = False
+DONATIONS_ITEM_NAME = 'Donation for SurfGuitar101.com'
+DONATIONS_BUSINESS = 'brian@surfguitar101.com'
+DONATIONS_BUSINESS_DEBUG = 'bgneal_1246137628_biz@gmail.com'
+DONATIONS_GOAL = Decimal('100.00')  # monthly goal
+DONATIONS_ANON_NAME = u'Anonymous'
+DONATIONS_ITEM_NUM = '500'          # donation w/name listed
+DONATIONS_ITEM_ANON_NUM = '501'     # donation listed as anonymous
+
+# If MAILER_ENQUEUE_MAIL is True, all emails will be stored in the
+# mailer application's mail queue (database table). It is then expected
+# that a daemon or cron job will actually send the mail out. If
+# MAILER_ENQUEUE_MAIL is False, then email will only be sent if
+# the setting GPP_SEND_EMAIL (above) is True. In any event, emails
+# will be logged via the Python logger if the Python logger filter
+# DEBUG is active.
+
+MAILER_ENQUEUE_MAIL = True
+
+# Oembed settings
+OEMBED_MAXWIDTH = 480
+OEMBED_MAXHEIGHT = 295
+
+# GCalendar settings
+GCAL_CALENDAR_ID = 'i81lu3fkh57sgqqenogefd9v78@group.calendar.google.com'
+
+# Google OAuth settings
+GOOGLE_OAUTH_CONSUMER_KEY = 'surfguitar101.com'
+GOOGLE_OAUTH_PRIVATE_KEY_PATH = '/home/brian/google/myrsakey.pem'
+
+#######################################################################
+# Asynchronous settings (queues, queued_search, redis, celery, etc)
+#######################################################################
+QUEUE_BACKEND = 'redisd'
+QUEUE_REDIS_CONNECTION = 'localhost:6379'
+QUEUE_REDIS_DB = 0
+
+#######################################################################
+# Open Graph Protocol related settings
+#######################################################################
+OGP_DEFAULT_IMAGE = 'http://surfguitar101.com/media/podcast/podcast_logo.jpg'
+OGP_FB_ID = '100001558124013'
+
+#######################################################################
+# URL's of 3rd party Javascript and CSS files.
+# These dictionaries are used by core/templatetags/script_tags, and
+# should also be used by developers when creating form media classes.
+GPP_THIRD_PARTY_JS = {
+    'jquery': [
+        'http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js',
+    ],
+    'jquery-jeditable': [
+        'js/jquery.jeditable.mini.js',
+    ],
+    'jquery-ui': [
+        'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js',
+    ],
+    'markitup': [
+        'js/markitup/jquery.markitup.pack.js',
+        'js/markitup/sets/markdown/set.js',
+    ],
+    'tiny_mce': [
+        'js/tiny_mce/tiny_mce.js',
+        'js/tiny_mce_init_std.js',
+    ],
+}
+
+GPP_THIRD_PARTY_CSS = {
+    'jquery-ui': [
+        'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/themes/redmond/jquery-ui.css',
+    ],
+    'markitup': [
+        'js/markitup/skins/markitup/style.css',
+        'js/markitup/sets/markdown/style.css',
+    ],
+}
+