Conjunto de cambios 54c5ca2 en seiven para seiven


Ignorar:
Fecha y hora:
19/08/2016 09:35:44 (hace 8 años)
Autor:
Ing. Roldan D. Vargas G <rvargas@…>
Branches:
master, carga
Children:
d7fc244
Parents:
b82d697
Mensaje:

se agregan variables de configuración del sistema

Fichero:
1 editado

Leyenda

No modificado
Añadido
Eliminado
  • seiven/settings.py

    r82eb132 r54c5ca2  
    11"""
    2 Django settings for seiven project.
    3 
    4 Generated by 'django-admin startproject' using Django 1.9.7.
    5 
    6 For more information on this file, see
    7 https://docs.djangoproject.com/en/1.9/topics/settings/
    8 
    9 For the full list of settings and their values, see
    10 https://docs.djangoproject.com/en/1.9/ref/settings/
     2Sistema Estadístico Integral de Venezuela - (SEIVEN)
     3
     4Copyleft (@) 2015 CENDITEL nodo Mérida - https://mpv.cenditel.gob.ve/seiven
    115"""
     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
    1218
    1319import os
    1420
    15 # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
     21## Directorio base desde donde se encuentra ejecutando la aplicación
    1622BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    1723
    18 
    19 # Quick-start development settings - unsuitable for production
    20 # See https://docs.djangoproject.com/en/1.9/howto/deployment/checklist/
     24## Número de versión de la aplicación
     25VERSION = '1.0.0'
    2126
    2227# SECURITY WARNING: keep the secret key used in production secret!
    2328SECRET_KEY = '$#iabgq1k!v$$-a*3$tp)l)c!jr-bnyk(2-q!isylwtpnksbsv'
    2429
    25 # SECURITY WARNING: don't run with debug turned on in production!
     30## Identifica si el sistema se encuentra en modo de desarrollo (True) o en modo producción (False)
    2631DEBUG = True
    2732
    28 ALLOWED_HOSTS = []
    29 
    30 
    31 # Application definition
    32 
    33 INSTALLED_APPS = [
     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 = [
    3441    'django.contrib.admin',
    3542    'django.contrib.auth',
     
    3845    'django.contrib.messages',
    3946    'django.contrib.staticfiles',
    40 ]
     47    'captcha',
     48]
     49
     50if DEBUG:
     51    ## Aplicaciones requeridas para entornos de desarrollo
     52    PREREQ_APPS += [
     53        'django_extensions',
     54        'debug_toolbar',
     55    ]
     56
     57    ## Configuracion de parametros de django-debug-toolbar
     58    JQUERY_URL = ''
     59
     60## Listado de aplicaciones del projecto
     61PROJECT_APPS = []
     62
     63## Listado de aplicaciones cargadas por el sistema
     64INSTALLED_APPS = [PREREQ_APPS+PROJECT_APPS]
    4165
    4266MIDDLEWARE_CLASSES = [
    4367    'django.middleware.security.SecurityMiddleware',
    4468    'django.contrib.sessions.middleware.SessionMiddleware',
     69    'django.middleware.locale.LocaleMiddleware',
    4570    'django.middleware.common.CommonMiddleware',
    4671    'django.middleware.csrf.CsrfViewMiddleware',
     
    5176]
    5277
     78if DEBUG:
     79    MIDDLEWARE_CLASSES += [
     80        'debug_toolbar.middleware.DebugToolbarMiddleware',
     81    ]
     82
     83## Configuración de las URL del sistema
    5384ROOT_URLCONF = 'seiven.urls'
    5485
     86## Directorio en donde se encuentran las plantillas en el root de la aplicación
     87ROOT_TEMPLATES = os.path.join(BASE_DIR, "templates")
     88
     89## Directorio en donde se encuentran las plantillas del módulo base
     90BASE_TEMPLATES = os.path.join(BASE_DIR, "base/templates")
     91
    5592TEMPLATES = [
    5693    {
    5794        'BACKEND': 'django.template.backends.django.DjangoTemplates',
    58         'DIRS': [],
     95        'DIRS': [ROOT_TEMPLATES, BASE_TEMPLATES],
    5996        'APP_DIRS': True,
    6097        'OPTIONS': {
     
    64101                'django.contrib.auth.context_processors.auth',
    65102                'django.contrib.messages.context_processors.messages',
     103                'django.template.context_processors.i18n',
     104                "django.template.context_processors.tz",
    66105            ],
    67106        },
     
    69108]
    70109
     110## Configuración para el wsgi de la aplicación
    71111WSGI_APPLICATION = 'seiven.wsgi.application'
    72112
    73 
    74 # Database
    75 # https://docs.djangoproject.com/en/1.9/ref/settings/#databases
    76 
    77 DATABASES = {
    78     'default': {
    79         'ENGINE': 'django.db.backends.sqlite3',
    80         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
     113## Configuración de la(s) base(s) de dato(s) del sistema
     114DATABASES = DATABASES_CONFIG
     115
     116## Configuración para las validaciones de contraseñas
     117AUTH_PASSWORD_VALIDATORS = [
     118    {
     119        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
     120    },
     121    {
     122        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
     123        'OPTIONS': {
     124            'min_length': 8,
     125        }
     126    },
     127    {
     128        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
     129    },
     130    {
     131        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
     132    },
     133]
     134
     135
     136## Configuración del código del lenguaje a utilizar por defecto
     137LANGUAGE_CODE = 'es-ve'
     138
     139## Configuración para el nombre de localización por defecto
     140LOCALE_NAME = 'es'
     141
     142## Configuración para la zona horaria por defecto
     143TIME_ZONE = 'America/Caracas'
     144
     145## Determina si se emplea la internacionalización I18N
     146USE_I18N = True
     147
     148## Determina si se emplea la internacionalización L10N
     149USE_L10N = True
     150
     151## Determina si se emplea la zona horaria
     152USE_TZ = True
     153
     154## Configuración de la raíz donde se encuentran los archivos estaticos del sistema (para entornos en producción)
     155STATIC_ROOT = ''
     156
     157## Configuración de la url que atenderá las peticiones de los archivos estáticos del sistema
     158STATIC_URL = '/static/'
     159
     160## Configuración de los directorios en donde se encuentran los archivos estáticos
     161STATICFILES_DIRS = (
     162    os.path.join(BASE_DIR, 'static/'),
     163)
     164
     165## URL de acceso al sistema
     166LOGIN_URL = "/login"
     167
     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# Configuración de variables para el envío de correo electrónico
     180## Nombre del Servidor de correo SMTP
     181EMAIL_HOST = 'localhost'
     182## Puerto del Servidor de correo SMTP
     183EMAIL_PORT = 25
     184## Dirección de correo electrónico de quien envía
     185EMAIL_FROM = 'seiven@cenditel.gob.ve'
     186
     187## Registro de vitácoras de errores (logs)
     188LOGS_PATH = '/var/log/seiven'
     189
     190## Configuración de los niveles de vitácoras (logs) a registrar
     191LOGGING = dict(version=1, disable_existing_loggers=True, formatters={
     192    'std': {
     193        'format': '%(asctime)s %(levelname)-8s [modulo: %(module)s, funcion: %(funcName)s, linea: %(lineno)d]. %(message)s',
    81194    }
    82 }
    83 
    84 
    85 # Password validation
    86 # https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators
    87 
    88 AUTH_PASSWORD_VALIDATORS = [
    89     {
    90         'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    91     },
    92     {
    93         'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    94     },
    95     {
    96         'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    97     },
    98     {
    99         'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    100     },
    101 ]
    102 
    103 
    104 # Internationalization
    105 # https://docs.djangoproject.com/en/1.9/topics/i18n/
    106 
    107 LANGUAGE_CODE = 'en-us'
    108 
    109 TIME_ZONE = 'UTC'
    110 
    111 USE_I18N = True
    112 
    113 USE_L10N = True
    114 
    115 USE_TZ = True
    116 
    117 
    118 # Static files (CSS, JavaScript, Images)
    119 # https://docs.djangoproject.com/en/1.9/howto/static-files/
    120 
    121 STATIC_URL = '/static/'
     195}, handlers={
     196    'null': {
     197        'level': 'DEBUG',
     198        'class': 'logging.NullHandler'
     199    },
     200    'base': {
     201        'class': 'logging.handlers.TimedRotatingFileHandler',
     202        'level': 'DEBUG',
     203        'formatter': 'std',
     204        'filename': os.path.join(LOGS_PATH, 'base.log'),
     205        'when': 'w6',
     206        'interval': 1,
     207        'backupCount': 52
     208    },
     209    'usuario': {
     210        'class': 'logging.handlers.TimedRotatingFileHandler',
     211        'level': 'DEBUG',
     212        'formatter': 'std',
     213        'filename': os.path.join(LOGS_PATH, 'usuario.log'),
     214        'when': 'w6',
     215        'interval': 1,
     216        'backupCount': 52
     217    },
     218    'carga_masiva': {
     219        'class': 'logging.handlers.TimedRotatingFileHandler',
     220        'level': 'DEBUG',
     221        'formatter': 'std',
     222        'filename': os.path.join(LOGS_PATH, 'carga_masiva.log'),
     223        'when': 'w6',
     224        'interval': 1,
     225        'backupCount': 52
     226    },
     227}, loggers={
     228    'root': {
     229        'level': 'DEBUG',
     230        'handlers': ['usuario']
     231    },
     232    'base': {
     233        'level': 'DEBUG',
     234        'handlers': ['base'],
     235        'qualname': 'base'
     236    },
     237    'usuario': {
     238        'level': 'DEBUG',
     239        'handlers': ['usuario'],
     240        'qualname': 'usuario'
     241    },
     242    'carga_masiva': {
     243        'level': 'DEBUG',
     244        'handlers': ['carga_masiva'],
     245        'qualname': 'carga_masiva'
     246    },
     247    'django.request': {
     248        'handlers': ['null'],
     249        'level': 'ERROR',
     250        'propagate': False,
     251    }
     252})
     253
     254# Configuración del CAPTCHA
     255## Ruta en donde se encuentra el diccionario de palabras a utilizar en la generación del captcha
     256CAPTCHA_WORDS_DICTIONARY = os.path.join(BASE_DIR, "static/dictionaries/captcha-es.txt")
     257## Establece el tipo de captcha a generar. Se establece a la extraccion de palabras a partir de un diccionario
     258CAPTCHA_CHALLENGE_FUNCT = 'captcha.helpers.word_challenge'
     259## Longitud de carácteres a mostrar en la imagen del captcha
     260CAPTCHA_LENGTH = 6
     261## Longitud de carácteres máxima permitida para extraer del diccionario
     262CAPTCHA_DICTIONARY_MAX_LENGTH = 6
     263## Longitud de carácteres mínima permitida para extraer del diccionario
     264CAPTCHA_DICTIONARY_MIN_LENGTH = 4
     265## Color de fondo para la imagen del captcha
     266CAPTCHA_BACKGROUND_COLOR = '#337AB7'
     267## Color de la fuente para la imagen del captcha
     268CAPTCHA_FOREGROUND_COLOR = '#FFF'
     269
     270if DEBUG:
     271    ## Elimina la imagen de ruido en el fondo del captcha cuando la aplicacion se encuentra en modo desarrollo
     272    CAPTCHA_NOISE_FUNCTIONS = ('captcha.helpers.noise_null',)
     273
     274    ## Tiempo de expiración del captcha en entornos de desarrollo, representado en minutos
     275    CAPTCHA_TIMEOUT = 1440 # 24 horas
     276
     277    ## Configura el backend para el envío de correo electrónico para mostrarlo en consola, solo en entorno de desarrollo
     278    EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
Nota: Vea TracChangeset para ayuda en el uso del visor de conjuntos de cambios.