Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- encoding: utf-8 -*-
- # Django settings for ryca project.
- '''
- Archivo de configuración del proyecto
- '''
- import os
- from datetime import datetime
- RYCA_PATH = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
- ##################################################################################
- '''
- Variables del proyecto
- '''
- # Listado de filas por pagina
- LIST_PER_PAGE = 15
- LIST_PER_PAGE_INLINE = 5
- # Cantidad de filas para el ingreso se un nuevo registro
- NUM_ROW_NEW = 1
- #Variable choise para opcion SI y NO Generica para el sistema
- OPTION_YES_NO = (('Y','SI'),('N','NO'))
- # Tipos de Sexo
- SEX_OPTIONS = (('M','Masculino'),('F','Femenino'))
- # Tipos de Sexo
- ESTADO_OPTIONS = (('A','ACTIVO'),('I','INACTIVO'))
- # Calendario académico de Colegios
- CALENDARIO = (('A','A'),('B','B'),('C','C'),('D','D'),('N','N'))
- # Caracteres de Colegios
- CARACTER = (('O','OFICIAL'),('P','PRIVADO'))
- # Tipo de Matricula Financiera
- TIPO_FINANCIERA = (('O','ORDINARIA'), ('E','EXTEMPORANEA'),('X','EXTRAORDINARIA'))
- # Tipo Estimulos
- TIPO_ESTIMULO = {'ESTIMULO': 1, 'CONVENIO': 2}
- # Tipo evaluador para la evaluación docente
- EVALUADOR = ( ('E', 'ESTUDIANTE'), ('D', 'DOCENTE'), ('F','FACULTAD' ))
- # Tipo Pago para valores de programa
- TIPO_VALORES = ( ('I','INSCRIPCION'),('M','MATRICULA') )
- ADMIN_URL = 'home'
- LOGIN_URL = '/login'
- # Porcentajes pruebas selección
- PORCENTAJE_PRUEBAS = 100
- # tipos de ingreso
- #FIXME: Mirar tabla t_tipo_ingresos respecto al siguiente diccionario y unificar
- TIPO_INGRESO = {'CONVOCATORIA': 1 , 'TRANSFERENCIA_INTERNA': 2, 'TRANSFERENCIA_EXTERNA': 3, 'ARTICULACION': 4, 'CONTINUIDAD_PROPEDEUTICA': 5, 'OTROS': 6 }
- #Determina los filtros a aplicar para la consulta sobre el plan de estudios del estudiante
- OPCIONES_FILTRO_MATRICULA = {'ALL':0, 'MATRICULADAS':1, 'PORMATRICULAR':2, 'PORAPROBAR': 3, 'ADICIONES': 4,
- 'CANCELADAS' : 5, 'CURSADAS': 6,'PORAPROBAR_HABILITABLE':7, 'PORAPROBAR_VALIDABLE': 8}
- # Rango de edad para registro en el sistema
- EDAD = {'MIN': 13, 'MAX': 70 }
- annio = datetime.now().year
- BIRTH_YEAR_CHOICES = list( reversed ( range(annio - EDAD['MAX'], annio - EDAD['MIN']) ))
- #ACCIONES SOBRE LA MATRICULA DE ESPACIOS ACADEMICOS
- ESTADO_MATRICULA = { 'PREMATRICULADA': 'P', 'MATRICULADA': 'M', 'CANCELADA': 'C' }
- ESTADO_ASIGNATURA = ( ('M','MATRICULADA'), ('A', 'ADICION'), ('C','CANCELACION') )
- CLASS_LABELS = [ 'label label-info', 'label label-success', 'label label-primary', 'label label-warning', 'label label-danger', 'label label-default' ]
- CLASS_ESTADO = {'M': CLASS_LABELS[1], 'A': CLASS_LABELS[3], 'C': CLASS_LABELS[4]}
- EVENTOS_ACADEMICOS = { "PREINSCRIPCION": 1, "INSCRIPCION": 2, "MATRICULA_ACADEMICA": 3, "PAGO_ORDINARIO": 4,
- "PAGO_EXTRAORDINARIO": 5, "ADICION": 6, "CANCELACION_ESPACIO": 7,
- "HOMOLOGACIONES": 8, "VALIDACIONES": 9, "CONTINUIDAD ACADEMICA": 10,
- "CURSO_VACACIONAL": 13, "DIPLOMADO": 14, "SEMINARIO": 17, "HABILITACIONES": 21,
- "SOLICITUD_ESTIMULO": 23, "SELECCION_HORARIO": 24, "CURSO_CAPACITACION": 25 ,"RECEPCION DOCUMENTOS GRADO": 26, "GRADOS": 27,
- "PRUEBAS DE SELECCION": 28, "PUBLICACION DE ADMITIDOS": 29, "INDUCCION": 30, "INICIO_CLASES": 31,
- "SOLICITUD SALIDAS PEDAGOGICAS": 32, "RECESO": 33, "INICIO_ELECTIVAS": 34, "APROBACION DE ESTIMULOS": 35,
- "REGISTRO_ELECTIVAS": 36, "REVISION Y AJUSTES": 37, "CALIFICACION ELECTIVAS": 38,
- "EVALUACION_1_CORTE": 51, "EVALUACION_2_CORTE": 52, "EVALUACION_3_CORTE": 53, "PRIMER_CORTE": 57,
- "SEGUNDO_CORTE": 58, "TERCER_CORTE": 59, "NOTAS_1_CORTE": 54, "NOTAS_2_CORTE": 55,
- "NOTAS_3_CORTE": 56, "CALIFICACION_DOCENTE": 79 }
- # Cuales de los productos son excluidos para facutacion por valor unico
- EXCLUIR_PRODUCTOS = ( EVENTOS_ACADEMICOS['PREINSCRIPCION'], EVENTOS_ACADEMICOS['MATRICULA_ACADEMICA'], EVENTOS_ACADEMICOS['CURSO_VACACIONAL'] ,
- EVENTOS_ACADEMICOS['DIPLOMADO'], EVENTOS_ACADEMICOS['SEMINARIO'], EVENTOS_ACADEMICOS['CURSO_CAPACITACION'] )
- ## Indica los codigos del evento tipo Cortes de la tabla ConceptoProcesosPago
- CORTES = ( EVENTOS_ACADEMICOS['PRIMER_CORTE'] , EVENTOS_ACADEMICOS['SEGUNDO_CORTE'], EVENTOS_ACADEMICOS['TERCER_CORTE' ])
- #Cantidad de cortes institucionales para efectos de notas regulares
- NUM_CORTES_PERIODO = len(CORTES)
- TIPO_DESCUENTOS = {'SMMLV': 3, 'VALOR_PROGRAMA': 0, 'COSTO_MATRICULA': 1, 'mSMMLV': 2}
- DESCUENTO_VOTACION = 0.1
- #Cantidad de Electivas de bienestar universatario a cursar por los estudiantes
- CANTIDAD_ELECTIVAS = 1
- ELECTIVAS_X_SEMESTRE = 1
- #Estados solicitud
- ESTADOS_SOLICITUD = { 'SIN_REVISION': {'CODIGO':0,'DESCRIPCION':'SIN REVISION'},
- 'NEGADO': {'CODIGO': 1,'DESCRIPCION': 'SOLICITUD NEGADA'},
- 'APROBADO':{'CODIGO':2,'DESCRIPCION':'SOLICITUD APROBADA'},
- 'LEGALIZADO': {'CODIGO':3, 'DESCRIPCION':'SOLICITUD LAGALIZADA'},
- 'CAMBIO':{'CODIGO':4,'DESCRIPCION':'CAMBIO SOLICITUD'},
- 'BLOQUEADO':{'CODIGO':4,'DESCRIPCION':'BLOQUEADO'},
- }
- CLASS_SOLICITUD = [CLASS_LABELS[5], CLASS_LABELS[4], CLASS_LABELS[1], CLASS_LABELS[0], CLASS_LABELS[3]]
- # Longitud del numero telefonico valido
- PHONE = {'MIN': 7, 'MAX': 13 }
- #Valores máximos y mínimos para matricula
- CRED_MATRICULAS = {'MIN': 0.6, 'MAX': 1, 'ADD': 6 }
- # Valor que toma una variable cuando no es ninguno de los anteriores (No confundir con Nulo)
- KEY_NONE = -1
- NONE = { KEY_NONE : u'Ninguno de los anteriores' }
- # Flag que indica si se va a realizar un control por propedéutica
- CONTROL_PROPEDEUTICA = True
- # Longitud mínima de Password
- MIN_PASSWORD = 8
- # SEMANAS POR DEFECTO PARA CADA PERIODO
- SEMANAS = 16
- # DEPENDENCIA POR DEFECTO PARA LOS PROGRAMAS CARGADOS
- DEPENDENCIA_DEFAULT = 0
- # CODIGO DE BARRAS TIPO
- NUM_BARCODE = ( (1,'ORDINARIO'),(2,'EXTRAORDINARIO'))
- ### JORNADAS
- JORNADAS = ( ('D', 'DIURNO'),('N','NOCTURNO'),('M', 'MIXTA') )
- ## SNIES
- #Maximos semestres en SNIES
- MAX_SEMESTRE_SNIES = 2
- #TIPOS DE NOTA
- #TIPO_NOTA = {'RE': 1 , 'HA': 2, 'HO': 3, 'VA': 4, 'CN': 5, 'PP': 6, 'TG': 7, 'DI': 8,'PF':11 }
- TIPO_NOTA = {'REGULAR': 1, 'HABILITACION': 2, 'HOMOLOGACION': 3, 'VALIDACION': 4, \
- 'CURSOS_VACACIONES': 5, 'HOMOLOGACION_INTERNA': 6, 'TRABAJO_GRADO': 7, 'DIPLOMADO': 8, 'CONVALIDACION': 9}
- EXCLUIR_PROMEDIO = ( TIPO_NOTA['CONVALIDACION'], TIPO_NOTA['HOMOLOGACION'])
- #Tipificacion areas_comunes
- AREAS_TYPE = ( ('1', 'DE PROGRAMA'), ('2', 'BIENESTAR UNIVERSIRARIO'), ('3', 'EDUCACION PARA EL TRABAJO') )
- """
- Patrones para Validadores
- """
- DOCUMENT_FORMAT = r'^[0-9]*$'
- PERIOD_FORMAT = r'^[A-Z]-[0-9]{4}$'
- DATE_FORMAT = '%Y/%m/%d'
- #DATETIME_INPUT_FORMATS = '%d-%m-%Y'
- NAME_FORMAT=ur"^[A-Za-z]{2,}([\s][A-Za-z]{2,})*$"
- """
- Roles fijos del sistema
- """
- STATIC_PROFILES = {
- 'ASPIRANTE': 1, 'ESTUDIANTE': 2, 'PROFESOR': 3, 'FINANCIERA': 9, 'EXTERNO': 19,
- }
- #Indica que roles no pueden ser agregados desde el backend de usuarios
- NOAVAILABLE_GROUPS = [ STATIC_PROFILES['ASPIRANTE'], STATIC_PROFILES['ESTUDIANTE'] ]
- # Financiera
- #Longitud del consecutivo para recibos
- RECIBO_LEN = 9
- ESTADOS_RECIBO = ( ('S', 'NO CONFIRMADO'), ('C', 'CONFIRMADO'), ('A', 'ANULADO' ), ('D', 'DEVUELTO' ), ('P', 'PENDIENTE POR SALDO'))
- CLASS_RECIBO = { 'S': 'label label-default', 'C': 'label label-success', 'A': 'label label-danger', 'D': 'label label-info', 'P': 'label label-warning' }
- ##################################################################################+
- ### variables de django
- DEBUG = True
- TEMPLATE_DEBUG = DEBUG
- DEBUG_TOOLBAR_PANELS = [
- 'debug_toolbar.panels.versions.VersionsPanel',
- 'debug_toolbar.panels.timer.TimerPanel',
- 'debug_toolbar.panels.settings.SettingsPanel',
- 'debug_toolbar.panels.headers.HeadersPanel',
- 'debug_toolbar.panels.request.RequestPanel',
- 'debug_toolbar.panels.sql.SQLPanel',
- 'debug_toolbar.panels.staticfiles.StaticFilesPanel',
- 'debug_toolbar.panels.templates.TemplatesPanel',
- 'debug_toolbar.panels.cache.CachePanel',
- 'debug_toolbar.panels.signals.SignalsPanel',
- 'debug_toolbar.panels.logging.LoggingPanel',
- 'debug_toolbar.panels.redirects.RedirectsPanel',
- ]
- INTERCEPT_REDIRECTS = False
- INTERNAL_IPS = ('127.0.0.1',)
- ADMINS = (
- # ('Your Name', 'your_email@example.com'),
- ('Wilson Pimiento', 'wpimiento@itfip.edu.co'),
- ('Darwin Munoz', 'dmunoz@itfip.edu.co'),
- )
- MANAGERS = ADMINS
- ENVIRONMENT = {
- 'production': {
- 'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
- 'NAME': 'ryca', # Or path to database file if using sqlite3.
- # The following settings are not used with sqlite3:
- 'USER': 'postgres',
- 'PASSWORD': 'ccaga65692337xx',
- 'HOST': '192.168.11.34', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
- 'PORT': '5434',
- 'CONN_MAX_AGE': 60, # Set to empty string for default.
- },
- 'local': {
- 'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
- 'NAME': 'test_ryca', # Or path to database file if using sqlite3.
- # The following settings are not used with sqlite3:
- 'USER': 'postgres',
- 'PASSWORD': '1118niwradsaxdesarrollo',
- 'HOST': '192.168.11.79', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
- 'PORT': '5434', # Set to empty string for default.
- 'CONN_MAX_AGE': 60,
- },
- }
- DATABASES = {
- 'default': {
- 'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
- 'NAME': os.environ.get('RYCA_DB_NAME', ''), # Or path to database file if using sqlite3.
- # The following settings are not used with sqlite3:
- 'USER': os.environ.get('RYCA_DB_USER', ''),
- 'PASSWORD': os.environ.get('RYCA_DB_PASSWORD', ''),
- 'HOST': os.environ.get('RYCA_DB_HOST', ''), # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
- 'PORT': os.environ.get('RYCA_DB_PORT', '5432'),
- 'CONN_MAX_AGE': 60, # Set to empty string for default.
- },
- }
- # Defino en una lista los enrutadores de las conexiones a las diferentes DB
- #DATABASE_ROUTERS = ['snies.router.SniesRouter',]
- if not DEBUG:
- EMAIL_HOST = 'localhost'
- EMAIL_PORT = 1025
- EMAIL_HOST_USER = ''
- EMAIL_HOST_PASSWORD = ''
- EMAIL_USE_TLS = False
- DEFAULT_FROM_EMAIL = 'testing@example.com'
- # run in terminal: python -m smtpd -n -c DebuggingServer localhost:1025
- else:
- EMAIL_USE_TLS = True
- EMAIL_HOST = 'smtp.gmail.com'
- EMAIL_ACCOUNTS = {'soporte1_ryca@itfip.edu.co': 'sryca001+',
- 'soporte2_ryca@itfip.edu.co': 'sryca002+',
- 'soporte3_ryca@itfip.edu.co': 'sryca003+',
- 'soporte4_ryca@itfip.edu.co': 'sryca004+',
- 'soporte5_ryca@itfip.edu.co': 'sryca005+',
- }
- ACCOUNTS = EMAIL_ACCOUNTS.items()
- EMAIL_HOST_USER = EMAIL_ACCOUNTS.items()[0][0]
- EMAIL_HOST_PASSWORD = EMAIL_ACCOUNTS.items()[0][1]
- EMAIL_PORT = 587
- EMAIL_SUBJECTS = { 'PREINSCRIPCION': 'Preinscripción realizada', 'INSCRIPCION': 'Inscripción satisfactoria', 'PROMOCION': 'Aspirante Promovido',
- 'PAGO': 'Pago realizado','VERIFICACION_PREINSCRIPCION':'Revisar la información','VERIFICACION_ESTIMULOS':'Verificar informacion estimulos' }
- ## SESIONES
- SESSION_EXPIRE_AT_BROWSER_CLOSE = True
- SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'
- ## CACHE
- ## PARA PRODUCTION PONER MEMCACHE
- CACHES = {
- 'default': {
- 'BACKEND': 'ryca.cache_backend.MemcachedCache',
- 'LOCATION': "%s:11211" % os.environ.get('RYCA_MEMCACHE_HOST', '192.168.11.79'),
- 'TIMEOUT': 86400,
- }
- }
- # Hosts/domain names that are valid for this site; required if DEBUG is False
- # See https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts
- ALLOWED_HOSTS = ['*']
- # Local time zone for this installation. Choices can be found here:
- # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
- # although not all choices may be available on all operating systems.
- # In a Windows environment this must be set to your system time zone.
- TIME_ZONE = 'America/Bogota'
- # Language code for this installation. All choices can be found here:
- # http://www.i18nguy.com/unicode/language-identifiers.html
- LANGUAGE_CODE = 'es-CO'
- #LANGUAGE_CODE = 'en-us'
- ENCODING='utf8'
- LOCALE = "es_CO.utf-8"
- SITE_ID = 1
- # If you set this to False, Django will make some optimizations so as not
- # to load the internationalization machinery.
- USE_I18N = True
- # If you set this to False, Django will not format dates, numbers and
- # calendars according to the current locale.
- USE_L10N = True
- # If you set this to False, Django will not use timezone-aware datetimes.
- USE_TZ = True
- # Absolute filesystem path to the directory that will hold user-uploaded files.
- # Example: "/var/www/example.com/media/"
- MEDIA_ROOT = RYCA_PATH+'/ryca/media'
- # URL that handles the media served from MEDIA_ROOT. Make sure to use a
- # trailing slash.
- # Examples: "http://example.com/media/", "http://media.example.com/"
- MEDIA_URL = '/media/'
- PHOTO_UPLOAD = 'photos'
- DIRECTORY ='/uploads/'
- ### Configuracion FileBrowser
- FILEBROWSER_EXTENSIONS = {
- #'Folder': [''],
- 'Image': ['.jpg','.jpeg','.gif','.png'],
- 'Document': ['.pdf','.doc',],
- 'Compress': ['.zip', ],
- #'Video': ['.mov','.wmv','.mpeg','.mpg','.avi','.rm'],
- #'Audio': ['.mp3','.mp4','.wav','.aiff','.midi','.m4p']
- }
- FILEBROWSER_SELECT_FORMATS = {
- 'image': ['Image'],
- 'document': ['Document'],
- #'media': ['Video','Audio'],
- }
- REMESAS_EXT = ['.mr5', '.txt']
- PATH_ADJUNTOS = {
- 'INSCRIPCION': os.path.join( ( '%s/uploads/files/inscripcion' % MEDIA_ROOT )),
- 'MATRICULA': os.path.join( ( '%s/uploads/files/matricula' % MEDIA_ROOT )),
- 'ESTIMULOS': os.path.join( ( '%s/uploads/files/estimulos' % MEDIA_ROOT )),
- 'VOTACION': os.path.join( ( '%s/uploads/votacion' % MEDIA_ROOT )),
- 'ACTAS': os.path.join( ( '%s/uploads/actas' % MEDIA_ROOT )),
- 'CARNET': os.path.join( ( '%s/uploads/carnet' % MEDIA_ROOT )),
- }
- FILEBROWSER_VERSIONS_BASEDIR = '_versions/'
- FILEBROWSER_VERSIONS = {
- 'admin_thumbnail': {'verbose_name': 'Admin Thumbnail', 'width': 60, 'height': 60, 'opts': 'crop'},
- 'thumbnail': {'verbose_name': 'Thumbnail (1 col)', 'width': 50, 'height': 50, 'opts': 'crop'},
- 'small': {'verbose_name': 'Small (2 col)', 'width': 140, 'height': '', 'opts': ''},
- 'medium': {'verbose_name': 'Medium (4col )', 'width': 300, 'height': '', 'opts': ''},
- #'big': {'verbose_name': 'Big (6 col)', 'width': 460, 'height': '', 'opts': ''},
- #'large': {'verbose_name': 'Large (8 col)', 'width': 680, 'height': '', 'opts': ''},
- }
- FILEBROWSER_VERSION_QUALITY = 90
- FILEBROWSER_ADMIN_VERSIONS = ['small', 'admin_thumbnail',]
- FILEBROWSER_ADMIN_THUMBNAIL = 'admin_thumbnail'
- FILEBROWSER_PLACEHOLDER = '' # Ruta de la image (esta es relativa a la ruta de almacenamiento)
- FILEBROWSER_SHOW_PLACEHOLDER = False # Si la imagen original no existe
- FILEBROWSER_FORCE_PLACEHOLDER = False
- FILEBROWSER_MAX_UPLOAD_SIZE = 1048576 # Tamaño en bytes
- FILEBROWSER_NORMALIZE_FILENAME = True # normalizar los filename cuando son subidos y remover los caracteres no alfabumericos
- FILEBROWSER_DEFAULT_PERMISSIONS = 0755
- FILEBROWSER_OVERWRITE_EXISTING = True
- #PHOTO_PATH = RYCA_PATH + '/ryca/static/img'
- # Absolute path to the directory static files should be collected to.
- # Don't put anything in this directory yourself; store your static files
- # in apps' "static/" subdirectories and in STATICFILES_DIRS.
- # Example: "/var/www/example.com/static/"
- STATIC_ROOT = ''
- # URL prefix for static files.
- # Example: "http://example.com/static/", "http://static.example.com/"
- STATIC_URL = '/static/'
- # Additional locations of static files
- STATICFILES_DIRS = (
- # Put strings here, like "/home/html/static" or "C:/www/django/static".
- # Always use forward slashes, even on Windows.
- # Don't forget to use absolute paths, not relative paths.
- os.path.join( ( '%s/ryca/static' % RYCA_PATH )),
- )
- # List of finder classes that know how to find static files in
- # various locations.
- STATICFILES_FINDERS = (
- 'django.contrib.staticfiles.finders.FileSystemFinder',
- 'django.contrib.staticfiles.finders.AppDirectoriesFinder',
- # 'django.contrib.staticfiles.finders.DefaultStorageFinder',
- )
- FILE_UPLOAD_HANDLERS = ("django.core.files.uploadhandler.MemoryFileUploadHandler",
- "django.core.files.uploadhandler.TemporaryFileUploadHandler",)
- # Make this unique, and don't share it with anybody.
- SECRET_KEY = 'ln61y5!d%4hoffb@*kz#3*k$!-6#ed$l#lkopy9&l#&w@0k1c!'
- # List of callables that know how to import templates from various sources.
- TEMPLATE_LOADERS = (
- 'django.template.loaders.filesystem.Loader',
- 'django.template.loaders.app_directories.Loader',
- # 'django.template.loaders.eggs.Loader',
- )
- AUTHENTICATION_BACKENDS = (
- 'oauth2_provider.backends.OAuth2Backend',
- 'django.contrib.auth.backends.ModelBackend',
- )
- MIDDLEWARE_CLASSES = (
- 'django.middleware.common.CommonMiddleware',
- 'django.middleware.csrf.CsrfViewMiddleware',
- 'django.contrib.sessions.middleware.SessionMiddleware',
- 'django.contrib.auth.middleware.AuthenticationMiddleware',
- 'django.contrib.messages.middleware.MessageMiddleware',
- 'ryca.middleware.session.Sesion',
- 'ryca.middleware.filebrowser.FileBrowser',
- 'corsheaders.middleware.CorsMiddleware',
- 'debug_toolbar.middleware.DebugToolbarMiddleware',
- # Uncomment the next line for simple clickjacking protection:
- # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
- )
- ROOT_URLCONF = 'ryca.urls'
- # Python dotted path to the WSGI application used by Django's runserver.
- WSGI_APPLICATION = 'ryca.wsgi.application'
- # Procesador de contexto carga manual
- TEMPLATE_CONTEXT_PROCESSORS = (
- 'django.contrib.auth.context_processors.auth',
- 'django.core.context_processors.debug',
- 'django.core.context_processors.i18n',
- 'ryca.context_processors.ryca',
- 'django.core.context_processors.request',
- )
- TEMPLATE_DIRS = (
- # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
- # Always use forward slashes, even on Windows.
- # Don't forget to use absolute paths, not relative paths.
- os.path.join( ( '%s/ryca/templates' % RYCA_PATH )),
- )
- DJANGO_APPS = (
- 'django.contrib.auth',
- 'django.contrib.contenttypes',
- 'django.contrib.sessions',
- 'django.contrib.sites',
- 'django.contrib.messages',
- 'django.contrib.staticfiles',
- 'debug_toolbar',
- 'django.contrib.humanize',
- #Admin
- #'django_admin_bootstrapped.bootstrap3',
- 'django_admin_bootstrapped',
- 'django.contrib.admin',
- )
- THIRD_PARTY_APPS = (
- 'smart_selects',
- 'autocomplete_light',
- 'captcha',
- 'widget_tweaks',
- 'filebrowser',
- 'django_bootstrap_calendar',
- 'djcelery',
- 'corsheaders',
- 'webcam',
- 'storages',
- #'channels',
- )
- PROJECT_APPS = (
- 'academicos',
- 'admisiones',
- 'bienestar',
- 'calendario_academico',
- 'calificacion_docente',
- 'cpanel',
- 'cursos',
- 'estudiantes',
- 'financiera',
- 'graduados',
- 'matriculas',
- 'educacion_noformal',
- 'profesores',
- 'usuarios',
- 'servicios',
- 'notas',
- 'reportes',
- 'oauth2_provider',
- 'rest_framework',
- )
- INSTALLED_APPS = DJANGO_APPS + THIRD_PARTY_APPS + PROJECT_APPS + ('ryca',)
- # A sample logging configuration. The only tangible logging
- # performed by this configuration is to send an email to
- # the site admins on every HTTP 500 error when DEBUG=False.
- # See http://docs.djangoproject.com/en/dev/topics/logging for
- # more details on how to customize your logging configuration.
- LOGGING = {
- 'version': 1,
- 'disable_existing_loggers': False,
- 'filters': {
- 'require_debug_false': {
- '()': 'django.utils.log.RequireDebugFalse'
- }
- },
- 'handlers': {
- 'mail_admins': {
- 'level': 'ERROR',
- 'filters': ['require_debug_false'],
- 'class': 'django.utils.log.AdminEmailHandler'
- }
- },
- 'loggers': {
- 'django.request': {
- 'handlers': ['mail_admins'],
- 'level': 'ERROR',
- 'propagate': True,
- },
- }
- }
- RECAPTCHA_PUBLIC_KEY = '6Le37EUUAAAAANC5NhqXfzhhmF7n8dk-8ma-2nr-'
- RECAPTCHA_PRIVATE_KEY = '6Le37EUUAAAAAKoPkIWmv22DvzVUWkmxuse6lf1E'
- NOCAPTCHA = True
- RECAPTCHA_USE_SSL = False
- ## Configuracion Celery
- #BROKER_URL = 'amqp://guest:guest@192.168.11.79//'
- BROKER_HOST = os.environ.get('BROKER_HOST', 'localhost')
- BROKER_PORT = os.environ.get('BROKER_PORT', '5672')
- BROKER_USER = os.environ.get('BROKER_USER', '')
- BROKER_PASSWORD = os.environ.get('BROKER_PASSWORD', '')
- BROKER_VHOST = "/"
- # Configuración de colas
- #CELERY_QUEUES = (
- # Queue('my_queue', routing_key='my_queue'),
- #)
- # Configuración de número de workers (Por defect5)
- CELERY_CONCURRENCY = 5
- CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend'
- CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
- CELERY_IMPORTS = ("academicos.task", "calendario_academico.task", "admisiones.task", "ryca.task" )
- # Cargamos celery y lo cargamos
- import djcelery
- djcelery.setup_loader()
- #TODO: API REST FULL y OAUTH
- #FixME: verificar en modo produccion
- CORS_ORIGIN_ALLOW_ALL = True
- """
- REST_FRAMEWORK = {
- 'DEFAULT_AUTHENTICATION_CLASSES': (
- 'oauth2_provider.ext.rest_framework.OAuth2Authentication',
- )
- }"""
- OAUTH2_PROVIDER = {
- # this is the list of available scopes
- 'SCOPES': {'read': 'Read scope', 'write': 'Write scope', 'groups': 'Access to your groups'}
- }
- ##### Acceso a Twitter
- TWITTER = {
- 'API_KEY' : 'H39nqZ4YCW6qmju8xm9GOUuPH',
- 'API_SECRET': 'aYZxP5MDhTRk7Fr7Um2TdPLdu8Z7CabD6fGLgzO9yBcWuYW3hp',
- 'ACCESS_TOKEN': '2791214514-j133RzN0sq6oFsm74NMR9qKhRWGjB6qTDLGIsbX',
- 'TOKEN_SECRET': 'rZlH4WRoUosJe9oCr7yCjYb1PPqjiRczU0pTmBkXxVqZy',
- 'IES_ACCOUNT': 'Itfip',
- }
- ## HOST
- DOMAIN = 'http://plataformaryca.itfip.edu.co'
- MONGODB_DATABASES = {
- "default": {
- "name": os.environ.get('MONGO_DB_NAME', ''),
- "host": os.environ.get('MONGO_DB_HOST', ''),
- "username": os.environ.get('MONGO_DB_USER', ''),
- "password": os.environ.get('MONGO_DB_PASSWORD', ''),
- "tz_aware": True, # if you using timezones in django (USE_TZ = True)
- },
- }
- INSTALLED_APPS += ("django_mongoengine", )
- #STATICFILES_STORAGE = 'storages.backends.sftpstorage.SFTPStorage'
- # DEFAULT_FILE_STORAGE = 'storages.backends.sftpstorage.SFTPStorage'
- SFTP_STORAGE_HOST = '192.168.11.79'
- SFTP_STORAGE_ROOT = '/home/desarrollo/media/'
- SFTP_STORAGE_PARAMS = {
- "port": 22 ,
- "username": 'desarrollo',
- "password": 'd3sarroll0abc*'
- }
- # SFTP_STORAGE_FILE_MODE =
- # SFTP_STORAGE_DIR_MODE =
- """
- CHANNEL_LAYERS = {
- "default": {
- "BACKEND": "asgi_redis.RedisChannelLayer",
- "CONFIG": {
- "hosts": [("localhost", 6379)],
- },
- "ROUTING": "ryca.routing.channel_routing",
- },
- }
- """
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement