Conjunto de cambios 3625c13 en participacion_consulta para base/views.py


Ignorar:
Fecha y hora:
03/10/2017 15:08:34 (hace 7 años)
Autor:
rudmanmrrod <rudman22@…>
Branches:
master
Children:
14afbd3
Parents:
fd72443
Mensaje:

Añadidas funciones para cargar los municipios y parroquias de acuerdo al seleccionado, todo por REST

Fichero:
1 editado

Leyenda

No modificado
Añadido
Eliminado
  • base/views.py

    rd923030 r3625c13  
    1414# @version 1.0
    1515from django.shortcuts import render
    16 from django.http import HttpResponse
     16from django.http import JsonResponse
    1717from django.apps import apps
    1818from django.views.generic import TemplateView
    1919from django.contrib.auth.mixins import LoginRequiredMixin
     20from base.functions import cargar_municipios, cargar_parroquias
    2021
    2122import json
     
    3334
    3435
    35 def actualizar_combo(request):
     36def buscar_municipio(request):
    3637    """!
    37     Función que actualiza los datos de un select dependiente de los datos de otro select
     38    Función buscar municipios (se puede filtrar por la entidad)
    3839
    39     @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
     40    @author Rodrigo Boet (robet at cenditel.gob.ve)
    4041    @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    @date 03-10-2017
    4243    @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
     44    @return Devuelve un JsonResponse con los datos
    4545    """
    46     try:
    47         if not request.is_ajax():
    48             return HttpResponse(json.dumps({'resultado': False, 'error': str('La solicitud no es ajax')}))
     46    entidad = request.GET.get('entidad',None)
     47    if(entidad):
     48        data = cargar_municipios(entidad)
     49    else:
     50        data = cargar_municipios()
     51    return JsonResponse(data,safe=False)
    4952
    50         ## Valor del campo que ejecuta la acción
    51         cod = request.GET.get('opcion', None)
     53def buscar_parroquia(request):
     54    """!
     55    Función buscar parroquias (se puede filtrar por el municipio)
    5256
    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}))
     57    @author Rodrigo Boet (robet at cenditel.gob.ve)
     58    @copyright <a href='https://www.gnu.org/licenses/gpl-3.0.en.html'>GNU Public License versión 3 (GPLv3)</a>
     59    @date 03-10-2017
     60    @param request <b>{object}</b> Objeto que contiene la petición
     61    @return Devuelve un JsonResponse con los datos
     62    """
     63    municipio = request.GET.get('municipio',None)
     64    if(municipio):
     65        data = cargar_parroquias(municipio)
     66    else:
     67        data = cargar_parroquias()
     68    return JsonResponse(data,safe=False)
Nota: Vea TracChangeset para ayuda en el uso del visor de conjuntos de cambios.