1 | # -*- coding: utf-8 -*- |
---|
2 | """ |
---|
3 | Sistema de Consulta Pública |
---|
4 | |
---|
5 | Copyleft (@) 2017 CENDITEL nodo Mérida - https://planificacion.cenditel.gob.ve/trac/wiki/ModeladoTopicos_2017 |
---|
6 | """ |
---|
7 | ## @package consulta.ajax |
---|
8 | # |
---|
9 | # Clases basadas en ajax |
---|
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 |
---|
15 | |
---|
16 | from django.http import JsonResponse |
---|
17 | from base.functions import createPreprocessingFiles, validate_dir |
---|
18 | from .models import Pregunta, Opcion |
---|
19 | |
---|
20 | def pregunta_list(request,pk): |
---|
21 | """! |
---|
22 | Función para listar las preguntas relacionadas a una consulta |
---|
23 | |
---|
24 | @author Rodrigo Boet (rboet at cenditel.gob.ve) |
---|
25 | @copyright GNU/GPLv2 |
---|
26 | @date 17-02-2017 |
---|
27 | @param request <b>{object}</b> Objeto que mantiene la peticion |
---|
28 | @param pk <b>{int}</b> Recibe id de la consulta |
---|
29 | @return Retorna un Json con los datos |
---|
30 | """ |
---|
31 | preguntas = Pregunta.objects.filter(consulta_id=pk) |
---|
32 | if(preguntas): |
---|
33 | datos = [] |
---|
34 | for item in preguntas.all(): |
---|
35 | datos.append({"texto_pregunta":item.texto_pregunta,"tipo_pregunta":item.tipo_pregunta_id, |
---|
36 | "id":item.id}) |
---|
37 | return JsonResponse({'success':True,'preguntas':datos}) |
---|
38 | return JsonResponse({'success':False,'mensaje':'No se encontraron preguntas'}) |
---|
39 | |
---|
40 | def opciones_list(request,pk): |
---|
41 | """! |
---|
42 | Función para listar las opciones relacionadas a una pregunta |
---|
43 | |
---|
44 | @author Rodrigo Boet (rboet at cenditel.gob.ve) |
---|
45 | @copyright GNU/GPLv2 |
---|
46 | @date 20-02-2017 |
---|
47 | @param request <b>{object}</b> Objeto que mantiene la peticion |
---|
48 | @param pk <b>{int}</b> Recibe id de la pregunta |
---|
49 | @return Retorna un Json con los datos |
---|
50 | """ |
---|
51 | opciones = Opcion.objects.filter(pregunta_id=pk) |
---|
52 | if(opciones): |
---|
53 | datos = [] |
---|
54 | for item in opciones.all(): |
---|
55 | datos.append({"id":item.id, "texto_opcion":item.texto_opcion}) |
---|
56 | return JsonResponse({'success':True,'opciones':datos}) |
---|
57 | return JsonResponse({'success':False,'mensaje':'No se encontraron opciones'}) |
---|
58 | |
---|
59 | def valid_dir(request,pk): |
---|
60 | """! |
---|
61 | Función para verificar que el directorio de la consulta este creado |
---|
62 | |
---|
63 | @author Rodrigo Boet (rboet at cenditel.gob.ve) |
---|
64 | @copyright GNU/GPLv2 |
---|
65 | @date 17-04-2017 |
---|
66 | @param request <b>{object}</b> Objeto que mantiene la peticion |
---|
67 | @param pk <b>{int}</b> Recibe id de la consulta |
---|
68 | @return Retorna un Json con la respuesta |
---|
69 | """ |
---|
70 | value = validate_dir(pk) |
---|
71 | return JsonResponse({'success':value}) |
---|
72 | |
---|
73 | def generar_texto_respuesta(request,pk): |
---|
74 | """! |
---|
75 | Función para generar los textos de la respuesta |
---|
76 | |
---|
77 | @author Rodrigo Boet (rboet at cenditel.gob.ve) |
---|
78 | @copyright GNU/GPLv2 |
---|
79 | @date 17-04-2017 |
---|
80 | @param request <b>{object}</b> Objeto que mantiene la peticion |
---|
81 | @param pk <b>{int}</b> Recibe id de la consulta |
---|
82 | @return Retorna un Json con los datos |
---|
83 | """ |
---|
84 | try: |
---|
85 | value = createPreprocessingFiles(pk) |
---|
86 | if value: |
---|
87 | return JsonResponse({'success':True,'mensaje':'Se generaron con éxito los textos de las respuestas'}) |
---|
88 | else: |
---|
89 | return JsonResponse({'success':False,'mensaje':'No se generaron los textos de las respuestas'}) |
---|
90 | except: |
---|
91 | return JsonResponse({'success':False,'mensaje':'Ocurrió un error inesperado'}) |
---|
92 | |
---|
93 | |
---|