source: seguimiento_proyectos/sepai/utils/views.py @ 6c62735

desarrollo
Last change on this file since 6c62735 was 6c62735, checked in by lhernandez <lhernandez@…>, 7 años ago

Creado modelo de datos para subproyecto, fases y metas de subproyecto; se adaptaron los formularios de los modelos de datos a la plantilla para el registro de subproyecto, por adaptar el formulario del modelo meta de las fases de un subproyectos, continuando el desarrollo del modulo para el registro de subproyectos

  • Propiedad mode establecida a 100644
File size: 5.7 KB
Línea 
1# -*- encoding: utf-8 -*-
2"""!
3Vista que controla los procesos de las utilidades de la plataforma
4
5@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
6@copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
7@date 09-01-2017
8@version 1.0.0
9"""
10import json
11from django.core.exceptions import ObjectDoesNotExist
12from django.core.serializers.json import DjangoJSONEncoder
13from django.http import HttpResponse
14from django.shortcuts import render
15from dal import autocomplete
16
17from .models import (
18    Pais, Estado, Municipio, Parroquia
19)
20
21
22class PaisAutocomplete(autocomplete.Select2QuerySetView):
23    """!
24    Crea el autocomplete para los Paises
25
26    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
27    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
28    @date 09-01-2017
29    @version 1.0.0
30    """
31    def get_queryset(self):
32        # No se olvide de filtrar los resultados en función del visitante !
33        if not self.request.user.is_authenticated():
34            return Pais.objects.none()
35
36        qs = Pais.objects.all()
37        if self.q:
38            qs = qs.filter(nombre__istartswith=self.q)
39
40        return qs
41
42
43class EstadoAutocomplete(autocomplete.Select2QuerySetView):
44    """!
45    Crea el autocomplete para los Estados
46
47    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
48    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
49    @date 09-01-2017
50    @version 1.0.0
51    """
52
53    def get_queryset(self):
54        # No se olvide de filtrar los resultados en función del visitante !
55        if not self.request.user.is_authenticated():
56            return Estado.objects.none()
57
58        qs = Estado.objects.all()
59
60        if self.q:
61            qs = qs.filter(nombre__istartswith=self.q)
62
63        return qs
64
65
66class MunicipioAutocomplete(autocomplete.Select2QuerySetView):
67    """!
68    Crea el autocomplete para los Municipios
69
70    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
71    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
72    @date 09-01-2017
73    @version 1.0.0
74    """
75
76    def get_queryset(self):
77        # No se olvide de filtrar los resultados en función del visitante !
78        if not self.request.user.is_authenticated():
79            return Municipio.objects.none()
80
81        qs = Municipio.objects.all()
82
83        if self.q:
84            qs = qs.filter(nombre__istartswith=self.q)
85
86        return qs
87
88
89class ParroquiaAutocomplete(autocomplete.Select2QuerySetView):
90    """!
91    Crea el autocomplete para las Parroquias
92
93    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
94    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
95    @date 09-01-2017
96    @version 1.0.0
97    """
98
99    def get_queryset(self):
100        # No se olvide de filtrar los resultados en función del visitante !
101        if not self.request.user.is_authenticated():
102            return Parroquia.objects.none()
103
104        qs = Parroquia.objects.all()
105
106        if self.q:
107            qs = qs.filter(nombre__istartswith=self.q)
108
109        return qs
110
111
112def obtenerEstados():
113    """
114    Función que permite obtener la lista de estados
115
116    El método hace una lista consultando el modelo Estado
117
118    @return: Lista de estados
119    """
120    try:
121
122        if Estado.objects.exists():
123            consulta = Estado.objects.all().values('id', 'nombre')
124        else:
125            consulta = [{'id': '', 'nombre': ''}]
126    except:
127        consulta = [{'id': '', 'nombre': ''}]
128
129    return consulta
130
131def obtenerMunicipios(request):
132    """
133    Función que permite obtener la lista de municipios asociados a un estado
134
135    El método hace un llamado al modelo para realizar una consulta
136
137    @param id_estado: Identificador del estado
138    @type id_estado: entero
139
140    @return: Lista de municipios asociados al estado
141    """
142    try:
143        if Municipio.objects.exists():
144            id_estado = request.GET.get('id_estado')
145            municipios = Municipio.objects.filter(estado_id=id_estado).values('id', 'nombre')
146            data = json.dumps(list(municipios), cls=DjangoJSONEncoder)
147            print(data)
148        else:
149            data = {}
150    except:
151        data = {}
152        pass
153
154    return HttpResponse(data, content_type='application/json')
155
156
157def obtenerParroquias(request):
158    """
159    Función que permite obtener la lista de municipios asociados a un estado
160
161    El método hace un llamado al modelo para realizar una consulta
162
163    @param id_estado: Identificador del estado
164    @type id_estado: entero
165
166    @return: Lista de municipios asociados al estado
167    """
168    try:
169        if Municipio.objects.exists():
170            id_municipio = request.GET.get('id_municipio')
171            municipios = Parroquia.objects.filter(municipio_id=id_municipio).values('id', 'nombre')
172            data = json.dumps(list(municipios), cls=DjangoJSONEncoder)
173        else:
174            data = {}
175    except:
176        data = {}
177        pass
178
179    return HttpResponse(data, content_type='application/json')
180
181
182def listMunicipios():
183    """
184    Función que permite obtener el municipio asociado a una parroquia
185
186    El método hace un llamado a un servicio REST de la aplicación comun
187
188    @param id_parroquia: Identificador de la parroquia
189    @type id_parroquia: entero
190
191    @return: El municipio asociado a la parroquia
192    """
193    try:
194        if Municipio.objects.exists():
195            consulta = Municipio.objects.all().values('id', 'nombre')
196        else:
197            consulta = [{'id': '', 'nombre': ''}]
198    except:
199        consulta = [{'id': '', 'nombre': ''}]
200
201    return consulta
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.