source: gestor_consulta/base/views.py @ 08f501a

Last change on this file since 08f501a was 08f501a, checked in by Argenis Osorio <argenisosorio580@…>, 7 años ago

Añadiendo los filter_fields a las clases ViewSets? de las Entidades, Municipios y Parroquias

  • Propiedad mode establecida a 100644
File size: 4.1 KB
Línea 
1# -*- coding: utf-8 -*-
2"""
3Sistema de Consulta Pública
4
5Copyleft (@) 2017 CENDITEL nodo Mérida - https://planificacion.cenditel.gob.ve/trac/wiki/ModeladoTopicos_2017
6"""
7## @package participacion.views
8#
9# Vistas correspondientes a la aplicación participacion
10# @author Rodrigo Boet (rboet 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
15from django.shortcuts import render
16from django.http import HttpResponse
17from django.apps import apps
18from django.views.generic import TemplateView
19from django.contrib.auth.mixins import LoginRequiredMixin
20import json
21
22
23class Error403(TemplateView):
24    """!
25    Clase para mostrar el error de permisos
26
27    @author Rodrigo Boet (rboet at cenditel.gob.ve)
28    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
29    @date 09-01-2017
30    @version 1.0.0
31    """
32    template_name = "base.403.html"
33   
34   
35class Inicio(TemplateView):
36    """!
37    Clase para mostrar el inicio del sistema
38
39    @author Rodrigo Boet (rboet at cenditel.gob.ve)
40    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
41    @date 24-04-2017
42    @version 1.0.0
43    """
44    template_name = "inicio.html"
45
46
47def actualizar_combo(request):
48    """!
49    Función que actualiza los datos de un select dependiente de los datos de otro select
50
51    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
52    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
53    @date 28-04-2016
54    @param request <b>{object}</b> Objeto que contiene la petición
55    @return Devuelve un HttpResponse con el JSON correspondiente a los resultados de la consulta y los respectivos
56            elementos a cargar en el select
57    """
58    try:
59        if not request.is_ajax():
60            return HttpResponse(json.dumps({'resultado': False, 'error': str('La solicitud no es ajax')}))
61
62        ## Valor del campo que ejecuta la acción
63        cod = request.GET.get('opcion', None)
64
65        ## Nombre de la aplicación del modelo en donde buscar los datos
66        app = request.GET.get('app', None)
67
68        ## Nombre del modelo en el cual se va a buscar la información a mostrar
69        mod = request.GET.get('mod', None)
70       
71        ## Atributo por el cual se va a filtrar la información
72        campo = request.GET.get('campo', None)
73
74        ## Atributo del cual se va a obtener el valor a registrar en las opciones del combo resultante
75        n_value = request.GET.get('n_value', None)
76
77        ## Atributo del cual se va a obtener el texto a registrar en las opciones del combo resultante
78        n_text = request.GET.get('n_text', None)
79
80        ## Nombre de la base de datos en donde buscar la información, si no se obtiene el valor por defecto es default
81        bd = request.GET.get('bd', 'default')
82
83        filtro = {}
84
85        if app and mod and campo and n_value and n_text and bd:
86            modelo = apps.get_model(app, mod)
87           
88            if cod:
89                filtro = {campo: cod}
90
91            out = "<option value=''>%s...</option>" % str("Seleccione")
92
93            combo_disabled = "false"
94
95            if cod != "" and cod != "0":
96                for o in modelo.objects.using(bd).filter(**filtro).order_by(n_text):
97                    out = "%s<option value='%s'>%s</option>" \
98                          % (out, str(o.__getattribute__(n_value)),
99                             o.__getattribute__(n_text))
100            else:
101                combo_disabled = "true"
102
103            return HttpResponse(json.dumps({'resultado': True, 'combo_disabled': combo_disabled, 'combo_html': out}))
104
105        else:
106            return HttpResponse(json.dumps({'resultado': False,
107                                            'error': str('No se ha especificado el registro')}))
108
109    except Exception as e:
110        return HttpResponse(json.dumps({'resultado': False, 'error': e}))
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.