Commit | Line | Data |
---|---|---|
5e23d90d OL |
1 | # -*- encoding: utf-8 -*- |
2 | ||
3 | import os | |
4 | import socket | |
294866db | 5 | from project.conf import * # NOQA |
31e71fb6 | 6 | from project.groups import DRH_NIVEAU_1, DRH_NIVEAU_2 |
75f0e87b | 7 | |
a16928b9 | 8 | PROJET_TITRE = "Ressources humaines" |
3a2f12b2 | 9 | |
5e23d90d | 10 | # Rapports d'erreurs |
80b95abf | 11 | SERVER_EMAIL = 'ne-pas-repondre@auf.org' |
5e23d90d | 12 | EMAIL_SUBJECT_PREFIX = '[auf_rh_dae - %s] ' % socket.gethostname() |
a6197482 | 13 | ADMINS = () |
5e23d90d OL |
14 | |
15 | MANAGERS = ADMINS | |
16 | ||
1ea6b6e6 | 17 | TIME_ZONE = 'America/Montreal' |
21b8a2de EMS |
18 | LANGUAGE_CODE = 'fr' |
19 | FORMAT_MODULE_PATH = 'project.formats' | |
20 | USE_L10N = True | |
af87da19 | 21 | USE_THOUSAND_SEPARATOR = False |
a25e1d5c | 22 | DATE_FORMAT = 'd-m-Y' |
5e8b78d9 | 23 | DATE_INPUT_FORMATS = ('%d-%m-%Y', ) |
a25e1d5c | 24 | |
920f297c JPC |
25 | SESSION_SAVE_EVERY_REQUEST = True |
26 | SESSION_EXPIRE_AT_BROWSER_CLOSE = True | |
27 | ||
b1b7cca2 OL |
28 | PROJECT_ROOT = os.path.dirname(__file__) |
29 | SITE_ROOT = os.path.dirname(PROJECT_ROOT) | |
30 | ||
5e23d90d OL |
31 | # Absolute path to the directory that holds media. |
32 | # Example: "/home/media/media.lawrence.com/" | |
b1b7cca2 OL |
33 | MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'media') |
34 | PRIVE_MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'media_prive') | |
5e23d90d | 35 | |
63f8af95 | 36 | STATICFILES_DIRS = ( |
b1b7cca2 | 37 | os.path.join(PROJECT_ROOT, 'assets'), |
63f8af95 | 38 | ) |
b1b7cca2 | 39 | STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static') |
63f8af95 OL |
40 | STATIC_URL = '/static/' |
41 | ||
5e23d90d OL |
42 | # URL that handles the media served from MEDIA_ROOT. Make sure to use a |
43 | # trailing slash if there is a path component (optional in other cases). | |
44 | # Examples: "http://media.lawrence.com", "http://example.com/media/" | |
45 | MEDIA_URL = '/media/' | |
5be60939 | 46 | PRIVE_MEDIA_URL = '/prive/' |
7f25c8a6 | 47 | OE_PRIVE_MEDIA_URL = '/recrutement/prive/' |
36341125 | 48 | |
5e23d90d OL |
49 | # URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a |
50 | # trailing slash. | |
51 | # Examples: "http://foo.com/media/", "/media/". | |
63f8af95 | 52 | #ADMIN_MEDIA_PREFIX = '/media/django/' |
5e23d90d OL |
53 | |
54 | # Don't share this with anybody. | |
55 | SECRET_KEY = '^2w#%abp_d+e#(7f5w$leef50)c@4y38cnn#ccji@84$2^rt#l' | |
56 | ||
57 | MIDDLEWARE_CLASSES = ( | |
58 | 'django.middleware.common.CommonMiddleware', | |
59 | 'django.contrib.sessions.middleware.SessionMiddleware', | |
9cb4de55 | 60 | 'django.contrib.messages.middleware.MessageMiddleware', |
5e23d90d | 61 | 'django.contrib.auth.middleware.AuthenticationMiddleware', |
b1b7cca2 | 62 | 'auf.django.saml.middleware.SPMiddleware', |
45ab9f14 | 63 | 'auf.django.piwik.middleware.TrackMiddleware', |
5e23d90d | 64 | 'django.middleware.doc.XViewMiddleware', |
17353922 | 65 | 'reversion.middleware.RevisionMiddleware', |
5e23d90d OL |
66 | ) |
67 | ||
68 | ROOT_URLCONF = 'project.urls' | |
69 | ||
5e23d90d OL |
70 | INSTALLED_APPS = ( |
71 | 'auf.django.skin', | |
bf6f2712 | 72 | 'auf.django.references', |
0c104342 DB |
73 | 'auf.django.emploi', |
74 | 'auf.django.admingroup', | |
75 | 'auf.django.workflow', | |
76 | 'auf.django.permissions', | |
77 | 'auf.django.emploi', | |
b1b7cca2 | 78 | 'auf.django.saml', |
bdbc1f13 | 79 | 'auf.django.export', |
5e23d90d OL |
80 | 'admin_tools', |
81 | 'admin_tools.theming', | |
82 | 'admin_tools.menu', | |
83 | 'admin_tools.dashboard', | |
fc62be5d | 84 | 'django.contrib.admin', |
5e23d90d OL |
85 | 'django.contrib.auth', |
86 | 'django.contrib.contenttypes', | |
fc62be5d | 87 | 'django.contrib.humanize', |
9cb4de55 | 88 | 'django.contrib.messages', |
5e23d90d | 89 | 'django.contrib.sessions', |
63f8af95 | 90 | 'django.contrib.staticfiles', |
a194e017 | 91 | 'django_qbe', |
3121c13c | 92 | 'ajax_select', |
5e23d90d | 93 | 'south', |
debe5209 | 94 | 'raven.contrib.django', |
17353922 | 95 | 'reversion', |
7ffc5aa4 | 96 | 'alphafilter', |
8ea41642 | 97 | 'form_utils', |
ec517164 | 98 | 'tinymce', |
86caaf03 | 99 | 'captcha', |
0c104342 DB |
100 | 'project.rh', |
101 | 'project.dae', | |
102 | 'project.recrutement', | |
5e23d90d OL |
103 | ) |
104 | ||
105 | TEMPLATE_CONTEXT_PROCESSORS = ( | |
4229d916 | 106 | 'django.contrib.auth.context_processors.auth', |
5e23d90d OL |
107 | 'django.core.context_processors.debug', |
108 | 'django.core.context_processors.i18n', | |
109 | 'django.core.context_processors.media', | |
63f8af95 | 110 | 'django.core.context_processors.static', |
5e23d90d OL |
111 | 'django.contrib.messages.context_processors.messages', |
112 | 'django.core.context_processors.request', | |
113 | 'auf.django.skin.context_processors.auf', | |
ef71b858 | 114 | 'project.dae.context_processors.user_in_dae_groupes', |
5e23d90d OL |
115 | ) |
116 | ||
8846b99e | 117 | AUTHENTICATION_BACKENDS = ( |
b1b7cca2 | 118 | 'auf.django.saml.backends.SPBackend', |
c3f0b49f | 119 | 'auf.django.permissions.backends.AuthenticationBackend', |
8846b99e | 120 | ) |
5e23d90d | 121 | |
5e23d90d OL |
122 | TEMPLATE_DIRS = ( |
123 | os.path.join(os.path.dirname(__file__), "templates"), | |
124 | ) | |
125 | ||
126 | ||
8846b99e | 127 | ADMIN_TOOLS_INDEX_DASHBOARD = 'project.dashboard.CustomIndexDashboard' |
7f43054e | 128 | ADMIN_TOOLS_APP_INDEX_DASHBOARD = 'project.dashboard.CustomAppIndexDashboard' |
6f38ca31 | 129 | ADMIN_TOOLS_MENU = 'project.menu.CustomMenu' |
3121c13c OL |
130 | |
131 | AJAX_LOOKUP_CHANNELS = { | |
294866db | 132 | 'responsables': ('project.dae.catalogues', 'Responsable'), |
05f7e241 | 133 | 'dae_dossiers': ('project.dae.catalogues', 'Dossier'), |
294866db EMS |
134 | 'dae_postes': ('project.dae.catalogues', 'Poste'), |
135 | 'pays': ('project.rh.catalogues', 'Pays'), | |
136 | 'implantations': ('project.rh.catalogues', 'Implantation'), | |
137 | 'typepostes': ('project.rh.catalogues', 'TypePoste'), | |
138 | 'postes': ('project.rh.catalogues', 'Poste'), | |
139 | 'valeurpoints': ('project.rh.catalogues', 'ValeurPoint'), | |
140 | 'employes': ('project.rh.catalogues', 'Employe'), | |
141 | 'dossiers': ('project.rh.catalogues', 'Dossier'), | |
3121c13c | 142 | } |
105dd778 OL |
143 | AJAX_SELECT_INLINES = 'inline' |
144 | ||
8ea41642 | 145 | |
ec517164 | 146 | TINYMCE_DEFAULT_CONFIG = { |
294866db EMS |
147 | 'theme': "advanced", |
148 | 'plugins': "paste", | |
149 | 'theme_advanced_buttons1': ( | |
150 | "bold,italic,underline,|,formatselect,|,bullist,numlist,|,undo,redo,|," | |
151 | "link,unlink" | |
152 | ), | |
153 | 'theme_advanced_buttons2': "", | |
154 | 'theme_advanced_buttons3': "", | |
155 | 'theme_advanced_statusbar_location': "bottom", | |
156 | 'theme_advanced_toolbar_align': "left", | |
157 | 'theme_advanced_styles': "Titre=titre;Sous-titre=sous-titre;Normal=normal", | |
158 | 'width': "800", | |
159 | 'height': "200", | |
160 | 'theme_advanced_resizing': "true", | |
161 | 'custom_undo_redo_levels': 10, | |
162 | 'theme_advanced_toolbar_location': 'top', | |
163 | 'inline_styles': 'false', | |
164 | 'paste_use_dialog': 'false', | |
165 | 'paste_auto_cleanup_on_paste': 'true', | |
166 | 'paste_convert_headers_to_strong': 'false', | |
167 | 'paste_strip_class_attributes': 'all', | |
168 | 'paste_remove_spans': 'true', | |
169 | 'paste_remove_styles': 'true', | |
170 | 'content_css': '/media/css/tinymce.css', | |
ec517164 | 171 | } |
34dad720 EMS |
172 | |
173 | # django-sendfile | |
34dad720 | 174 | SENDFILE_BACKEND = 'sendfile.backends.simple' |
361d53e1 PP |
175 | |
176 | QBE_DISPLAY_DATABASES = False | |
ddf236b3 PP |
177 | |
178 | # Il est *très* important de respecter la case. | |
179 | QBE_CUSTOM_MODELS = {'Rh': { | |
180 | 'Employe': {}, | |
181 | 'Poste': {}, | |
182 | 'Dossier': {}, | |
183 | 'Remuneration': {}, | |
184 | 'Contrat': {}, | |
185 | }} | |
972e7cf1 PP |
186 | |
187 | QBE_ALLOWED_FIELDS = {'Rh': { | |
294866db EMS |
188 | 'Employe': [ |
189 | 'nom', 'prenom', 'genre', 'date_naissance', 'situation_familiale', | |
190 | 'date_entree' | |
191 | ], | |
972e7cf1 | 192 | 'Poste': ['nom', 'date_debut', 'date_fin'], |
294866db EMS |
193 | 'Dossier': [ |
194 | 'statut_residence', 'regime_travail', | |
195 | 'regime_travail_nb_heure_semaine', 'date_debut', 'date_fin' | |
196 | ], | |
972e7cf1 PP |
197 | 'Remuneration': ['montant', 'date_debut', 'date_fin'], |
198 | 'Contrat': ['date_debut', 'date_fin'], | |
199 | }} | |
82c5e37d | 200 | |
d7bf0cd3 | 201 | SOUTH_TESTS_MIGRATE = False |
a6197482 OL |
202 | |
203 | LOGGING = { | |
204 | 'version': 1, | |
205 | 'disable_existing_loggers': True, | |
206 | 'root': { | |
207 | 'level': 'WARNING', | |
208 | 'handlers': ['sentry'], | |
209 | }, | |
210 | 'formatters': { | |
211 | 'verbose': { | |
212 | 'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s' | |
213 | }, | |
214 | }, | |
215 | 'handlers': { | |
216 | 'sentry': { | |
217 | 'level': 'WARNING', | |
218 | 'class': 'raven.contrib.django.handlers.SentryHandler', | |
219 | }, | |
220 | 'console': { | |
221 | 'level': 'DEBUG', | |
222 | 'class': 'logging.StreamHandler', | |
223 | 'formatter': 'verbose' | |
224 | } | |
225 | }, | |
226 | 'loggers': { | |
227 | 'django.db.backends': { | |
228 | 'level': 'ERROR', | |
229 | 'handlers': ['console'], | |
230 | 'propagate': False, | |
231 | }, | |
232 | 'raven': { | |
233 | 'level': 'DEBUG', | |
234 | 'handlers': ['console'], | |
235 | 'propagate': False, | |
236 | }, | |
237 | 'sentry.errors': { | |
238 | 'level': 'DEBUG', | |
239 | 'handlers': ['console'], | |
240 | 'propagate': False, | |
241 | }, | |
242 | }, | |
243 | } | |
31e71fb6 OL |
244 | |
245 | # Pour accéder aux requêtes savegardées, il faut définir les permissions dans | |
246 | # l'admin | |
247 | def qbe_access(user): | |
248 | grps_user = [g.name for g in user.groups.all()] | |
249 | inter = [g for g in grps_user if g in (DRH_NIVEAU_1, DRH_NIVEAU_2, )] | |
250 | return len(inter) > 0 | |
251 | QBE_ACCESS_FOR = qbe_access |