Normalize quote char on settings with minor reorganization and cleaning.
parent
2907b2aebf
commit
87c5346e84
|
@ -9,156 +9,125 @@ OUT_BASE_DIR = os.path.abspath(
|
||||||
os.path.join(BASE_DIR, "..")
|
os.path.join(BASE_DIR, "..")
|
||||||
)
|
)
|
||||||
|
|
||||||
USE_X_FORWARDED_HOST = True
|
|
||||||
|
|
||||||
APPEND_SLASH = False
|
APPEND_SLASH = False
|
||||||
|
|
||||||
|
|
||||||
ADMINS = (
|
ADMINS = (
|
||||||
('Admin', 'example@example.com'),
|
("Admin", "example@example.com"),
|
||||||
)
|
)
|
||||||
|
|
||||||
LANGUAGES = (
|
LANGUAGES = (
|
||||||
('en', _('English')),
|
("en", _("English")),
|
||||||
('es', _('Spanish')),
|
("es", _("Spanish")),
|
||||||
)
|
)
|
||||||
|
|
||||||
DATABASES = {
|
DATABASES = {
|
||||||
'default': {
|
"default": {
|
||||||
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
"ENGINE": "django.db.backends.postgresql_psycopg2",
|
||||||
'NAME': 'taiga',
|
"NAME": "taiga",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CACHES = {
|
CACHES = {
|
||||||
'default': {
|
"default": {
|
||||||
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
|
"BACKEND": "django.core.cache.backends.locmem.LocMemCache",
|
||||||
'LOCATION': 'unique-snowflake'
|
"LOCATION": "unique-snowflake"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PASSWORD_HASHERS = [
|
PASSWORD_HASHERS = [
|
||||||
'django.contrib.auth.hashers.PBKDF2PasswordHasher',
|
"django.contrib.auth.hashers.PBKDF2PasswordHasher",
|
||||||
]
|
]
|
||||||
|
|
||||||
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTOCOL', 'https')
|
# Default configuration for reverse proxy
|
||||||
|
USE_X_FORWARDED_HOST = True
|
||||||
|
SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTOCOL", "https")
|
||||||
|
|
||||||
|
# Errors report configuration
|
||||||
SEND_BROKEN_LINK_EMAILS = True
|
SEND_BROKEN_LINK_EMAILS = True
|
||||||
IGNORABLE_404_ENDS = ('.php', '.cgi')
|
IGNORABLE_404_ENDS = (".php", ".cgi")
|
||||||
IGNORABLE_404_STARTS = ('/phpmyadmin/',)
|
IGNORABLE_404_STARTS = ("/phpmyadmin/",)
|
||||||
|
|
||||||
|
|
||||||
|
# Default django tz/i18n config
|
||||||
ATOMIC_REQUESTS = True
|
ATOMIC_REQUESTS = True
|
||||||
|
TIME_ZONE = "UTC"
|
||||||
TIME_ZONE = 'UTC'
|
LANGUAGE_CODE = "en"
|
||||||
LANGUAGE_CODE = 'en'
|
|
||||||
USE_I18N = True
|
USE_I18N = True
|
||||||
USE_L10N = True
|
USE_L10N = True
|
||||||
LOGIN_URL='/auth/login/'
|
LOGIN_URL="/auth/login/"
|
||||||
USE_TZ = True
|
USE_TZ = True
|
||||||
|
|
||||||
SITES = {
|
SITES = {
|
||||||
1: {"domain": "localhost:8000", "scheme": "http"},
|
1: {"domain": "localhost:8000", "scheme": "http"},
|
||||||
}
|
}
|
||||||
|
|
||||||
SITES_FRONT = {
|
|
||||||
1: {"domain": "localhost:9001", "scheme": "http"},
|
|
||||||
}
|
|
||||||
|
|
||||||
DOMAIN_ID = 1
|
DOMAIN_ID = 1
|
||||||
|
|
||||||
# Only for django. Not used.
|
|
||||||
SITE_ID = 1
|
SITE_ID = 1
|
||||||
|
|
||||||
#SESSION BACKEND
|
# Session configuration (only used for admin)
|
||||||
SESSION_ENGINE='django.contrib.sessions.backends.db'
|
SESSION_ENGINE="django.contrib.sessions.backends.db"
|
||||||
#SESSION_ENGINE='django.contrib.sessions.backends.cache'
|
|
||||||
#SESSION_EXPIRE_AT_BROWSER_CLOSE = False
|
|
||||||
#SESSION_SAVE_EVERY_REQUEST = True
|
|
||||||
SESSION_COOKIE_AGE = 1209600 # (2 weeks)
|
SESSION_COOKIE_AGE = 1209600 # (2 weeks)
|
||||||
|
|
||||||
API_LIMIT_PER_PAGE = 0
|
|
||||||
|
|
||||||
HOST = 'http://localhost:8000'
|
HOST = "http://localhost:8000"
|
||||||
|
|
||||||
# MAIL OPTIONS
|
# MAIL OPTIONS
|
||||||
#EMAIL_USE_TLS = False
|
|
||||||
#EMAIL_HOST = 'localhost'
|
|
||||||
#EMAIL_HOST_USER = 'user'
|
|
||||||
#EMAIL_HOST_PASSWORD = 'password'
|
|
||||||
#EMAIL_PORT = 25
|
|
||||||
DEFAULT_FROM_EMAIL = "john@doe.com"
|
DEFAULT_FROM_EMAIL = "john@doe.com"
|
||||||
EMAIL_BACKEND = 'djmail.backends.default.EmailBackend'
|
EMAIL_BACKEND = "djmail.backends.default.EmailBackend"
|
||||||
#EMAIL_BACKEND = 'django.core.mail.backends.locmem.EmailBackend'
|
|
||||||
#EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
|
DJMAIL_REAL_BACKEND = "django.core.mail.backends.console.EmailBackend"
|
||||||
DJMAIL_REAL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
|
|
||||||
DJMAIL_SEND_ASYNC = True
|
DJMAIL_SEND_ASYNC = True
|
||||||
DJMAIL_MAX_RETRY_NUMBER = 3
|
DJMAIL_MAX_RETRY_NUMBER = 3
|
||||||
DJMAIL_TEMPLATE_EXTENSION = 'jinja'
|
DJMAIL_TEMPLATE_EXTENSION = "jinja"
|
||||||
|
|
||||||
# Message System
|
# Message System
|
||||||
#MESSAGE_STORAGE = 'django.contrib.messages.storage.cookie.CookieStorage'
|
MESSAGE_STORAGE = "django.contrib.messages.storage.session.SessionStorage"
|
||||||
MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage'
|
|
||||||
|
|
||||||
# Absolute filesystem path to the directory that will hold user-uploaded files.
|
# Static configuration.
|
||||||
# Example: "/home/media/media.lawrence.com/media/"
|
MEDIA_ROOT = os.path.join(OUT_BASE_DIR, "media")
|
||||||
MEDIA_ROOT = os.path.join(OUT_BASE_DIR, 'media')
|
MEDIA_URL = "/media/"
|
||||||
|
STATIC_ROOT = os.path.join(OUT_BASE_DIR, "static")
|
||||||
|
STATIC_URL = "/static/"
|
||||||
|
ADMIN_MEDIA_PREFIX = "/static/admin/"
|
||||||
|
|
||||||
# URL that handles the media served from MEDIA_ROOT. Make sure to use a
|
STATICFILES_FINDERS = [
|
||||||
# trailing slash.
|
"django.contrib.staticfiles.finders.FileSystemFinder",
|
||||||
# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
|
"django.contrib.staticfiles.finders.AppDirectoriesFinder",
|
||||||
MEDIA_URL = '/media/'
|
]
|
||||||
|
|
||||||
# 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 = os.path.join(OUT_BASE_DIR, 'static')
|
|
||||||
|
|
||||||
# URL prefix for static files.
|
|
||||||
# Example: "http://media.lawrence.com/static/"
|
|
||||||
STATIC_URL = '/static/'
|
|
||||||
|
|
||||||
# URL prefix for admin static files -- CSS, JavaScript and images.
|
|
||||||
# Make sure to use a trailing slash.
|
|
||||||
# Examples: "http://foo.com/static/admin/", "/static/admin/".
|
|
||||||
ADMIN_MEDIA_PREFIX = '/static/admin/'
|
|
||||||
|
|
||||||
DEFAULT_FILE_STORAGE = 'taiga.base.storage.FileSystemStorage'
|
|
||||||
|
|
||||||
|
|
||||||
# Additional locations of static files
|
|
||||||
STATICFILES_DIRS = (
|
STATICFILES_DIRS = (
|
||||||
# Put strings here, like "/home/html/static" or "C:/www/django/static".
|
# Put strings here, like "/home/html/static" or "C:/www/django/static".
|
||||||
# Don't forget to use absolute paths, not relative paths.
|
# Don't forget to use absolute paths, not relative paths.
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# Defautl storage
|
||||||
|
DEFAULT_FILE_STORAGE = "taiga.base.storage.FileSystemStorage"
|
||||||
|
|
||||||
|
|
||||||
LOCALE_PATHS = (
|
LOCALE_PATHS = (
|
||||||
os.path.join(BASE_DIR, 'locale'),
|
os.path.join(BASE_DIR, "locale"),
|
||||||
)
|
)
|
||||||
|
|
||||||
STATICFILES_FINDERS = [
|
SECRET_KEY = "aw3+t2r(8(0kkrhg8)gx6i96v5^kv%6cfep9wxfom0%7dy0m9e"
|
||||||
'django.contrib.staticfiles.finders.FileSystemFinder',
|
|
||||||
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
|
|
||||||
]
|
|
||||||
|
|
||||||
SECRET_KEY = 'aw3+t2r(8(0kkrhg8)gx6i96v5^kv%6cfep9wxfom0%7dy0m9e'
|
|
||||||
|
|
||||||
TEMPLATE_LOADERS = [
|
TEMPLATE_LOADERS = [
|
||||||
'django_jinja.loaders.AppLoader',
|
"django_jinja.loaders.AppLoader",
|
||||||
'django_jinja.loaders.FileSystemLoader',
|
"django_jinja.loaders.FileSystemLoader",
|
||||||
]
|
]
|
||||||
|
|
||||||
MIDDLEWARE_CLASSES = [
|
MIDDLEWARE_CLASSES = [
|
||||||
'taiga.base.middleware.cors.CoorsMiddleware',
|
"taiga.base.middleware.cors.CoorsMiddleware",
|
||||||
'taiga.base.domains.middleware.DomainsMiddleware',
|
"taiga.base.domains.middleware.DomainsMiddleware",
|
||||||
|
|
||||||
# Common middlewares
|
# Common middlewares
|
||||||
'django.middleware.common.CommonMiddleware',
|
"django.middleware.common.CommonMiddleware",
|
||||||
'django.middleware.locale.LocaleMiddleware',
|
"django.middleware.locale.LocaleMiddleware",
|
||||||
|
|
||||||
# Only needed by django admin
|
# Only needed by django admin
|
||||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
"django.contrib.sessions.middleware.SessionMiddleware",
|
||||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
"django.contrib.auth.middleware.AuthenticationMiddleware",
|
||||||
'django.contrib.messages.middleware.MessageMiddleware',
|
"django.contrib.messages.middleware.MessageMiddleware",
|
||||||
]
|
]
|
||||||
|
|
||||||
TEMPLATE_CONTEXT_PROCESSORS = [
|
TEMPLATE_CONTEXT_PROCESSORS = [
|
||||||
|
@ -172,132 +141,138 @@ TEMPLATE_CONTEXT_PROCESSORS = [
|
||||||
"django.contrib.messages.context_processors.messages",
|
"django.contrib.messages.context_processors.messages",
|
||||||
]
|
]
|
||||||
|
|
||||||
ROOT_URLCONF = 'taiga.urls'
|
ROOT_URLCONF = "taiga.urls"
|
||||||
|
|
||||||
TEMPLATE_DIRS = [
|
TEMPLATE_DIRS = [
|
||||||
os.path.join(BASE_DIR, "templates"),
|
os.path.join(BASE_DIR, "templates"),
|
||||||
]
|
]
|
||||||
|
|
||||||
INSTALLED_APPS = [
|
INSTALLED_APPS = [
|
||||||
'django.contrib.auth',
|
"django.contrib.auth",
|
||||||
'django.contrib.contenttypes',
|
"django.contrib.contenttypes",
|
||||||
'django.contrib.sessions',
|
"django.contrib.sessions",
|
||||||
'django.contrib.messages',
|
"django.contrib.messages",
|
||||||
'django.contrib.admin',
|
"django.contrib.admin",
|
||||||
'django.contrib.staticfiles',
|
"django.contrib.staticfiles",
|
||||||
|
|
||||||
'taiga.base.users',
|
"taiga.base.users",
|
||||||
'taiga.base.domains',
|
"taiga.base.domains",
|
||||||
'taiga.base.notifications',
|
"taiga.base.notifications",
|
||||||
'taiga.base.searches',
|
"taiga.base.searches",
|
||||||
'taiga.base',
|
"taiga.base",
|
||||||
'taiga.projects',
|
"taiga.projects",
|
||||||
'taiga.projects.mixins.blocked',
|
"taiga.projects.mixins.blocked",
|
||||||
'taiga.projects.milestones',
|
"taiga.projects.milestones",
|
||||||
'taiga.projects.userstories',
|
"taiga.projects.userstories",
|
||||||
'taiga.projects.tasks',
|
"taiga.projects.tasks",
|
||||||
'taiga.projects.issues',
|
"taiga.projects.issues",
|
||||||
'taiga.front',
|
"taiga.front",
|
||||||
#'taiga.projects.questions',
|
#"taiga.projects.questions",
|
||||||
#'taiga.projects.documents',
|
#"taiga.projects.documents",
|
||||||
'taiga.projects.wiki',
|
"taiga.projects.wiki",
|
||||||
|
|
||||||
'south',
|
"south",
|
||||||
'reversion',
|
"reversion",
|
||||||
'rest_framework',
|
"rest_framework",
|
||||||
'djmail',
|
"djmail",
|
||||||
]
|
]
|
||||||
|
|
||||||
WSGI_APPLICATION = 'taiga.wsgi.application'
|
WSGI_APPLICATION = "taiga.wsgi.application"
|
||||||
|
|
||||||
LOGGING = {
|
LOGGING = {
|
||||||
'version': 1,
|
"version": 1,
|
||||||
'disable_existing_loggers': True,
|
"disable_existing_loggers": True,
|
||||||
'filters': {
|
"filters": {
|
||||||
'require_debug_false': {
|
"require_debug_false": {
|
||||||
'()': 'django.utils.log.RequireDebugFalse'
|
"()": "django.utils.log.RequireDebugFalse"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'formatters': {
|
"formatters": {
|
||||||
'complete': {
|
"complete": {
|
||||||
'format': '%(levelname)s:%(asctime)s:%(module)s %(message)s'
|
"format": "%(levelname)s:%(asctime)s:%(module)s %(message)s"
|
||||||
},
|
},
|
||||||
'simple': {
|
"simple": {
|
||||||
'format': '%(levelname)s:%(asctime)s: %(message)s'
|
"format": "%(levelname)s:%(asctime)s: %(message)s"
|
||||||
},
|
},
|
||||||
'null': {
|
"null": {
|
||||||
'format': '%(message)s',
|
"format": "%(message)s",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
'handlers': {
|
"handlers": {
|
||||||
'null': {
|
"null": {
|
||||||
'level':'DEBUG',
|
"level":"DEBUG",
|
||||||
'class':'django.utils.log.NullHandler',
|
"class":"django.utils.log.NullHandler",
|
||||||
},
|
},
|
||||||
'console':{
|
"console":{
|
||||||
'level':'DEBUG',
|
"level":"DEBUG",
|
||||||
'class':'logging.StreamHandler',
|
"class":"logging.StreamHandler",
|
||||||
'formatter': 'simple',
|
"formatter": "simple",
|
||||||
},
|
},
|
||||||
'mail_admins': {
|
"mail_admins": {
|
||||||
'level': 'ERROR',
|
"level": "ERROR",
|
||||||
'filters': ['require_debug_false'],
|
"filters": ["require_debug_false"],
|
||||||
'class': 'django.utils.log.AdminEmailHandler',
|
"class": "django.utils.log.AdminEmailHandler",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'loggers': {
|
"loggers": {
|
||||||
'django': {
|
"django": {
|
||||||
'handlers':['null'],
|
"handlers":["null"],
|
||||||
'propagate': True,
|
"propagate": True,
|
||||||
'level':'INFO',
|
"level":"INFO",
|
||||||
},
|
},
|
||||||
'django.request': {
|
"django.request": {
|
||||||
'handlers': ['mail_admins', 'console'],
|
"handlers": ["mail_admins", "console"],
|
||||||
'level': 'ERROR',
|
"level": "ERROR",
|
||||||
'propagate': False,
|
"propagate": False,
|
||||||
},
|
},
|
||||||
'taiga': {
|
"taiga": {
|
||||||
'handlers': ['console'],
|
"handlers": ["console"],
|
||||||
'handlers': [],
|
"handlers": [],
|
||||||
'level': 'DEBUG',
|
"level": "DEBUG",
|
||||||
'propagate': False,
|
"propagate": False,
|
||||||
},
|
},
|
||||||
'taiga.domains': {
|
"taiga.domains": {
|
||||||
'handlers': ['console'],
|
"handlers": ["console"],
|
||||||
'level': 'INFO',
|
"level": "INFO",
|
||||||
'propagate': False,
|
"propagate": False,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
AUTH_USER_MODEL = 'users.User'
|
AUTH_USER_MODEL = "users.User"
|
||||||
FORMAT_MODULE_PATH = 'taiga.base.formats'
|
FORMAT_MODULE_PATH = "taiga.base.formats"
|
||||||
DATE_INPUT_FORMATS = (
|
DATE_INPUT_FORMATS = (
|
||||||
'%Y-%m-%d', '%m/%d/%Y', '%d/%m/%Y', '%b %d %Y',
|
"%Y-%m-%d", "%m/%d/%Y", "%d/%m/%Y", "%b %d %Y",
|
||||||
'%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y',
|
"%b %d, %Y", "%d %b %Y", "%d %b, %Y", "%B %d %Y",
|
||||||
'%B %d, %Y', '%d %B %Y', '%d %B, %Y'
|
"%B %d, %Y", "%d %B %Y", "%d %B, %Y"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Authentication settings (only for django admin)
|
||||||
AUTHENTICATION_BACKENDS = (
|
AUTHENTICATION_BACKENDS = (
|
||||||
'django.contrib.auth.backends.ModelBackend', # default
|
"django.contrib.auth.backends.ModelBackend", # default
|
||||||
)
|
)
|
||||||
|
|
||||||
ANONYMOUS_USER_ID = -1
|
ANONYMOUS_USER_ID = -1
|
||||||
|
GRAPPELLI_INDEX_DASHBOARD = "taiga.dashboard.CustomIndexDashboard"
|
||||||
GRAPPELLI_INDEX_DASHBOARD = 'taiga.dashboard.CustomIndexDashboard'
|
|
||||||
|
|
||||||
MAX_SEARCH_RESULTS = 100
|
MAX_SEARCH_RESULTS = 100
|
||||||
|
|
||||||
|
# FIXME: this seems not be used by any module
|
||||||
|
API_LIMIT_PER_PAGE = 0
|
||||||
|
|
||||||
REST_FRAMEWORK = {
|
REST_FRAMEWORK = {
|
||||||
'DEFAULT_AUTHENTICATION_CLASSES': (
|
"DEFAULT_AUTHENTICATION_CLASSES": (
|
||||||
'taiga.base.auth.Token',
|
# Mainly used by taiga-front
|
||||||
'taiga.base.auth.Session',
|
"taiga.base.auth.Token",
|
||||||
|
|
||||||
|
# Mainly used for api debug.
|
||||||
|
"taiga.base.auth.Session",
|
||||||
),
|
),
|
||||||
'FILTER_BACKEND': 'taiga.base.filters.FilterBackend',
|
"FILTER_BACKEND": "taiga.base.filters.FilterBackend",
|
||||||
'EXCEPTION_HANDLER': 'taiga.base.exceptions.exception_handler',
|
"EXCEPTION_HANDLER": "taiga.base.exceptions.exception_handler",
|
||||||
'PAGINATE_BY': 30,
|
"PAGINATE_BY": 30,
|
||||||
'MAX_PAGINATE_BY': 1000,
|
"MAX_PAGINATE_BY": 1000,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -306,7 +281,7 @@ REST_FRAMEWORK = {
|
||||||
TEST_RUNNER="django.test.runner.DiscoverRunner"
|
TEST_RUNNER="django.test.runner.DiscoverRunner"
|
||||||
|
|
||||||
# Test conditions
|
# Test conditions
|
||||||
if 'test' in sys.argv:
|
if "test" in sys.argv:
|
||||||
if "settings" not in ",".join(sys.argv):
|
if "settings" not in ",".join(sys.argv):
|
||||||
print ("\033[1;91mNot settings specified.\033[0m")
|
print ("\033[1;91mNot settings specified.\033[0m")
|
||||||
print ("Try: \033[1;33mpython manage.py test --settings="
|
print ("Try: \033[1;33mpython manage.py test --settings="
|
||||||
|
|
Loading…
Reference in New Issue