annotate gpp/settings.py @ 486:7854d75427af

For #233, add a meta description field for news stories. This field will get put in the open graph meta tag for better descriptions when shared on social media sites.
author Brian Neal <bgneal@gmail.com>
date Tue, 18 Oct 2011 23:23:42 +0000
parents bbbc357ac5f3
children f0f3966ea44f
rev   line source
gremmie@1 1 # Django settings for gpp project.
gremmie@1 2
gremmie@1 3 import os
gremmie@1 4 import platform
bgneal@38 5 from decimal import Decimal
bgneal@38 6
bgneal@436 7 from django.contrib.messages import constants as message_constants
bgneal@436 8
gremmie@1 9 import local_settings
bgneal@35 10
gremmie@1 11 project_path = os.path.abspath(os.path.split(__file__)[0])
gremmie@1 12
gremmie@1 13 DEBUG = local_settings.DEBUG
gremmie@1 14 TEMPLATE_DEBUG = DEBUG
gremmie@1 15
gremmie@1 16 ADMINS = (
gremmie@1 17 ('Brian Neal', 'admin@surfguitar101.com'),
gremmie@1 18 )
gremmie@1 19
gremmie@1 20 AUTH_PROFILE_MODULE = 'bio.userprofile'
gremmie@1 21
gremmie@1 22 MANAGERS = ADMINS
gremmie@1 23
bgneal@173 24 DATABASES = local_settings.DATABASES
gremmie@1 25
gremmie@1 26 INTERNAL_IPS = local_settings.INTERNAL_IPS
gremmie@1 27
gremmie@1 28 # Local time zone for this installation. Choices can be found here:
gremmie@1 29 # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
gremmie@1 30 # although not all choices may be available on all operating systems.
gremmie@1 31 # If running in a Windows environment this must be set to the same as your
gremmie@1 32 # system time zone.
gremmie@1 33 TIME_ZONE = local_settings.TIME_ZONE
gremmie@1 34
gremmie@1 35 # Language code for this installation. All choices can be found here:
gremmie@1 36 # http://www.i18nguy.com/unicode/language-identifiers.html
gremmie@1 37 LANGUAGE_CODE = 'en-us'
gremmie@1 38
gremmie@1 39 SITE_ID = local_settings.SITE_ID
gremmie@1 40
gremmie@1 41 # If you set this to False, Django will make some optimizations so as not
gremmie@1 42 # to load the internationalization machinery.
gremmie@1 43 USE_I18N = False
gremmie@1 44
gremmie@1 45 # Absolute path to the directory that holds media.
gremmie@1 46 # Example: "/home/media/media.lawrence.com/"
gremmie@1 47 MEDIA_ROOT = local_settings.MEDIA_ROOT
gremmie@1 48
gremmie@1 49 # URL that handles the media served from MEDIA_ROOT. Make sure to use a
gremmie@1 50 # trailing slash if there is a path component (optional in other cases).
gremmie@1 51 # Examples: "http://media.lawrence.com", "http://example.com/media/"
gremmie@1 52 MEDIA_URL = local_settings.MEDIA_URL
gremmie@1 53
gremmie@1 54 # URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
gremmie@1 55 # trailing slash.
gremmie@1 56 # Examples: "http://foo.com/media/", "/media/".
gremmie@1 57 ADMIN_MEDIA_PREFIX = local_settings.ADMIN_MEDIA_PREFIX
gremmie@1 58
bgneal@312 59 # Staticfiles settings:
bgneal@312 60 STATICFILES_DIRS = local_settings.STATICFILES_DIRS
bgneal@312 61 STATIC_ROOT = local_settings.STATIC_ROOT
bgneal@312 62 STATIC_URL = local_settings.STATIC_URL
bgneal@312 63
gremmie@1 64 # Make this unique, and don't share it with anybody.
gremmie@1 65 SECRET_KEY = local_settings.SECRET_KEY
gremmie@1 66
bgneal@174 67 # List of Loader classes that know how to import templates from various sources.
bgneal@181 68
bgneal@181 69 if DEBUG:
bgneal@181 70 TEMPLATE_LOADERS = (
bgneal@174 71 'django.template.loaders.filesystem.Loader',
bgneal@178 72 'django.template.loaders.app_directories.Loader',
bgneal@181 73 )
bgneal@181 74 else:
bgneal@181 75 TEMPLATE_LOADERS = (
bgneal@181 76 ('django.template.loaders.cached.Loader', (
bgneal@181 77 'django.template.loaders.filesystem.Loader',
bgneal@181 78 'django.template.loaders.app_directories.Loader',
bgneal@181 79 )),
bgneal@181 80 )
gremmie@1 81
bgneal@188 82 if DEBUG:
bgneal@188 83 MIDDLEWARE_CLASSES = (
bgneal@188 84 'django.middleware.common.CommonMiddleware',
bgneal@194 85 'django.middleware.csrf.CsrfViewMiddleware',
bgneal@188 86 'django.contrib.sessions.middleware.SessionMiddleware',
bgneal@188 87 'django.contrib.messages.middleware.MessageMiddleware',
bgneal@324 88 'debug_toolbar.middleware.DebugToolbarMiddleware',
bgneal@188 89 'django.contrib.auth.middleware.AuthenticationMiddleware',
bgneal@215 90 'gpp.core.middleware.InactiveUserMiddleware',
bgneal@227 91 'gpp.core.middleware.WhosOnline',
bgneal@188 92 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
bgneal@188 93 )
bgneal@188 94 else:
bgneal@188 95 MIDDLEWARE_CLASSES = (
bgneal@188 96 'django.middleware.common.CommonMiddleware',
bgneal@194 97 'django.middleware.csrf.CsrfViewMiddleware',
bgneal@188 98 'django.contrib.sessions.middleware.SessionMiddleware',
bgneal@188 99 'django.contrib.messages.middleware.MessageMiddleware',
bgneal@188 100 'django.contrib.auth.middleware.AuthenticationMiddleware',
bgneal@215 101 'gpp.core.middleware.InactiveUserMiddleware',
bgneal@227 102 'gpp.core.middleware.WhosOnline',
bgneal@188 103 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
bgneal@188 104 )
gremmie@1 105
gremmie@1 106 ROOT_URLCONF = 'gpp.urls'
gremmie@1 107
gremmie@1 108 TEMPLATE_DIRS = (
gremmie@1 109 # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
gremmie@1 110 # Always use forward slashes, even on Windows.
gremmie@1 111 # Don't forget to use absolute paths, not relative paths.
gremmie@1 112 os.path.join(project_path, 'templates'),
gremmie@1 113 )
gremmie@1 114
gremmie@1 115 TEMPLATE_CONTEXT_PROCESSORS = (
bgneal@178 116 "django.contrib.auth.context_processors.auth",
bgneal@178 117 "django.core.context_processors.debug",
bgneal@178 118 "django.core.context_processors.request",
bgneal@178 119 "django.core.context_processors.media",
bgneal@312 120 "django.core.context_processors.static",
bgneal@178 121 "django.contrib.messages.context_processors.messages",
gremmie@1 122 )
gremmie@1 123
bgneal@188 124 INSTALLED_APPS = [
gremmie@1 125 'django.contrib.admin',
gremmie@1 126 'django.contrib.admindocs',
gremmie@1 127 'django.contrib.auth',
gremmie@1 128 'django.contrib.contenttypes',
bgneal@178 129 'django.contrib.flatpages',
bgneal@28 130 'django.contrib.humanize',
bgneal@178 131 'django.contrib.markup',
bgneal@178 132 'django.contrib.messages',
gremmie@1 133 'django.contrib.sessions',
gremmie@1 134 'django.contrib.sites',
bgneal@312 135 'django.contrib.staticfiles',
bgneal@29 136 'elsewhere',
gremmie@1 137 'tagging',
bgneal@219 138 'haystack',
bgneal@392 139 'queued_search',
gremmie@1 140 'accounts',
bgneal@214 141 'antispam',
gremmie@1 142 'bio',
gremmie@1 143 'bulletins',
gremmie@1 144 'comments',
gremmie@1 145 'contact',
gremmie@1 146 'core',
bgneal@33 147 'donations',
gremmie@1 148 'downloads',
bgneal@75 149 'forums',
gremmie@1 150 'gcalendar',
gremmie@1 151 'irc',
bgneal@290 152 'legacy',
bgneal@180 153 'mailer',
gremmie@1 154 'membermap',
gremmie@1 155 'messages',
gremmie@1 156 'news',
bgneal@285 157 'oembed',
gremmie@1 158 'podcast',
gremmie@1 159 'polls',
gremmie@1 160 'potd',
gremmie@1 161 'shoutbox',
gremmie@1 162 'smiley',
gremmie@1 163 'weblinks',
bgneal@323 164 'ygroup',
bgneal@188 165 ]
bgneal@324 166 if DEBUG:
bgneal@324 167 INSTALLED_APPS.append('debug_toolbar')
gremmie@1 168
gremmie@1 169 LOGIN_URL = '/accounts/login/'
gremmie@1 170 LOGIN_REDIRECT_URL = '/profile/me/'
gremmie@1 171 LOGOUT_URL = '/accounts/logout/'
gremmie@1 172
bgneal@57 173 FILE_UPLOAD_PERMISSIONS = 0644
bgneal@80 174 DEFAULT_FROM_EMAIL = ADMINS[0][1]
gremmie@1 175
gremmie@1 176 #######################################################################
bgneal@178 177 # Messages
bgneal@178 178 #######################################################################
bgneal@178 179 MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage'
bgneal@436 180 MESSAGE_TAGS = {
bgneal@436 181 message_constants.DEBUG: 'notice',
bgneal@436 182 message_constants.INFO: 'info',
bgneal@436 183 message_constants.SUCCESS: 'success',
bgneal@436 184 message_constants.WARNING: 'alert',
bgneal@436 185 message_constants.ERROR: 'error',
bgneal@436 186 }
bgneal@178 187
bgneal@178 188 #######################################################################
bgneal@180 189 # Email
bgneal@180 190 #######################################################################
bgneal@180 191 EMAIL_HOST = local_settings.EMAIL_HOST
bgneal@180 192 EMAIL_PORT = local_settings.EMAIL_PORT
bgneal@180 193
bgneal@180 194 #######################################################################
bgneal@43 195 # Caching
bgneal@43 196 #######################################################################
bgneal@43 197 if local_settings.USE_CACHE:
bgneal@309 198 CACHES = local_settings.CACHES
bgneal@309 199 CACHE_MIDDLEWARE_ANONYMOUS_ONLY = local_settings.CACHE_MIDDLEWARE_ANONYMOUS_ONLY
bgneal@248 200 CACHE_MIDDLEWARE_SECONDS = local_settings.CACHE_MIDDLEWARE_SECONDS
bgneal@248 201 CACHE_MIDDLEWARE_KEY_PREFIX = local_settings.CACHE_MIDDLEWARE_KEY_PREFIX
bgneal@43 202
bgneal@43 203 #######################################################################
bgneal@189 204 # Sessions
bgneal@189 205 #######################################################################
bgneal@189 206 SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"
bgneal@189 207 SESSION_COOKIE_AGE = 2 * 7 * 24 * 60 * 60 # 2 weeks in seconds
bgneal@189 208 SESSION_COOKIE_DOMAIN = None
bgneal@189 209 SESSION_COOKIE_NAME = 'sg101_sessionid'
bgneal@189 210 SESSION_COOKIE_PATH = '/'
bgneal@189 211 SESSION_COOKIE_SECURE = False
bgneal@189 212 SESSION_EXPIRE_AT_BROWSER_CLOSE = False
bgneal@189 213 SESSION_SAVE_EVERY_REQUEST = False
bgneal@189 214
bgneal@189 215 #######################################################################
gremmie@1 216 # Tagging Specific Settings
gremmie@1 217 #######################################################################
gremmie@1 218 FORCE_LOWERCASE_TAGS = True
gremmie@1 219 MAX_TAG_LENGTH = 50
gremmie@1 220
gremmie@1 221 #######################################################################
bgneal@219 222 # Haystack Search Settings
bgneal@219 223 #######################################################################
bgneal@219 224 HAYSTACK_SITECONF = 'gpp.search_sites'
bgneal@219 225 HAYSTACK_SEARCH_ENGINE = 'xapian'
bgneal@219 226 HAYSTACK_XAPIAN_PATH = os.path.join(project_path, 'xapian_index')
bgneal@219 227
bgneal@219 228
bgneal@219 229 #######################################################################
gremmie@1 230 # GPP Specific Settings
gremmie@1 231 #######################################################################
gremmie@1 232 GPP_LOG_LEVEL = 0
bgneal@180 233 GPP_SEND_EMAIL = local_settings.GPP_SEND_EMAIL # see MAILER_ENQUEUE_MAIL
gremmie@1 234 GPP_NO_REPLY_EMAIL = 'no_reply'
gremmie@1 235 AVATAR_DIR = 'avatars'
gremmie@1 236 MAX_AVATAR_SIZE_BYTES = 2 * 1024 * 1024
gremmie@1 237 MAX_AVATAR_SIZE_PIXELS = 100
gremmie@1 238 AVATAR_DEFAULT_URL = MEDIA_URL + AVATAR_DIR + '/default.png'
bgneal@36 239
bgneal@36 240 # Donations application settings:
bgneal@66 241 DONATIONS_DEBUG = local_settings.DONATIONS_DEBUG
bgneal@35 242 DONATIONS_ITEM_NAME = 'Donation for SurfGuitar101.com'
bgneal@35 243 DONATIONS_BUSINESS = 'brian@surfguitar101.com'
bgneal@62 244 DONATIONS_BUSINESS_DEBUG = local_settings.DONATIONS_BUSINESS_DEBUG
bgneal@59 245 DONATIONS_GOAL = Decimal('100.00') # monthly goal
bgneal@35 246 DONATIONS_ANON_NAME = u'Anonymous'
bgneal@60 247 DONATIONS_ITEM_NUM = '500' # donation w/name listed
bgneal@60 248 DONATIONS_ITEM_ANON_NUM = '501' # donation listed as anonymous
bgneal@6 249
bgneal@180 250 # If MAILER_ENQUEUE_MAIL is True, all emails will be stored in the
bgneal@180 251 # mailer application's mail queue (database table). It is then expected
bgneal@180 252 # that a daemon or cron job will actually send the mail out. If
bgneal@180 253 # MAILER_ENQUEUE_MAIL is False, then email will only be sent if
bgneal@180 254 # the setting GPP_SEND_EMAIL (above) is True. In any event, emails
bgneal@180 255 # will be logged via the Python logger if the Python logger filter
bgneal@180 256 # DEBUG is active.
bgneal@180 257
bgneal@180 258 MAILER_ENQUEUE_MAIL = True
bgneal@180 259
bgneal@361 260 # Oembed settings
bgneal@361 261 OEMBED_MAXWIDTH = 480
bgneal@361 262 OEMBED_MAXHEIGHT = 295
bgneal@361 263
bgneal@451 264 # GCalendar settings
bgneal@451 265 GCAL_CALENDAR_ID = 'i81lu3fkh57sgqqenogefd9v78@group.calendar.google.com'
bgneal@451 266
bgneal@451 267 # Google OAuth settings
bgneal@451 268 GOOGLE_OAUTH_CONSUMER_KEY = local_settings.GOOGLE_OAUTH_CONSUMER_KEY
bgneal@451 269 GOOGLE_OAUTH_PRIVATE_KEY_PATH = local_settings.GOOGLE_OAUTH_PRIVATE_KEY_PATH
bgneal@451 270
bgneal@38 271 #######################################################################
bgneal@38 272 # Configure Logging
bgneal@38 273 #######################################################################
bgneal@38 274
bgneal@316 275 LOGGING = local_settings.LOGGING
bgneal@38 276
bgneal@206 277 #######################################################################
bgneal@206 278 # Django Debug Toolbar
bgneal@206 279 #######################################################################
bgneal@206 280
bgneal@206 281 if DEBUG:
bgneal@206 282 DEBUG_TOOLBAR_CONFIG = local_settings.DEBUG_TOOLBAR_CONFIG
bgneal@38 283
bgneal@38 284 #######################################################################
bgneal@392 285 # Asynchronous settings (queues, queued_search, redis, celery, etc)
bgneal@392 286 #######################################################################
bgneal@392 287 QUEUE_BACKEND = 'redisd'
bgneal@392 288 QUEUE_REDIS_CONNECTION = 'localhost:6379'
bgneal@392 289 QUEUE_REDIS_DB = 0
bgneal@392 290
bgneal@392 291 #######################################################################
bgneal@484 292 # Open Graph Protocol related settings
bgneal@484 293 #######################################################################
bgneal@484 294 OGP_DEFAULT_IMAGE = 'http://surfguitar101.com/media/podcast/podcast_logo.jpg'
bgneal@484 295 OGP_FB_ID = '100001558124013'
bgneal@484 296
bgneal@484 297 #######################################################################
bgneal@6 298 # URL's of 3rd party Javascript and CSS files.
bgneal@6 299 # These dictionaries are used by core/templatetags/script_tags, and
bgneal@6 300 # should also be used by developers when creating form media classes.
bgneal@6 301 GPP_THIRD_PARTY_JS = {
bgneal@484 302 'jquery': [
bgneal@425 303 'http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js',
bgneal@484 304 ],
bgneal@484 305 'jquery-jeditable': [
bgneal@6 306 'js/jquery.jeditable.mini.js',
bgneal@484 307 ],
bgneal@484 308 'jquery-ui': [
bgneal@425 309 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js',
bgneal@484 310 ],
bgneal@484 311 'markitup': [
bgneal@6 312 'js/markitup/jquery.markitup.pack.js',
bgneal@6 313 'js/markitup/sets/markdown/set.js',
bgneal@484 314 ],
bgneal@484 315 'tiny_mce': [
bgneal@7 316 'js/tiny_mce/tiny_mce.js',
bgneal@7 317 'js/tiny_mce_init_std.js',
bgneal@484 318 ],
bgneal@484 319 'social': [
bgneal@484 320 'http://platform.twitter.com/widgets.js',
bgneal@484 321 'https://apis.google.com/js/plusone.js',
bgneal@484 322 ],
bgneal@6 323 }
bgneal@6 324 GPP_THIRD_PARTY_CSS = {
bgneal@484 325 'jquery-ui': [
bgneal@425 326 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/themes/redmond/jquery-ui.css',
bgneal@484 327 ],
bgneal@484 328 'markitup': [
bgneal@6 329 'js/markitup/skins/markitup/style.css',
bgneal@6 330 'js/markitup/sets/markdown/style.css',
bgneal@484 331 ],
bgneal@6 332 }
bgneal@6 333