source: participacion_consulta/base/views.py @ d923030

Last change on this file since d923030 was d923030, checked in by rudmanmrrod <rudman22@…>, 7 años ago

Centralizada la función para validar participación, agregados mensajes a sesiones, conectado el login a la api

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