source: sicp/apps/simulacion/matrizip/ajax.py @ 05eedbc

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

se agregan instrucciones de log

  • Property mode set to 100644
File size: 6.5 KB
Line 
1# coding=utf-8
2from datetime import date
3from django.http import HttpResponse
4from django.conf import settings
5from apps.comun.constantes import MSG_NOT_AJAX
6import os
7import json
8import sys
9import logging
10
11logger = logging.getLogger("matrizip")
12
13#Importar wrapper constructor de cadenas
14extapps_path = os.path.join(settings.PATH, "apis/chains/")
15
16if not extapps_path in sys.path:
17    sys.path.insert(1, extapps_path)
18del extapps_path
19from apis.chains import _svg_activities_builder
20
21def generar_grafico_prod(request):
22    """!
23    Función que permite generar el gráfico de la cadena productiva a partir de un código de producción
24    @author Ing. Roldan D. Vargas G. rvargas@cenditel.gob.ve
25    @author Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL) nodo Mérida
26    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
27    @date 28-07-2014
28    @pre Requiere auntenticación del usuario y selección de eslabon principal del cual generar la cadena
29    @param[in] request  Variable de tipo object que contiene las peticiones del sistema
30    @return Devuelve respuesta al sistema con los parámetros que permiten visualizar la ventana emergente sobre la
31    cual mostrar el gráfico de la cadena de producción
32    """
33    try:
34        if not request.is_ajax():
35            return HttpResponse(json.dumps({'resultado': False, 'error': MSG_NOT_AJAX}))
36
37        codigo = request.GET.get('rif', None)
38        narriba = request.GET.get('narriba', None)
39        nabajo = request.GET.get('nabajo', None)
40
41        if codigo and narriba and nabajo:
42            comando = "cd %s;%s --host=%s --port=%s --username=%s --password=%s --dbname=%s --levelsup=%s " \
43                      "--levelsdown=%s --output=%s PROD %s"
44
45            gen_graph = _svg_activities_builder.buildSvg(int(narriba),int(nabajo),
46                                                         settings.DATABASES['default']['HOST'],
47                                                         settings.DATABASES['default']['PORT'],
48                                                         settings.DATABASES['default']['NAME'],
49                                                         settings.DATABASES['default']['USER'],
50                                                         settings.DATABASES['default']['PASSWORD'],
51                                                         os.path.join(settings.PATH, "tmp/")+str(request.user),
52                                                         "PROD",str(codigo))
53
54            ahora = date.today().isoformat()
55
56            logger.info(
57                u"Se ha generado un nuevo gráfico de la matriz insumo / producto con el código de producción %s "
58                u"solicitado por el usuario %s" % (codigo, str(request.user))
59            )
60
61            return HttpResponse(json.dumps({'resultado': True, 'ahora': ahora, 'arriba': narriba, 'abajo': nabajo,
62                                            'usuario': str(request.user), 'varpk': 'codigo'}))
63
64        else:
65            return HttpResponse(json.dumps({'resultado': False, 'error': 'Debe indicar los parámetros necesarios '
66                                                                         'para generar el gráfico solicitado'}))
67
68    except Exception, e:
69        logger.error(
70            u"Ocurrió un error al generar el gráfico de la matriz insumo / producto solicitado por el usuario %s del "
71            u"código de producción %s. Detalles: %s" % (str(request.user), request.GET.get('rif', ''), str(e))
72        )
73        return HttpResponse(json.dumps({'resultado': False, 'error': e}))
74
75
76def generar_grafico_act(request):
77    """!
78    Función que permite generar el gráfico de la cadena productiva a partir de un código de actividad
79    @author Ing. Roldan D. Vargas G. rvargas@cenditel.gob.ve
80    @author Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL) nodo Mérida
81    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
82    @date 28-07-2014
83    @pre Requiere auntenticación del usuario y selección de eslabon principal del cual generar la cadena
84    @param[in] request  Variable de tipo object que contiene las peticiones del sistema
85    @return Devuelve respuesta al sistema con los parámetros que permiten visualizar la ventana emergente sobre la
86    cual mostrar el gráfico de la cadena de producción según la actividad seleccionada
87    """
88    try:
89        if not request.is_ajax():
90            return HttpResponse(json.dumps({'resultado': False, 'error': MSG_NOT_AJAX}))
91
92        codigo = request.GET.get('rif', None)
93        narriba = request.GET.get('narriba', None)
94        nabajo = request.GET.get('nabajo', None)
95
96        if codigo and narriba and nabajo:
97
98            gen_graph = _svg_activities_builder.buildSvg(int(narriba),int(nabajo),
99                                                         settings.DATABASES['default']['HOST'],
100                                                         settings.DATABASES['default']['PORT'],
101                                                         settings.DATABASES['default']['NAME'],
102                                                         settings.DATABASES['default']['USER'],
103                                                         settings.DATABASES['default']['PASSWORD'],
104                                                         os.path.join(settings.PATH, "tmp/")+str(request.user),
105                                                         "ACT",str(codigo))
106
107            ahora = date.today().isoformat()
108
109            logger.info(
110                u"Se ha generado un nuevo gráfico de la matriz insumo / producto de la actividad económica %s "
111                u"solicitada por el usuario %s" % (codigo, str(request.user))
112            )
113
114            return HttpResponse(json.dumps({'resultado': True, 'ahora': ahora, 'arriba': narriba, 'abajo': nabajo,
115                                            'usuario': str(request.user), 'varpk': 'codigo'}))
116
117        else:
118            return HttpResponse(json.dumps({'resultado': False, 'error': 'Debe indicar los parámetros necesarios '
119                                                                         'para generar el gráfico solicitado'}))
120
121    except Exception, e:
122        logger.error(
123            u"Ocurrió un error al generar el gráfico de la matriz insumo / producto para la actividad económica %s "
124            u"solicitado por el usuario %s. Detalles: %s" % (request.GET.get('rif', ''), str(request.user), str(e))
125        )
126        return HttpResponse(json.dumps({'resultado': False, 'error': e}))
Note: See TracBrowser for help on using the repository browser.