Mercurial > public > sg101
view gpp/settings/base.py @ 505:a5d11471d031
Refactor the logic in the rate limiter decorator. Check to see if the request was ajax, as the ajax view always returns 200. Have to decode the JSON response to see if an error occurred or not.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Sat, 03 Dec 2011 19:13:38 +0000 |
parents | 1a09a7bea000 |
children | 3fd369e1197f |
line wrap: on
line source
# 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', ], }