source: sicp/sicp/settings.py @ efbe2a8

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

Modificaciones y correcciones a las funciones de vista y javascript que permiten mostrar un gráfico sobre la encuesta industrial asociado a un escenario en estudio. Modificación en consultas a la encuesta industrial y configuración de la base de datos solo para encuestas en el settings

  • Property mode set to 100644
File size: 10.2 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
27import os
28
29## Directorio base desde donde se encuentra ejecutando la aplicación
30BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
31
32## Número de versión de la aplicación
33VERSION = '3.0.0'
34
35
36# Quick-start development settings - unsuitable for production
37# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/
38
39## Clave secreta del sistema
40SECRET_KEY = 'exdo%=40*1ry3g2$nyi@oq-i+f^#q0_ksz(kd969^)y=#!zj7('
41
42## Identifica si el sistema se encuentra en modo de desarrollo (True) o en modo producción (False)
43DEBUG = True
44
45## Listado de Hosts permitidos por el sistema
46ALLOWED_HOSTS = ['localhost']
47
48INTERNAL_IPS = (AH for AH in ALLOWED_HOSTS)
49
50## Listado de aplicaciones cargadas por el sistema
51INSTALLED_APPS = (
52    'suit',  # Modern theme for Django admin interface
53    'django.contrib.admin',
54    'django.contrib.auth',
55    'django.contrib.contenttypes',
56    'django.contrib.sessions',
57    'django.contrib.messages',
58    'django.contrib.staticfiles',
59    'django.contrib.humanize',
60    'django_extensions', # Opcional, no requerido para el funcionamiento del sistema
61    'wkhtmltopdf', # app para generar reportes en pdf a partir de un html
62    'captcha',
63    'apps.comun',
64    'apps.usuario',
65    'apps.simulacion',
66    'apps.simulacion.sigesic',
67    'apps.simulacion.encuesta'
68)
69
70## Listado de clases middleware
71MIDDLEWARE_CLASSES = (
72    'django.contrib.sessions.middleware.SessionMiddleware',
73    'django.middleware.common.CommonMiddleware',
74    'django.middleware.csrf.CsrfViewMiddleware',
75    'django.contrib.auth.middleware.AuthenticationMiddleware',
76    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
77    'django.contrib.messages.middleware.MessageMiddleware',
78    'django.middleware.clickjacking.XFrameOptionsMiddleware',
79    'django.middleware.security.SecurityMiddleware',
80    'django.middleware.locale.LocaleMiddleware'
81)
82
83## Configuración de las URL del sistema
84ROOT_URLCONF = 'sicp.urls'
85
86## Directorio en donde se encuentran las plantillas base
87BASE_TEMPLATES = os.path.join(BASE_DIR, "templates")
88
89## Directorio en donde se encuentran las plantillas para la simulación de escenarios
90SIMULACION_TEMPLATES = os.path.join(BASE_DIR, "apps/simulacion/templates")
91
92## Directorio en donde se encuentran las plantillas del sigesic
93SIGESIC_TEMPLATES = os.path.join(BASE_DIR, "apps/simulacion/sigesic/templates")
94
95## Directorio en donde se encuentran las plantillas de la encuesta industrial
96ENCUESTA_TEMPLATES = os.path.join(BASE_DIR, "apps/simulacion/encuesta/templates")
97
98## Configuración de plantillas del sistema
99TEMPLATES = [
100    {
101        'BACKEND': 'django.template.backends.django.DjangoTemplates',
102        'DIRS': [BASE_TEMPLATES, SIMULACION_TEMPLATES, SIGESIC_TEMPLATES, ENCUESTA_TEMPLATES],
103        'APP_DIRS': True,
104        'OPTIONS': {
105            'context_processors': [
106                'django.template.context_processors.debug',
107                'django.template.context_processors.request',
108                'django.contrib.auth.context_processors.auth',
109                'django.contrib.messages.context_processors.messages',
110            ]
111        },
112    },
113]
114
115## Configuración para el wsgi de la aplicación
116WSGI_APPLICATION = 'sicp.wsgi.application'
117
118
119# Database
120# https://docs.djangoproject.com/en/1.8/ref/settings/#databases
121
122## Configuración de la(s) base(s) de dato(s) del sistema
123DATABASES = {
124    'default': {
125        'ENGINE': 'django.db.backends.postgresql_psycopg2',
126        'NAME': '<DATABASE>',
127        'USER': '<USER_DB>',
128        'PASSWORD': '<PASSWORD_DB>',
129        'HOST': '<HOST_DB>',
130        'PORT': '<PORT_DB>',
131    },
132    'sigesic': {
133        'ENGINE': 'django.db.backends.postgresql_psycopg2',
134        'NAME': '<DATABASE>',
135        'USER': '<USER_DB>',
136        'PASSWORD': '<PASSWORD_DB>',
137        'HOST': '<HOST_DB>',
138        'PORT': '<PORT_DB>',
139    },
140    'encuesta_2006': {
141        'ENGINE': 'django.db.backends.postgresql_psycopg2',
142        'NAME': '<DATABASE>',
143        'USER': '<USER_DB>',
144        'PASSWORD': '<PASSWORD_DB>',
145        'HOST': '<HOST_DB>',
146        'PORT': '<PORT_DB>',
147    },
148    'matriz': {
149        'ENGINE': 'django.db.backends.postgresql_psycopg2',
150        'NAME': '<DATABASE>',
151        'USER': '<USER_DB>',
152        'PASSWORD': '<PASSWORD_DB>',
153        'HOST': '<HOST_DB>',
154        'PORT': '<PORT_DB>',
155    }
156}
157
158
159# Internationalization
160# https://docs.djangoproject.com/en/1.8/topics/i18n/
161
162## Configuración del código del lenguaje a utilizar por defecto
163LANGUAGE_CODE = 'es-ve'
164
165## Configuración para el nombre de localización por defecto
166LOCALE_NAME = 'es'
167
168## Configuración para la zona horaria por defecto
169TIME_ZONE = 'UTC'
170
171## Determina si se emplea la internacionalización I18N
172USE_I18N = True
173
174## Determina si se emplea la internacionalización L10N
175USE_L10N = True
176
177## Determina si se emplea la zona horaria
178USE_TZ = True
179
180
181# Static files (CSS, JavaScript, Images)
182# https://docs.djangoproject.com/en/1.8/howto/static-files/
183
184## Configuración de la raíz donde se encuentran los archivos estaticos del sistema
185STATIC_ROOT = ''
186
187## Configuración de la url que atenderá las peticiones de los archivos estáticos del sistema
188STATIC_URL = '/static/'
189
190## Configuración de los directorios en donde se encuentran los archivos estáticos
191STATICFILES_DIRS = (
192    os.path.join(BASE_DIR, 'static/'),
193    os.path.join(BASE_DIR, 'tmp/'),
194)
195
196## Configuración que permite buscar distintas ubicaciones de archivos estáticos
197STATICFILES_FINDER = (
198    'django.contrib.staticfiles.finders.FileSystemFinder',
199    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
200)
201
202## URL de acceso al sistema
203LOGIN_URL = "/login"
204## URL de salida del sistema
205LOGOUT_URL = "/logout"
206
207## configuración que permite obtener la ruta en donde se encuentran las traducciones de la aplicación a otros lenguajes
208LOCALE_PATHS = (
209    os.path.join(BASE_DIR, 'locale'),
210)
211
212## Registro de mensajes al usuario
213MESSAGE_STORAGE = 'django.contrib.messages.storage.cookie.CookieStorage'
214
215## Parámetros de configuración del panel administrativo del sistema
216SUIT_CONFIG = {
217    # header
218    'ADMIN_NAME': 'SICP v%s' % VERSION,
219    'HEADER_DATE_FORMAT': 'l, d F Y',
220    'HEADER_TIME_FORMAT': 'h:i a',
221
222    'LIST_PER_PAGE': 15,
223}
224
225# Configuración de variables para el envío de correo electrónico
226## Nombre del Servidor de correo SMTP
227EMAIL_HOST = 'localhost'
228## Puerto del Servfidor de correo SMTP
229EMAIL_PORT = 25
230## Dirección de correo electrónico del Simulador Integral de Cadenas Productivas
231EMAIL_FROM = 'sicp@cenditel.gob.ve'
232## Dirección de correo electrónico del Servidor
233SERVER_EMAIL = 'sicp@cenditel.gob.ve'
234## Dirección de correo electrónico por defecto
235DEFAULT_FROM_EMAIL = 'sicp@cenditel.gob.ve'
236
237## Registro de vitácoras de errores (logs)
238LOGS_PATH = '/var/log/sicp'
239
240## Configuración de los niveles de vitácoras (logs) a registrar
241LOGGING = dict(version=1, disable_existing_loggers=True, formatters={
242    'std': {
243        'format': '%(asctime)s %(levelname)-8s %(module)s %(funcname) %(message)s',
244    }
245}, handlers={
246    'null': {
247        'level': 'DEBUG',
248        'class': 'django.utils.log.NullHandler'
249    },
250    'comun': {
251        'class': 'logging.handlers.TimedRotatingFileHandler',
252        'level': 'DEBUG',
253        'formatter': 'std',
254        'filename': os.path.join(LOGS_PATH, 'comun.log'),
255        'when': 'w6',
256        'interval': 1,
257        'backupCount': 52
258    },
259    'usuario': {
260        'class': 'logging.handlers.TimedRotatingFileHandler',
261        'level': 'DEBUG',
262        'formatter': 'std',
263        'filename': os.path.join(LOGS_PATH, 'usuario.log'),
264        'when': 'w6',
265        'interval': 1,
266        'backupCount': 52
267    },
268    'simulacion': {
269        'class': 'logging.handlers.TimedRotatingFileHandler',
270        'level': 'DEBUG',
271        'formatter': 'std',
272        'filename': os.path.join(LOGS_PATH, 'simulacion.log'),
273        'when': 'w6',
274        'interval': 1,
275        'backupCount': 52
276    },
277    'sigesic': {
278        'class': 'logging.handlers.TimedRotatingFileHandler',
279        'level': 'DEBUG',
280        'formatter': 'std',
281        'filename': os.path.join(LOGS_PATH, 'sigesic.log'),
282        'when': 'w6',
283        'interval': 1,
284        'backupCount': 52
285    }
286}, loggers={
287    'root': {
288        'level': 'DEBUG',
289        'handlers': ['usuario']
290    },
291    'comun': {
292        'level': 'DEBUG',
293        'handlers': ['comun'],
294        'qualname': 'comun'
295    },
296    'simulacion': {
297        'level': 'DEBUG',
298        'handlers': ['simulacion'],
299        'qualname': 'simulacion'
300    },
301    'sigesic': {
302        'level': 'DEBUG',
303        'handlers': ['sigesic'],
304        'qualname': 'sigesic'
305    },
306    'django.request': {
307        'handlers': ['null'],
308        'level': 'ERROR',
309        'propagate': False,
310    }
311})
312
313# Configuración del CAPTCHA
314## Ruta en donde se encuentra el diccionario de palabras a utilizar en la generación del captcha
315CAPTCHA_WORDS_DICTIONARY = os.path.join(BASE_DIR, "static/dictionaries/captcha-es.txt")
316## Longitud de carácteres a mostrar en la imagen del captcha
317CAPTCHA_LENGTH = 6
318## Longitud de carácteres mínima permitida para extraer del diccionario
319CAPTCHA_DICTIONARY_MIN_LENGTH = 4
Note: See TracBrowser for help on using the repository browser.