Projet

Général

Profil

Télécharger (11,7 ko) Statistiques
| Branche: | Tag: | Révision:

calebasse / calebasse / settings.py @ a01d85be

1
# -*- coding: utf-8 -*-
2

    
3
# Django settings for calebasse project.
4

    
5
import os
6
from logging.handlers import SysLogHandler
7

    
8
PROJECT_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'calebasse')
9

    
10
DEBUG = True
11
TEMPLATE_DEBUG = True
12

    
13
ADMINS = (
14
    # ('Your Name', 'your_email@example.com'),
15
)
16

    
17
MANAGERS = ADMINS
18

    
19
DATABASES = {
20
    'default': {
21
        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
22
        'NAME': os.path.join(PROJECT_PATH, 'calebasse.sqlite3'),                      # Or path to database file if using sqlite3.
23
        'USER': '',                      # Not used with sqlite3.
24
        'PASSWORD': '',                  # Not used with sqlite3.
25
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
26
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
27
    }
28
}
29

    
30
# Local time zone for this installation. Choices can be found here:
31
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
32
# although not all choices may be available on all operating systems.
33
# On Unix systems, a value of None will cause Django to use the same
34
# timezone as the operating system.
35
# If running in a Windows environment this must be set to the same as your
36
# system time zone.
37
TIME_ZONE = 'Europe/Paris'
38

    
39
# Language code for this installation. All choices can be found here:
40
# http://www.i18nguy.com/unicode/language-identifiers.html
41
LANGUAGE_CODE = 'fr-fr'
42

    
43
SITE_ID = 1
44

    
45
# If you set this to False, Django will make some optimizations so as not
46
# to load the internationalization machinery.
47
USE_I18N = True
48

    
49
# If you set this to False, Django will not format dates, numbers and
50
# calendars according to the current locale.
51
USE_L10N = True
52
FORMAT_MODULE_PATH = 'calebasse.formats'
53

    
54
# If you set this to False, Django will not use timezone-aware datetimes.
55
USE_TZ = False
56

    
57
# Absolute filesystem path to the directory that will hold user-uploaded files.
58
# Example: "/home/media/media.lawrence.com/media/"
59
MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media')
60

    
61
# URL that handles the media served from MEDIA_ROOT. Make sure to use a
62
# trailing slash.
63
# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
64
MEDIA_URL = '/media/'
65

    
66
# Absolute path to the directory static files should be collected to.
67
# Don't put anything in this directory yourself; store your static files
68
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
69
# Example: "/home/media/media.lawrence.com/static/"
70
STATIC_ROOT = os.path.join(os.path.join(PROJECT_PATH, '..'), 'static')
71

    
72
# URL prefix for static files.
73
# Example: "http://media.lawrence.com/static/"
74
STATIC_URL = '/static/'
75

    
76
# Additional locations of static files
77
STATICFILES_DIRS = (
78
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
79
    # Always use forward slashes, even on Windows.
80
    # Don't forget to use absolute paths, not relative paths.
81
    os.path.join(PROJECT_PATH, 'static'),
82
)
83

    
84
# List of finder classes that know how to find static files in
85
# various locations.
86
STATICFILES_FINDERS = (
87
    'django.contrib.staticfiles.finders.FileSystemFinder',
88
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
89
#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
90
)
91

    
92
# Make this unique, and don't share it with anybody.
93
SECRET_KEY = 'ct(a@ny^_)8v-^)jkdzbktqg6ajfn6y!zdjum^(f_o!h0jeotq'
94

    
95
# List of callables that know how to import templates from various sources.
96
TEMPLATE_LOADERS = (
97
    'django.template.loaders.filesystem.Loader',
98
    'django.template.loaders.app_directories.Loader',
99
#     'django.template.loaders.eggs.Loader',
100
)
101

    
102
MIDDLEWARE_CLASSES = (
103
    'django.middleware.common.CommonMiddleware',
104
    'django.contrib.sessions.middleware.SessionMiddleware',
105
    'django.middleware.csrf.CsrfViewMiddleware',
106
    'django.contrib.auth.middleware.AuthenticationMiddleware',
107
    'django.contrib.messages.middleware.MessageMiddleware',
108
    #'debug_toolbar.middleware.DebugToolbarMiddleware',
109
    'calebasse.middleware.request.GlobalRequestMiddleware',
110
    # Uncomment the next line for simple clickjacking protection:
111
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
112
    'django.middleware.transaction.TransactionMiddleware',
113
    'reversion.middleware.RevisionMiddleware',
114
    # Entr'ouvert wsgi middleware to expose version
115
    'entrouvert.djommon.middleware.VersionMiddleware',
116
    'django_journal.middleware.JournalMiddleware',
117
)
118

    
119
ROOT_URLCONF = 'calebasse.urls'
120

    
121
# Python dotted path to the WSGI application used by Django's runserver.
122
WSGI_APPLICATION = 'calebasse.wsgi.application'
123

    
124
TEMPLATE_DIRS = (
125
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
126
    # Always use forward slashes, even on Windows.
127
    # Don't forget to use absolute paths, not relative paths.
128
    os.path.join(PROJECT_PATH, "templates")
129
)
130

    
131
TEMPLATE_CONTEXT_PROCESSORS = ("django.contrib.auth.context_processors.auth",
132
    "django.core.context_processors.debug",
133
    "django.core.context_processors.i18n",
134
    "django.core.context_processors.media",
135
    "django.core.context_processors.static",
136
    "django.core.context_processors.tz",
137
    "django.core.context_processors.request",
138
    "django.contrib.messages.context_processors.messages")
139

    
140
FIXTURE_DIRS = (
141
        os.path.join(PROJECT_PATH, 'fixtures'),
142
)
143

    
144
INSTALLED_APPS = (
145
    'django.contrib.auth',
146
    'django.contrib.contenttypes',
147
    'django.contrib.sessions',
148
    'django.contrib.sites',
149
    'django.contrib.messages',
150
    'django.contrib.staticfiles',
151
    'reversion',
152
    'south',
153
    'django.contrib.admin',
154
    'ajax_select',
155
    'django_select2',
156
    #'debug_toolbar',
157
    'widget_tweaks',
158
    # Uncomment the next line to enable admin documentation:
159
    # 'django.contrib.admindocs',
160
    'calebasse.agenda',
161
    'calebasse.dossiers',
162
    'calebasse.actes',
163
    'calebasse.facturation',
164
    'calebasse.personnes',
165
    'calebasse.ressources',
166
    'calebasse.statistics',
167
    'calebasse.middleware.request',
168
    'south',
169
    'django_journal',
170
)
171

    
172
INTERNAL_IPS=('127.0.0.1',)
173
DEBUG_TOOLBAR_CONFIG = {
174
    'INTERCEPT_REDIRECTS': False,
175
}
176

    
177
# A sample logging configuration. The only tangible logging
178
# performed by this configuration is to send an email to
179
# the site admins on every HTTP 500 error when DEBUG=False.
180
# See http://docs.djangoproject.com/en/dev/topics/logging for
181
# more details on how to customize your logging configuration.
182
LOGGING = {
183
    'version': 1,
184
    'disable_existing_loggers': True,
185
    'filters': {
186
        'require_debug_false': {
187
            '()': 'django.utils.log.RequireDebugFalse'
188
        },
189
    },
190
    'formatters': {
191
        'verbose': {
192
            'format': '[%(asctime)s] %(levelname)-8s %(name)s.%(message)s',
193
            'datefmt': '%Y-%m-%d %a %H:%M:%S'
194
        },
195
        'syslog': {
196
            'format': 'calebasse (pid=%(process)d) %(levelname)s %(name)s: %(message)s',
197
        },
198
    },
199
    'handlers': {
200
        'mail_admins': {
201
            'level': 'ERROR',
202
            'filters': ['require_debug_false'],
203
            'class': 'django.utils.log.AdminEmailHandler'
204
        },
205
        'console': {
206
            'level':'INFO',
207
            'class':'logging.StreamHandler',
208
            'formatter': 'verbose',
209
        },
210
        'syslog': {
211
            'level': 'DEBUG',
212
            'class': 'entrouvert.logging.handlers.SysLogHandler',
213
            'formatter': 'syslog',
214
            'facility': SysLogHandler.LOG_LOCAL0,
215
            'address': '/dev/log',
216
            'max_length': 999,
217
        },
218
    },
219
    'loggers': {
220
        'django.db.backends': {
221
            'level': 'ERROR',
222
            'handlers': ['console'],
223
            'propagate': False,
224
        },
225
        '': {
226
            'handlers': ['syslog'],
227
            'level': 'DEBUG' if DEBUG else 'INFO',
228
            'propagate': True,
229
        }
230
    },
231
}
232

    
233
# AJAX Select
234
AJAX_LOOKUP_CHANNELS = {
235
    #   pass a dict with the model and the field to search against
236
    'worker' : ('calebasse.personnes.lookup', 'WorkerLookup'),
237
    'intervenant' : ('calebasse.personnes.lookup', 'IntervenantLookup'),
238
    #'patientrecord'  : {'model':'dossiers.PatientRecord', 'search_field':'display_name'}
239
    #'coordinators'  : {'model':'dossiers.PatientRecord', 'search_field':'display_name'}
240
    'patientrecord' : ('calebasse.dossiers.lookups', 'PatientRecordLookup'),
241
    #'school' : {'model':'ressources.School', 'search_field':'name'},
242
    'school' : ('calebasse.ressources.lookups', 'SchoolLookup'),
243
    'addresses' : ('calebasse.dossiers.lookups', 'PatientAddressLookup'),
244
    'worker-or-group' : ('calebasse.ressources.lookups', 'WorkerOrGroupLookup'),
245
    'all-worker-or-group' : ('calebasse.ressources.lookups', 'AllWorkerOrGroupLookup'),
246
}
247

    
248
# Default URL after login
249
LOGIN_REDIRECT_URL = '/'
250

    
251
# Sentry / raven configuration
252
# You need to overload this option in the local_settings.py
253
RAVEN_CONFIG = None
254

    
255
# Base directory for generated patient files
256
PATIENT_FILES_BASE_DIRECTORY = None
257

    
258
# Client side base directory for generated patient files
259
CLIENT_SIDE_PATIENT_FILES_BASE_DIRECTORY =  None
260

    
261
# Patient subdirectories
262
PATIENT_SUBDIRECTORIES = (
263
    u'Assistante sociale',
264
    u'Consultation',
265
    u'Courriers',
266
    u'Demande',
267
    u'Demandes prises en charge',
268
    u'Educateur spécialisé',
269
    u'Ergothérapie',
270
    u'Groupe',
271
    u'Kinésithérapie',
272
    u'Logico-mathématiques',
273
    u'Neuro-psychologie',
274
    u'Orientation',
275
    u'Orthophonie',
276
    u'Psychologie',
277
    u'Psychomotricité',
278
    u'Psychopédagogue',
279
    u'Synthèses',
280
    u'TCC',
281
)
282

    
283
# RTF templates directory
284
RTF_TEMPLATES_DIRECTORY = None
285
# Use patient home dictrory for RTF files generated
286
# PATIENT_FILES_BASE_DIRECTORY must be set to work
287
USE_PATIENT_FILE_RTF_REPOSITORY_DIRECTORY = False
288
# RTF files generated directory
289
RTF_REPOSITORY_DIRECTORY = None
290

    
291
# Invoicing file saving directory
292
INVOICING_DIRECTORY = None
293

    
294
#CSV_ENCODING = 'cp1252' #For windows : windows-1252/Winlatin1
295
#CSVPROFILE = {\
296
#    'delimiter' : ';',
297
#    'quotechar' : '"',
298
#    'doublequote' : True
299
#    'skipinitialspace' : False
300
#    'lineterminator' : '\r\n'
301
#    'quoting' : csv.QUOTE_MINIMAL
302
#}
303

    
304
# IRIS/B2 transmission
305
# B2_TRANSMISSION = {
306
#    'output_directory': '/var/lib/calebasse/B2/',
307
#    # B2 informations
308
#    'nom': 'CMPP FOOBAR',                      # mandatory
309
#    'numero_emetteur': '123456789',            # mandatory
310
#    'norme': 'CP  ',
311
#    'type_emetteur': 'TE',
312
#    'application': 'TR',
313
#    'categorie': '189',
314
#    'statut': '60',
315
#    'mode_tarif': '05',
316
#    'message': 'ENTROUVERT 0143350135 CALEBASSE 1307',
317
#    # SMTP configuration
318
#    'smtp_from': 'transmission@domain.net',    # mandatory
319
#    'smtp_host': '127.0.0.1',
320
#    'smtp_port': 25,
321
#    'smtp_login': '',
322
#    'smtp_password': '',
323
#    # delay between two mails, in seconds, or None
324
#    'smtp_delay': None,
325
# }
326

    
327
try:
328
    from local_settings import *
329
except ImportError:
330
    print """
331
    -------------------------------------------------------------------------
332
    You need to create a local_settings.py file which needs to contain at least
333
    database connection information.
334

    
335
    Copy local_settings_example.py to local_settings.py and edit it.
336
    -------------------------------------------------------------------------
337
    """
338
    import sys
339
    sys.exit(1)
340

    
341
if RAVEN_CONFIG:
342
    INSTALLED_APPS += ('raven.contrib.django.raven_compat', )
343
    LOGGING['handlers']['sentry'] = {
344
            'level': 'ERROR',
345
            'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler',
346
            }
347
    LOGGING['loggers']['raven'] = {
348
            'level': 'DEBUG',
349
            'handlers': ['console'],
350
            'propagate': False,
351
            }
352
    LOGGING['loggers']['sentry.errors'] = {
353
            'level': 'DEBUG',
354
            'handlers': ['console'],
355
            'propagate': False,
356
            }
357
    LOGGING['loggers']['']['handlers'].append('sentry')
(12-12/17)