Conjunto de cambios ef6d66a en seiven para gestion_informacion


Ignorar:
Fecha y hora:
07/12/2016 16:57:40 (hace 7 años)
Autor:
Ing. Roldan D. Vargas G <rvargas@…>
Branches:
master, carga
Children:
dc618c3
Parents:
1366bd7
Mensaje:

agregada funcionalidad para subir y procesar archivos (aún en desarrollo)

Ubicación:
gestion_informacion
Ficheros:
2 editados

Leyenda

No modificado
Añadido
Eliminado
  • gestion_informacion/ajax.py

    rfc268ed ref6d66a  
    1717from django.apps import apps
    1818from django.conf import settings
     19from django.core.files.storage import default_storage
     20from django.core.files.base import ContentFile
    1921
    20 from base.messages import MSG_NOT_AJAX, MSG_NOT_DOWNLOAD_FILE, MSG_NOT_UPLOAD_FILE, MSG_CREATED_FILE_SUCCESS, \
     22from base.messages import (
     23    MSG_NOT_AJAX, MSG_NOT_DOWNLOAD_FILE, MSG_NOT_UPLOAD_FILE, MSG_UPLOAD_FILE_SUCCESS, MSG_CREATED_FILE_SUCCESS,
    2124    MSG_CREATED_FILE_ERROR
     25)
    2226
    2327import logging
     
    5559        mod = request.GET.get('mod', None)
    5660
     61        ## Filtro para la consulta de datos a descargar
    5762        filter = request.GET.get('filter', None)
    5863
     
    8186                    else:
    8287                        sheet.write(0, c, cabecera['tag'], style)
    83                         sheet.col(c).width = 357 * (len(cabecera['tag']) + 1)
     88                        sheet.col(c).width = int(256 * (len(cabecera['tag']) + 1))
    8489                        c += 1
    8590
     
    8792            for cabecera in datos['cabecera'][1]:
    8893                sheet.write(1, i, cabecera['label'], font_bold)
    89                 sheet.col(i).width = 256 * (len(cabecera['label']) + 1)
     94                sheet.col(i).width = int(256 * (len(cabecera['label']) + 1))
    9095                i += 1
    9196
     
    115120            message = "%s. ERROR: %s" % (message, e)
    116121    return HttpResponse(json.dumps({'result': False, 'error': str(message)}))
     122
     123
     124@login_required
     125def cargar_archivo(request):
     126    """!
     127    Función que permite cargar datos en la aplicacion
     128
     129    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
     130    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     131    @date 07-12-2016
     132    @param request <b>{object}</b> Objeto que contiene la petición
     133    @return Devuelve un HttpResponse con el JSON correspondiente al resultado en la carga de datos
     134    """
     135    try:
     136        if not request.is_ajax():
     137            return HttpResponse(json.dumps({'result': False, 'message': str(MSG_NOT_AJAX)}))
     138
     139        ## Nombre de la aplicación o módulo
     140        app = request.POST.get('app', None)
     141
     142        ## Nombre del modelo en el cual se va a buscar la información a incluir en el archivo
     143        mod = request.POST.get('mod', None)
     144
     145        ## Filtro para el registro de datos
     146        filter = json.loads("{%s}" % request.POST.get('filter', ''))
     147
     148        ## Archivo con los datos a procesar
     149        file = request.FILES['file']
     150
     151        ## Codición que evalúa si se procede a registrar datos
     152        if app and mod and file:
     153            ruta = '%s/%s' % (settings.GESTION_INFORMACION_FILES, str(file))
     154            archivo = default_storage.save(ruta, ContentFile(file.read()))
     155
     156            modelo = apps.get_model(app, mod)
     157            instance = modelo()
     158            process = instance.gestion_process(archivo, **filter)
     159
     160            if process['result']:
     161                return HttpResponse(json.dumps({'result': True, 'message': str(MSG_UPLOAD_FILE_SUCCESS)}))
     162
     163            return HttpResponse(json.dumps({'result': False, 'message': process['message']}))
     164
     165        return HttpResponse(json.dumps({'result': True, 'message': str(MSG_UPLOAD_FILE_SUCCESS)}))
     166    except Exception as e:
     167        message = MSG_NOT_UPLOAD_FILE
     168        if settings.DEBUG:
     169            message = "%s. ERROR: %s" % (message, e)
     170    return HttpResponse(json.dumps({'result': False, 'error': str(message)}))
  • gestion_informacion/urls.py

    r98aa5f6 ref6d66a  
    2424urlpatterns += [
    2525    url(r'^ajax/descargar_archivo/?$', gestion_ajax.descargar_archivo, name='descargar_archivo'),
     26    url(r'^ajax/cargar_archivo/?$', gestion_ajax.cargar_archivo, name='cargar_archivo'),
    2627]
Nota: Vea TracChangeset para ayuda en el uso del visor de conjuntos de cambios.