settings.py
239 lines
| 7.5 KiB
| text/x-python
|
PythonLexer
/ neboard / settings.py
neko259
|
r0 | # Django settings for neboard project. | ||
Ilyas
|
r9 | import os | ||
neko259
|
r52 | from boards.mdx_neboard import markdown_extended | ||
neko259
|
r0 | |||
DEBUG = True | ||||
TEMPLATE_DEBUG = DEBUG | ||||
ADMINS = ( | ||||
# ('Your Name', 'your_email@example.com'), | ||||
neko259
|
r28 | ('admin', 'admin@example.com') | ||
neko259
|
r0 | ) | ||
MANAGERS = ADMINS | ||||
DATABASES = { | ||||
'default': { | ||||
'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. | ||||
'NAME': 'database.db', # Or path to database file if using sqlite3. | ||||
'USER': '', # Not used with sqlite3. | ||||
'PASSWORD': '', # Not used with sqlite3. | ||||
'HOST': '', # Set to empty string for localhost. Not used with sqlite3. | ||||
'PORT': '', # Set to empty string for default. Not used with sqlite3. | ||||
neko259
|
r334 | 'CONN_MAX_AGE': None, | ||
neko259
|
r0 | } | ||
} | ||||
# 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. | ||||
# In a Windows environment this must be set to your system time zone. | ||||
TIME_ZONE = 'Europe/Kiev' | ||||
# Language code for this installation. All choices can be found here: | ||||
# http://www.i18nguy.com/unicode/language-identifiers.html | ||||
neko259
|
r104 | LANGUAGE_CODE = 'en' | ||
neko259
|
r0 | |||
SITE_ID = 1 | ||||
# If you set this to False, Django will make some optimizations so as not | ||||
# to load the internationalization machinery. | ||||
USE_I18N = True | ||||
# If you set this to False, Django will not format dates, numbers and | ||||
# calendars according to the current locale. | ||||
USE_L10N = True | ||||
# If you set this to False, Django will not use timezone-aware datetimes. | ||||
USE_TZ = True | ||||
# Absolute filesystem path to the directory that will hold user-uploaded files. | ||||
# Example: "/home/media/media.lawrence.com/media/" | ||||
Ilyas
|
r49 | MEDIA_ROOT = './media/' | ||
neko259
|
r0 | |||
# URL that handles the media served from MEDIA_ROOT. Make sure to use a | ||||
# trailing slash. | ||||
# Examples: "http://media.lawrence.com/media/", "http://example.com/media/" | ||||
Ilyas
|
r49 | MEDIA_URL = '/media/' | ||
neko259
|
r0 | |||
# Absolute path to the directory static files should be collected to. | ||||
# Don't put anything in this directory yourself; store your static files | ||||
# in apps' "static/" subdirectories and in STATICFILES_DIRS. | ||||
# Example: "/home/media/media.lawrence.com/static/" | ||||
STATIC_ROOT = '' | ||||
# URL prefix for static files. | ||||
# Example: "http://media.lawrence.com/static/" | ||||
STATIC_URL = '/static/' | ||||
# Additional locations of static files | ||||
Ilyas
|
r9 | # It is really a hack, put real paths, not related | ||
neko259
|
r0 | STATICFILES_DIRS = ( | ||
Ilyas
|
r9 | os.path.dirname(__file__) + '/boards/static', | ||
# '/d/work/python/django/neboard/neboard/boards/static', | ||||
neko259
|
r0 | # Put strings here, like "/home/html/static" or "C:/www/django/static". | ||
# Always use forward slashes, even on Windows. | ||||
# Don't forget to use absolute paths, not relative paths. | ||||
) | ||||
# List of finder classes that know how to find static files in | ||||
# various locations. | ||||
STATICFILES_FINDERS = ( | ||||
'django.contrib.staticfiles.finders.FileSystemFinder', | ||||
'django.contrib.staticfiles.finders.AppDirectoriesFinder', | ||||
) | ||||
neko259
|
r279 | if DEBUG: | ||
STATICFILES_STORAGE = \ | ||||
'django.contrib.staticfiles.storage.StaticFilesStorage' | ||||
else: | ||||
STATICFILES_STORAGE = \ | ||||
'django.contrib.staticfiles.storage.CachedStaticFilesStorage' | ||||
neko259
|
r259 | |||
neko259
|
r0 | # Make this unique, and don't share it with anybody. | ||
SECRET_KEY = '@1rc$o(7=tt#kd+4s$u6wchm**z^)4x90)7f6z(i&55@o11*8o' | ||||
# List of callables that know how to import templates from various sources. | ||||
TEMPLATE_LOADERS = ( | ||||
'django.template.loaders.filesystem.Loader', | ||||
'django.template.loaders.app_directories.Loader', | ||||
) | ||||
Ilyas
|
r9 | TEMPLATE_CONTEXT_PROCESSORS = ( | ||
'django.core.context_processors.media', | ||||
'django.core.context_processors.static', | ||||
'django.core.context_processors.request', | ||||
'django.contrib.auth.context_processors.auth', | ||||
) | ||||
neko259
|
r0 | MIDDLEWARE_CLASSES = ( | ||
neko259
|
r104 | 'django.contrib.sessions.middleware.SessionMiddleware', | ||
'django.middleware.locale.LocaleMiddleware', | ||||
neko259
|
r0 | 'django.middleware.common.CommonMiddleware', | ||
'django.contrib.auth.middleware.AuthenticationMiddleware', | ||||
'django.contrib.messages.middleware.MessageMiddleware', | ||||
neko259
|
r210 | 'boards.middlewares.BanMiddleware', | ||
neko259
|
r0 | ) | ||
ROOT_URLCONF = 'neboard.urls' | ||||
# Python dotted path to the WSGI application used by Django's runserver. | ||||
WSGI_APPLICATION = 'neboard.wsgi.application' | ||||
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. | ||||
'templates', | ||||
) | ||||
INSTALLED_APPS = ( | ||||
'django.contrib.auth', | ||||
'django.contrib.contenttypes', | ||||
'django.contrib.sessions', | ||||
neko259
|
r89 | # 'django.contrib.sites', | ||
neko259
|
r0 | 'django.contrib.messages', | ||
'django.contrib.staticfiles', | ||||
# Uncomment the next line to enable the admin: | ||||
'django.contrib.admin', | ||||
# Uncomment the next line to enable admin documentation: | ||||
# 'django.contrib.admindocs', | ||||
neko259
|
r308 | 'django.contrib.humanize', | ||
neko259
|
r39 | 'django_cleanup', | ||
neko259
|
r0 | 'boards', | ||
Ilyas
|
r78 | 'captcha', | ||
neko259
|
r114 | 'south', | ||
neko259
|
r317 | 'debug_toolbar', | ||
) | ||||
DEBUG_TOOLBAR_PANELS = ( | ||||
'debug_toolbar.panels.version.VersionDebugPanel', | ||||
'debug_toolbar.panels.timer.TimerDebugPanel', | ||||
'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel', | ||||
'debug_toolbar.panels.headers.HeaderDebugPanel', | ||||
'debug_toolbar.panels.request_vars.RequestVarsDebugPanel', | ||||
'debug_toolbar.panels.template.TemplateDebugPanel', | ||||
'debug_toolbar.panels.sql.SQLDebugPanel', | ||||
'debug_toolbar.panels.signals.SignalDebugPanel', | ||||
'debug_toolbar.panels.logger.LoggingPanel', | ||||
neko259
|
r0 | ) | ||
Ilyas
|
r78 | # TODO: NEED DESIGN FIXES | ||
CAPTCHA_OUTPUT_FORMAT = (u' %(hidden_field)s ' | ||||
u'<div class="form-label">%(image)s</div>' | ||||
u'<div class="form-text">%(text_field)s</div>') | ||||
neko259
|
r0 | # A sample logging configuration. The only tangible logging | ||
# performed by this configuration is to send an email to | ||||
# the site admins on every HTTP 500 error when DEBUG=False. | ||||
# See http://docs.djangoproject.com/en/dev/topics/logging for | ||||
# more details on how to customize your logging configuration. | ||||
LOGGING = { | ||||
'version': 1, | ||||
'disable_existing_loggers': False, | ||||
'filters': { | ||||
'require_debug_false': { | ||||
'()': 'django.utils.log.RequireDebugFalse' | ||||
} | ||||
}, | ||||
'handlers': { | ||||
'mail_admins': { | ||||
'level': 'ERROR', | ||||
'filters': ['require_debug_false'], | ||||
'class': 'django.utils.log.AdminEmailHandler' | ||||
} | ||||
}, | ||||
'loggers': { | ||||
'django.request': { | ||||
'handlers': ['mail_admins'], | ||||
'level': 'ERROR', | ||||
'propagate': True, | ||||
}, | ||||
} | ||||
} | ||||
neko259
|
r57 | MARKUP_FIELD_TYPES = ( | ||
('markdown', markdown_extended), | ||||
) | ||||
neko259
|
r0 | # Custom imageboard settings | ||
neko259
|
r317 | # TODO These should me moved to | ||
neko259
|
r155 | MAX_POSTS_PER_THREAD = 10 # Thread bumplimit | ||
MAX_THREAD_COUNT = 500 # Old threads will be deleted to preserve this count | ||||
neko259
|
r343 | THREADS_PER_PAGE = 3 | ||
neko259
|
r35 | SITE_NAME = 'Neboard' | ||
THEMES = [ | ||||
('md', 'Mystic Dark'), | ||||
neko259
|
r254 | ('md_centered', 'Mystic Dark (centered)'), | ||
neko259
|
r193 | ('sw', 'Snow White'), | ||
('pg', 'Photon Gray'), | ||||
neko259
|
r113 | ] | ||
wnc_21
|
r95 | |||
Ilyas
|
r49 | DEFAULT_THEME = 'md' | ||
neko259
|
r52 | |||
neko259
|
r59 | POPULAR_TAGS = 10 | ||
neko259
|
r81 | LAST_REPLIES_COUNT = 3 | ||
neko259
|
r113 | ENABLE_CAPTCHA = False | ||
wnc_21
|
r95 | # if user tries to post before CAPTCHA_DEFAULT_SAFE_TIME. Captcha will be shown | ||
neko259
|
r104 | CAPTCHA_DEFAULT_SAFE_TIME = 30 # seconds | ||
neko259
|
r365 | POSTING_DELAY = 20 # seconds | ||
neko259
|
r195 | |||
neko259
|
r317 | |||
def custom_show_toolbar(request): | ||||
return DEBUG | ||||
DEBUG_TOOLBAR_CONFIG = { | ||||
'INTERCEPT_REDIRECTS': False, | ||||
'SHOW_TOOLBAR_CALLBACK': custom_show_toolbar, | ||||
'HIDE_DJANGO_SQL': False, | ||||
'ENABLE_STACKTRACES': True, | ||||
} | ||||
neko259
|
r195 | # Debug mode middlewares | ||
if DEBUG: | ||||
neko259
|
r317 | MIDDLEWARE_CLASSES += ( | ||
'boards.profiler.ProfilerMiddleware', | ||||
'debug_toolbar.middleware.DebugToolbarMiddleware', | ||||
) | ||||