source: seiven/seiven/settings.py @ 58769c7

carga
Last change on this file since 58769c7 was 069328a, checked in by Ing. Roldan D. Vargas G <rvargas@…>, 8 años ago

agregado logger economico

  • Propiedad mode establecida a 100644
File size: 9.8 KB
Línea 
1"""
2Sistema Estadístico Integral de Venezuela - (SEIVEN)
3
4Copyleft (@) 2015 CENDITEL nodo Mérida - https://mpv.cenditel.gob.ve/seiven
5"""
6## @package seiven.settings
7#
8# Configuración de funcionalidades y parámetros del sistema
9# @author Generated by 'django-admin startproject' using Django 1.9.7
10# @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
11# @author <a href='http://www.cenditel.gob.ve'>Centro Nacional de Desarrollo e Investigación en Tecnologías Libres
12# (CENDITEL) nodo Mérida - Venezuela</a>
13# @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
14# @version 1.0.0
15from __future__ import unicode_literals
16
17from .database_config import DATABASES_CONFIG
18
19import os
20
21## Directorio base desde donde se encuentra ejecutando la aplicación
22BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
23
24## Número de versión de la aplicación
25VERSION = '1.0.0'
26
27# SECURITY WARNING: keep the secret key used in production secret!
28SECRET_KEY = '$#iabgq1k!v$$-a*3$tp)l)c!jr-bnyk(2-q!isylwtpnksbsv'
29
30## Identifica si el sistema se encuentra en modo de desarrollo (True) o en modo producción (False)
31DEBUG = True
32
33## Identifica a los servidores permitidos que atienden las peticiones del sistema
34ALLOWED_HOSTS = ['localhost']
35
36## Identifica a los administradores del sistema
37ADMINS = []
38
39## Listado de aplicaciones base del sistema
40PREREQ_APPS = [
41    'django.contrib.admin',
42    'django.contrib.auth',
43    'django.contrib.contenttypes',
44    'django.contrib.sessions',
45    'django.contrib.messages',
46    'django.contrib.staticfiles',
47    'captcha',
48]
49
50if DEBUG:
51    ## Aplicaciones requeridas para entornos de desarrollo
52    PREREQ_APPS += [
53        'django_extensions',
54        'debug_toolbar',
55        'sslserver', # Aplicación para ejecutar un servidor de desarrollo bajo el protocolo https
56    ]
57
58    ## Configuracion de parametros de django-debug-toolbar
59    JQUERY_URL = ''
60
61## Listado de aplicaciones del projecto
62PROJECT_APPS = [
63    'base',
64    'usuario'
65]
66
67## Listado de aplicaciones cargadas por el sistema
68INSTALLED_APPS = PREREQ_APPS + PROJECT_APPS
69
70
71MIDDLEWARE_CLASSES = [
72    'django.middleware.security.SecurityMiddleware',
73    'django.contrib.sessions.middleware.SessionMiddleware',
74    'django.middleware.locale.LocaleMiddleware',
75    'django.middleware.common.CommonMiddleware',
76    'django.middleware.csrf.CsrfViewMiddleware',
77    'django.contrib.auth.middleware.AuthenticationMiddleware',
78    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
79    'django.contrib.messages.middleware.MessageMiddleware',
80    'django.middleware.clickjacking.XFrameOptionsMiddleware',
81]
82
83if DEBUG:
84    MIDDLEWARE_CLASSES += [
85        'debug_toolbar.middleware.DebugToolbarMiddleware',
86    ]
87
88## Configuración de las URL del sistema
89ROOT_URLCONF = 'seiven.urls'
90
91## Directorio en donde se encuentran las plantillas en el root de la aplicación
92ROOT_TEMPLATES = os.path.join(BASE_DIR, "templates")
93
94## Directorio en donde se encuentran las plantillas del módulo base
95BASE_TEMPLATES = os.path.join(BASE_DIR, "base/templates")
96
97## Directorio en donde se encuentran las plantillas del módulo económico
98ECONOMICO_TEMPLATES = os.path.join(BASE_DIR, "economico/templates")
99
100## Directorio en donde se encuentran las plantillas del módulo de usuarios
101USUARIO_TEMPLATES = os.path.join(BASE_DIR, "usuario/templates")
102
103TEMPLATES = [
104    {
105        'BACKEND': 'django.template.backends.django.DjangoTemplates',
106        'DIRS': [ROOT_TEMPLATES, BASE_TEMPLATES, ECONOMICO_TEMPLATES, USUARIO_TEMPLATES],
107        'APP_DIRS': True,
108        'OPTIONS': {
109            'context_processors': [
110                'django.template.context_processors.debug',
111                'django.template.context_processors.request',
112                'django.contrib.auth.context_processors.auth',
113                'django.contrib.messages.context_processors.messages',
114                'django.template.context_processors.i18n',
115                "django.template.context_processors.tz",
116            ],
117        },
118    },
119]
120
121## Configuración para el wsgi de la aplicación
122WSGI_APPLICATION = 'seiven.wsgi.application'
123
124## Configuración de la(s) base(s) de dato(s) del sistema
125DATABASES = DATABASES_CONFIG
126
127## Configuración para las validaciones de contraseñas
128AUTH_PASSWORD_VALIDATORS = [
129    {
130        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
131    },
132    {
133        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
134        'OPTIONS': {
135            'min_length': 8,
136        }
137    },
138    {
139        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
140    },
141    {
142        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
143    },
144]
145
146
147## Configuración del código del lenguaje a utilizar por defecto
148LANGUAGE_CODE = 'es-ve'
149
150## Configuración para el nombre de localización por defecto
151LOCALE_NAME = 'es'
152
153## Configuración para la zona horaria por defecto
154TIME_ZONE = 'America/Caracas'
155
156## Determina si se emplea la internacionalización I18N
157USE_I18N = True
158
159## Determina si se emplea la internacionalización L10N
160USE_L10N = True
161
162## Determina si se emplea la zona horaria
163USE_TZ = True
164
165## Configuración de la raíz donde se encuentran los archivos estaticos del sistema (para entornos en producción)
166STATIC_ROOT = ''
167
168## Configuración de la url que atenderá las peticiones de los archivos estáticos del sistema
169STATIC_URL = '/static/'
170
171## Configuración de los directorios en donde se encuentran los archivos estáticos
172STATICFILES_DIRS = (
173    os.path.join(BASE_DIR, 'static/'),
174)
175
176## URL de acceso al sistema
177LOGIN_URL = "/login"
178
179## URL de salida del sistema
180LOGOUT_URL = "/logout"
181
182## configuración que permite obtener la ruta en donde se encuentran las traducciones de la aplicación a otros lenguajes
183LOCALE_PATHS = [
184    #os.path.join(BASE_DIR, 'locale'),
185]
186
187## Registro de mensajes al usuario
188MESSAGE_STORAGE = 'django.contrib.messages.storage.cookie.CookieStorage'
189
190# Configuración de variables para el envío de correo electrónico
191## Nombre del Servidor de correo SMTP
192EMAIL_HOST = 'localhost'
193## Puerto del Servidor de correo SMTP
194EMAIL_PORT = 25
195## Dirección de correo electrónico de quien envía
196EMAIL_FROM = 'seiven@cenditel.gob.ve'
197
198## Registro de vitácoras de errores (logs)
199LOGS_PATH = '/var/log/seiven'
200
201## Configuración de los niveles de vitácoras (logs) a registrar
202LOGGING = dict(version=1, disable_existing_loggers=True, formatters={
203    'std': {
204        'format': '%(asctime)s %(levelname)-8s [modulo: %(module)s, funcion: %(funcName)s, linea: %(lineno)d]. %(message)s',
205    }
206}, handlers={
207    'null': {
208        'level': 'DEBUG',
209        'class': 'logging.NullHandler'
210    },
211    'base': {
212        'class': 'logging.handlers.TimedRotatingFileHandler',
213        'level': 'DEBUG',
214        'formatter': 'std',
215        'filename': os.path.join(LOGS_PATH, 'base.log'),
216        'when': 'w6',
217        'interval': 1,
218        'backupCount': 52
219    },
220    'economico': {
221        'class': 'logging.handlers.TimedRotatingFileHandler',
222        'level': 'DEBUG',
223        'formatter': 'std',
224        'filename': os.path.join(LOGS_PATH, 'economico.log'),
225        'when': 'w6',
226        'interval': 1,
227        'backupCount': 52
228    },
229    'usuario': {
230        'class': 'logging.handlers.TimedRotatingFileHandler',
231        'level': 'DEBUG',
232        'formatter': 'std',
233        'filename': os.path.join(LOGS_PATH, 'usuario.log'),
234        'when': 'w6',
235        'interval': 1,
236        'backupCount': 52
237    },
238    'carga_masiva': {
239        'class': 'logging.handlers.TimedRotatingFileHandler',
240        'level': 'DEBUG',
241        'formatter': 'std',
242        'filename': os.path.join(LOGS_PATH, 'carga_masiva.log'),
243        'when': 'w6',
244        'interval': 1,
245        'backupCount': 52
246    },
247}, loggers={
248    'root': {
249        'level': 'DEBUG',
250        'handlers': ['usuario']
251    },
252    'base': {
253        'level': 'DEBUG',
254        'handlers': ['base'],
255        'qualname': 'base'
256    },
257    'economico': {
258        'level': 'DEBUG',
259        'handlers': ['economico'],
260        'qualname': 'economico'
261    },
262    'usuario': {
263        'level': 'DEBUG',
264        'handlers': ['usuario'],
265        'qualname': 'usuario'
266    },
267    'carga_masiva': {
268        'level': 'DEBUG',
269        'handlers': ['carga_masiva'],
270        'qualname': 'carga_masiva'
271    },
272    'django.request': {
273        'handlers': ['null'],
274        'level': 'ERROR',
275        'propagate': False,
276    }
277})
278
279# Configuración del CAPTCHA
280## Ruta en donde se encuentra el diccionario de palabras a utilizar en la generación del captcha
281CAPTCHA_WORDS_DICTIONARY = os.path.join(BASE_DIR, "static/dictionaries/captcha-es.txt")
282## Establece el tipo de captcha a generar. Se establece a la extraccion de palabras a partir de un diccionario
283CAPTCHA_CHALLENGE_FUNCT = 'captcha.helpers.word_challenge'
284## Longitud de carácteres a mostrar en la imagen del captcha
285CAPTCHA_LENGTH = 6
286## Longitud de carácteres máxima permitida para extraer del diccionario
287CAPTCHA_DICTIONARY_MAX_LENGTH = 6
288## Longitud de carácteres mínima permitida para extraer del diccionario
289CAPTCHA_DICTIONARY_MIN_LENGTH = 4
290## Color de fondo para la imagen del captcha
291CAPTCHA_BACKGROUND_COLOR = '#337AB7'
292## Color de la fuente para la imagen del captcha
293CAPTCHA_FOREGROUND_COLOR = '#FFF'
294
295if DEBUG:
296    ## Si se encuentra en modo de desarrollo, la imagen de captcha no es requerida
297    CAPTCHA_TEST_MODE = True
298
299    ## Elimina la imagen de ruido en el fondo del captcha cuando la aplicacion se encuentra en modo desarrollo
300    CAPTCHA_NOISE_FUNCTIONS = ('captcha.helpers.noise_null',)
301
302    ## Tiempo de expiración del captcha en entornos de desarrollo, representado en minutos
303    CAPTCHA_TIMEOUT = 1440 # 24 horas
304
305    ## Configura el backend para el envío de correo electrónico para mostrarlo en consola, solo en entorno de desarrollo
306    EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.