settings.py 5.56 KB
Newer Older
1
# -*- mode: python; coding: utf-8 -*-
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
# Re2o est un logiciel d'administration développé initiallement au rezometz. Il
# se veut agnostique au réseau considéré, de manière à être installable en
# quelques clics.
#
# Copyright © 2017  Gabriel Détraz
# Copyright © 2017  Goulven Kermarec
# Copyright © 2017  Augustin Lemesle
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

chirac's avatar
chirac committed
24 25 26 27 28 29 30 31 32 33 34 35
"""
Django settings for re2o project.

Generated by 'django-admin startproject' using Django 1.8.13.

For more information on this file, see
https://docs.djangoproject.com/en/1.8/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.8/ref/settings/
"""

36 37
from __future__ import unicode_literals

chirac's avatar
chirac committed
38
import os
Gabriel Detraz's avatar
Gabriel Detraz committed
39
from .settings_local import *
Maël Kervella's avatar
Maël Kervella committed
40
from django.utils.translation import ugettext_lazy as _
chirac's avatar
chirac committed
41

42 43
# The root directory for the project
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
chirac's avatar
chirac committed
44 45
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

46 47 48 49 50
# Auth definition
PASSWORD_HASHERS = (
    're2o.login.SSHAPasswordHasher',
    'django.contrib.auth.hashers.PBKDF2PasswordHasher',
)
51 52 53
AUTH_USER_MODEL = 'users.User'  # The class to use for authentication
LOGIN_URL = '/login/'           # The URL for login page
LOGIN_REDIRECT_URL = '/'        # The URL for redirecting after login
54

chirac's avatar
chirac committed
55
# Application definition
56
DJANGO_CONTRIB_APPS = (
chirac's avatar
chirac committed
57 58 59 60 61 62
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
63 64
)
EXTERNAL_CONTRIB_APPS = (
chirac's avatar
chirac committed
65
    'bootstrap3',
66 67 68 69
    'rest_framework',
    'reversion',
)
LOCAL_APPS = (
chirac's avatar
chirac committed
70 71 72 73 74
    'users',
    'machines',
    'cotisations',
    'topologie',
    'search',
chirac's avatar
chirac committed
75
    're2o',
76
    'preferences',
chirac's avatar
chirac committed
77
    'logs',
78 79 80 81 82 83 84 85
    'api',
)
INSTALLED_APPS = (
    DJANGO_CONTRIB_APPS +
    EXTERNAL_CONTRIB_APPS +
    LOCAL_APPS +
    OPTIONNAL_APPS
)
chirac's avatar
chirac committed
86 87
MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
88
    'django.middleware.locale.LocaleMiddleware',
chirac's avatar
chirac committed
89 90 91 92 93 94 95
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.security.SecurityMiddleware',
96
    'reversion.middleware.RevisionMiddleware',
chirac's avatar
chirac committed
97 98
)

99
# The root url module to define the project URLs
chirac's avatar
chirac committed
100 101
ROOT_URLCONF = 're2o.urls'

102
# The templates configuration (see Django documentation)
chirac's avatar
chirac committed
103 104 105 106
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
107 108 109
            # Use only absolute paths with '/' delimiters even on Windows
            os.path.join(BASE_DIR, 'templates').replace('\\', '/'),
        ],
chirac's avatar
chirac committed
110 111 112 113 114 115 116
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
117
                'django.template.context_processors.request',
118
                're2o.context_processors.context_user',
chirac's avatar
chirac committed
119 120 121 122 123
            ],
        },
    },
]

124
# The WSGI module to use in a server environment
chirac's avatar
chirac committed
125 126 127 128
WSGI_APPLICATION = 're2o.wsgi.application'

# Internationalization
# https://docs.djangoproject.com/en/1.8/topics/i18n/
129
LANGUAGE_CODE = 'en'
130 131
USE_I18N = True
USE_L10N = True
132 133
# Proritary location search for translations
# then searches in {app}/locale/ for app in INSTALLED_APPS
134
# Use only absolute paths with '/' delimiters even on Windows
135
LOCALE_PATHS = [
136 137
    # For translations outside of apps
    os.path.join(BASE_DIR, 'templates', 'locale').replace('\\', '/')
138
]
Maël Kervella's avatar
Maël Kervella committed
139 140 141 142
LANGUAGES = [
    ('en', _('English')),
    ('fr', _('French'))
]
143

144
# Should use time zone ?
chirac's avatar
chirac committed
145 146
USE_TZ = True

147
# Router config for database
148 149
DATABASE_ROUTERS = ['ldapdb.router.Router']

150
# django-bootstrap3 config
chirac's avatar
chirac committed
151
BOOTSTRAP3 = {
152 153 154 155
    'jquery_url': '/static/js/jquery-2.2.4.min.js',
    'base_url': '/static/bootstrap/',
    'include_jquery': True,
}
chirac's avatar
chirac committed
156 157
BOOTSTRAP_BASE_URL = '/static/bootstrap/'

158 159
# Directories where collectstatic should look for static files
# Use only absolute paths with '/' delimiters even on Windows
chirac's avatar
chirac committed
160
STATICFILES_DIRS = (
161
    os.path.join(BASE_DIR, 'static').replace('\\', '/'),
162
    os.path.join(BASE_DIR, 'javascript').replace('\\', '/'),
chirac's avatar
chirac committed
163
)
164
# Directory where the static files served by the server are stored
165
STATIC_ROOT = os.path.join(BASE_DIR, 'static_files')
166 167
# The URL to access the static files
STATIC_URL = '/static/'
168
# Directory where the media files served by the server are stored
169
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')
170 171
# The URL to access the static files
MEDIA_URL = '/media/'
172

173
# Models to use for graphs
174
GRAPH_MODELS = {
175 176
    'all_applications': True,
    'group_models': True,
177
}