source: sicp/sicp/settings.py @ 2ad9ea7

Last change on this file since 2ad9ea7 was 2ad9ea7, checked in by Ing. Roldan D. Vargas G <rvargas@…>, 8 years ago

modificación en configuración de logging

  • Property mode set to 100644
File size: 10.1 KB
Line 
1# coding=utf-8
2"""
3Simulador Integral de Cadenas Productivas (SICP)
4
5Copyleft (@) 2015 CENDITEL nodo Mérida - https://miv.cenditel.gob.ve/simulacion/
6"""
7## @package sicp.settings
8#
9# Configuración de funcionalidades y parámetros del sistema
10# @author Generated by 'django-admin startproject' using Django 1.8.
11# @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
12# @author <a href='http://www.cenditel.gob.ve'>Centro Nacional de Desarrollo e Investigación en Tecnologías Libres
13# (CENDITEL) nodo Mérida - Venezuela</a>
14# @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
15# @version 3.0.0
16
17# Django settings for sicp project.
18# Generated by 'django-admin startproject' using Django 1.8.
19# For more information on this file, see https://docs.djangoproject.com/en/1.8/topics/settings/
20# For the full list of settings and their values, see https://docs.djangoproject.com/en/1.8/ref/settings/
21
22## Muestra el autor del script cuando es invocado
23__author__ = "Generated by 'django-admin startproject' using Django 1.8."
24## Muestra documentación breve sobre el script
25__doc__    = "Configuración de funcionalidades y parámetros del sistema"
26
27from database_config import DATABASES_CONFIG
28import os
29
30## Directorio base desde donde se encuentra ejecutando la aplicación
31BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
32
33## Número de versión de la aplicación
34VERSION = '3.0.0'
35
36
37# Quick-start development settings - unsuitable for production
38# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/
39
40## Clave secreta del sistema
41SECRET_KEY = 'exdo%=40*1ry3g2$nyi@oq-i+f^#q0_ksz(kd969^)y=#!zj7('
42
43## Identifica si el sistema se encuentra en modo de desarrollo (True) o en modo producción (False)
44DEBUG = True
45
46## Listado de Hosts permitidos por el sistema
47ALLOWED_HOSTS = ['localhost']
48
49INTERNAL_IPS = (AH for AH in ALLOWED_HOSTS)
50
51## Listado de aplicaciones cargadas por el sistema
52INSTALLED_APPS = (
53    'suit',  # Modern theme for Django admin interface
54    'django.contrib.admin',
55    'django.contrib.auth',
56    'django.contrib.contenttypes',
57    'django.contrib.sessions',
58    'django.contrib.messages',
59    'django.contrib.staticfiles',
60    'django.contrib.humanize',
61    'django_extensions', # Opcional, no requerido para el funcionamiento del sistema
62    'wkhtmltopdf', # app para generar reportes en pdf a partir de un html
63    'captcha',
64    'apps.comun',
65    'apps.usuario',
66    'apps.simulacion',
67    'apps.simulacion.sigesic',
68    'apps.simulacion.encuesta',
69    'apps.simulacion.matrizip'
70)
71
72## Listado de clases middleware
73MIDDLEWARE_CLASSES = (
74    'django.contrib.sessions.middleware.SessionMiddleware',
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    'django.middleware.security.SecurityMiddleware',
82    'django.middleware.locale.LocaleMiddleware'
83)
84
85## Configuración de las URL del sistema
86ROOT_URLCONF = 'sicp.urls'
87
88## Directorio en donde se encuentran las plantillas base
89BASE_TEMPLATES = os.path.join(BASE_DIR, "templates")
90
91## Directorio en donde se encuentran las plantillas para la simulación de escenarios
92SIMULACION_TEMPLATES = os.path.join(BASE_DIR, "apps/simulacion/templates")
93
94## Directorio en donde se encuentran las plantillas del sigesic
95SIGESIC_TEMPLATES = os.path.join(BASE_DIR, "apps/simulacion/sigesic/templates")
96
97## Directorio en donde se encuentran las plantillas de la encuesta industrial
98ENCUESTA_TEMPLATES = os.path.join(BASE_DIR, "apps/simulacion/encuesta/templates")
99
100## Configuración de plantillas del sistema
101TEMPLATES = [
102    {
103        'BACKEND': 'django.template.backends.django.DjangoTemplates',
104        'DIRS': [BASE_TEMPLATES, SIMULACION_TEMPLATES, SIGESIC_TEMPLATES, ENCUESTA_TEMPLATES],
105        'APP_DIRS': True,
106        'OPTIONS': {
107            'context_processors': [
108                'django.template.context_processors.debug',
109                'django.template.context_processors.request',
110                'django.contrib.auth.context_processors.auth',
111                'django.contrib.messages.context_processors.messages',
112            ]
113        },
114    },
115]
116
117## Configuración para el wsgi de la aplicación
118WSGI_APPLICATION = 'sicp.wsgi.application'
119
120## Configuración de la(s) base(s) de dato(s) del sistema
121DATABASES = DATABASES_CONFIG
122
123## Configuración del código del lenguaje a utilizar por defecto
124LANGUAGE_CODE = 'es-ve'
125
126## Configuración para el nombre de localización por defecto
127LOCALE_NAME = 'es'
128
129## Configuración para la zona horaria por defecto
130TIME_ZONE = 'UTC'
131
132## Determina si se emplea la internacionalización I18N
133USE_I18N = True
134
135## Determina si se emplea la internacionalización L10N
136USE_L10N = True
137
138## Determina si se emplea la zona horaria
139USE_TZ = True
140
141
142# Static files (CSS, JavaScript, Images)
143# https://docs.djangoproject.com/en/1.8/howto/static-files/
144
145## Configuración de la raíz donde se encuentran los archivos estaticos del sistema (para entornos en producción)
146STATIC_ROOT = ''
147
148## Configuración de la url que atenderá las peticiones de los archivos estáticos del sistema
149STATIC_URL = '/static/'
150
151## Configuración de los directorios en donde se encuentran los archivos estáticos
152STATICFILES_DIRS = (
153    os.path.join(BASE_DIR, 'static/'),
154    os.path.join(BASE_DIR, 'tmp/'),
155    # Directorios en los cuales buscar archivos estaticos en produccion, en caso de ubicar los archivos estáticos en
156    # otro directorio, se debe agregar la ruta
157    '/var/www/html/sicp/static/',
158)
159
160## Configuración que permite buscar distintas ubicaciones de archivos estáticos
161STATICFILES_FINDER = (
162    'django.contrib.staticfiles.finders.FileSystemFinder',
163    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
164)
165
166## URL de acceso al sistema
167LOGIN_URL = "/login"
168## URL de salida del sistema
169LOGOUT_URL = "/logout"
170
171## configuración que permite obtener la ruta en donde se encuentran las traducciones de la aplicación a otros lenguajes
172LOCALE_PATHS = (
173    os.path.join(BASE_DIR, 'locale'),
174)
175
176## Registro de mensajes al usuario
177MESSAGE_STORAGE = 'django.contrib.messages.storage.cookie.CookieStorage'
178
179## Parámetros de configuración del panel administrativo del sistema
180SUIT_CONFIG = {
181    # header
182    'ADMIN_NAME': 'SICP v%s' % VERSION,
183    'HEADER_DATE_FORMAT': 'l, d F Y',
184    'HEADER_TIME_FORMAT': 'h:i a',
185
186    'LIST_PER_PAGE': 15,
187}
188
189# Configuración de variables para el envío de correo electrónico
190## Nombre del Servidor de correo SMTP
191EMAIL_HOST = 'localhost'
192## Puerto del Servfidor de correo SMTP
193EMAIL_PORT = 25
194## Dirección de correo electrónico del Simulador Integral de Cadenas Productivas
195EMAIL_FROM = 'sicp@cenditel.gob.ve'
196## Dirección de correo electrónico del Servidor
197#SERVER_EMAIL = 'sicp@cenditel.gob.ve'
198## Dirección de correo electrónico por defecto
199#DEFAULT_FROM_EMAIL = 'sicp@cenditel.gob.ve'
200
201## Registro de vitácoras de errores (logs)
202LOGS_PATH = '/var/log/sicp'
203
204## Configuración de los niveles de vitácoras (logs) a registrar
205LOGGING = dict(version=1, disable_existing_loggers=True, formatters={
206    'std': {
207        'format': '%(asctime)s %(levelname)-8s [modulo: %(module)s, funcion: %(funcName)s, linea: %(lineno)d]. %(message)s',
208    }
209}, handlers={
210    'null': {
211        'level': 'DEBUG',
212        'class': 'django.utils.log.NullHandler'
213    },
214    'comun': {
215        'class': 'logging.handlers.TimedRotatingFileHandler',
216        'level': 'DEBUG',
217        'formatter': 'std',
218        'filename': os.path.join(LOGS_PATH, 'comun.log'),
219        'when': 'w6',
220        'interval': 1,
221        'backupCount': 52
222    },
223    'usuario': {
224        'class': 'logging.handlers.TimedRotatingFileHandler',
225        'level': 'DEBUG',
226        'formatter': 'std',
227        'filename': os.path.join(LOGS_PATH, 'usuario.log'),
228        'when': 'w6',
229        'interval': 1,
230        'backupCount': 52
231    },
232    'simulacion': {
233        'class': 'logging.handlers.TimedRotatingFileHandler',
234        'level': 'DEBUG',
235        'formatter': 'std',
236        'filename': os.path.join(LOGS_PATH, 'simulacion.log'),
237        'when': 'w6',
238        'interval': 1,
239        'backupCount': 52
240    },
241    'sigesic': {
242        'class': 'logging.handlers.TimedRotatingFileHandler',
243        'level': 'DEBUG',
244        'formatter': 'std',
245        'filename': os.path.join(LOGS_PATH, 'sigesic.log'),
246        'when': 'w6',
247        'interval': 1,
248        'backupCount': 52
249    }
250}, loggers={
251    'root': {
252        'level': 'DEBUG',
253        'handlers': ['usuario']
254    },
255    'comun': {
256        'level': 'DEBUG',
257        'handlers': ['comun'],
258        'qualname': 'comun'
259    },
260    'usuario': {
261        'level': 'DEBUG',
262        'handlers': ['usuario'],
263        'qualname': 'usuario'
264    },
265    'simulacion': {
266        'level': 'DEBUG',
267        'handlers': ['simulacion'],
268        'qualname': 'simulacion'
269    },
270    'sigesic': {
271        'level': 'DEBUG',
272        'handlers': ['sigesic'],
273        'qualname': 'sigesic'
274    },
275    'django.request': {
276        'handlers': ['null'],
277        'level': 'ERROR',
278        'propagate': False,
279    }
280})
281
282# Configuración del CAPTCHA
283## Ruta en donde se encuentra el diccionario de palabras a utilizar en la generación del captcha
284CAPTCHA_WORDS_DICTIONARY = os.path.join(BASE_DIR, "static/dictionaries/captcha-es.txt")
285## Establece el tipo de captcha a generar. Se establece a la extraccion de palabras a partir de un diccionario
286CAPTCHA_CHALLENGE_FUNCT = 'captcha.helpers.word_challenge'
287## Longitud de carácteres a mostrar en la imagen del captcha
288CAPTCHA_LENGTH = 6
289## Longitud de carácteres máxima permitida para extraer del diccionario
290CAPTCHA_DICTIONARY_MAX_LENGTH = 6
291## Longitud de carácteres mínima permitida para extraer del diccionario
292CAPTCHA_DICTIONARY_MIN_LENGTH = 4
293## Color de fondo para la imagen del captcha
294CAPTCHA_BACKGROUND_COLOR = '#337AB7'
295## Color de la fuente para la imagen del captcha
296CAPTCHA_FOREGROUND_COLOR = '#FFF'
297
298if DEBUG:
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',)
Note: See TracBrowser for help on using the repository browser.