source: firmaeventos/participantes/views.py @ a3deb5f

Last change on this file since a3deb5f was 83885cf, checked in by lhernandez <lhernandez@…>, 7 years ago

Cambios en los mensajes

  • Property mode set to 100755
File size: 6.2 KB
RevLine 
[bf47591]1from django.shortcuts import render
[ae65f8e]2from django.http import JsonResponse
[d60a9ab]3from django.views import View
[a1de3f1]4from django.utils.decorators import method_decorator
5from django.views.decorators.csrf import csrf_exempt
[bf47591]6
[d60a9ab]7from .models import (
[b48da64]8    ParticipanteEvento, Participante
[d60a9ab]9)
10from eventos.models import (
11    Evento
12)
13
14class ParticipanteEventoSearch(View):
[ae65f8e]15    """!
16    Muestra si un participante esta registrado en un evento
17
18    @author Rodrigo Boet  (rboet at cenditel.gob.ve)
[5dea5ff]19    @copyright <a href='https://www.gnu.org/licenses/gpl-3.0.en.html'>GNU Public License versión 3 (GPLv3)</a>
[ae65f8e]20    @date 20-11-2017
21    @version 1.0.0
22    """
[d60a9ab]23
[ae65f8e]24    def get(self,request,pk,pasaporte):
25        """!
26        Metodo para antender la vista por GET
[d60a9ab]27
[ae65f8e]28        @author Rodrigo Boet (rboet at cenditel.gob.ve)
29        @copyright GNU/GPLv3
30        @date 20-11-2017
31        @param self <b>{object}</b> Objeto que instancia la clase
32        @param request <b>{object}</b> Objeto que contiene la petición
33        @param pk <b>{int}</b> Recibe el id del evento
34        @param pasaporte <b>{str}</b> Recibe el número de pasaporte
35        @return Retorna un Json con la respuesta
36        """
37        participante = ParticipanteEvento.objects.filter(fk_evento=pk,fk_participante__pasaporte=pasaporte)
38        data = {}
39        if(participante):
40            p = participante.get()
41            data = {'firmo':p.firma,'datos':{'nombres':p.fk_participante.nombres,'apellidos':p.fk_participante.apellidos,
[b84cfca]42                        'pasaporte':pasaporte,'correo':p.fk_participante.correo,'documento':p.fk_evento.serial}}
[ae65f8e]43        return JsonResponse(data,safe=False)
[d60a9ab]44
[5d88f36]45
[a1de3f1]46@method_decorator(csrf_exempt, name='dispatch')
[d60a9ab]47class AjaxParticipanteFirmaEvento(View):
48    """!
49    Ajax para sincronizar la firma del participante
50
51    @author Leonel P. Hernandez M.  (lhernandez at cenditel.gob.ve)
52    @copyright <a href='https://www.gnu.org/licenses/gpl-3.0.en.html'>GNU Public License versión 3 (GPLv3)</a>
53    @date 21-11-2017
54    @version 1.0.0
55    """
56    model = Evento
57    model_participante = ParticipanteEvento
58
59    def post(self, request):
60        """!
61        Metodo para antender la vista por POST
62
63        @author Leonel P. Hernandez M (lhernandez at cenditel.gob.ve)
64        @copyright GNU/GPLv3
65        @date 21-11-2017
[5d88f36]66        @param request <b>{object}</b> Objeto que contiene la petición
[d60a9ab]67        @return Retorna un Json con la respuesta
68        """
69        data = {}
70        validate = False
71        mensaje = ''
72        evento_id = request.POST.get('event_id', None)
73        serial = request.POST.get('serial', None)
[a1de3f1]74        pasaporte = request.POST.get('pasaporte', None)
[d17da63]75        pasaporte = request.POST.get('pasaporte', None)
[d60a9ab]76        if evento_id is not None and pasaporte is not None:
77            if serial is not None:
[b48da64]78                try:
[a1de3f1]79                    update_evento = self.model.objects.get(pk=evento_id)
[b48da64]80                    update_evento.serial = serial
81                    update_evento.save()
[83885cf]82                    mensaje += ''
[b48da64]83                except Exception as e:
84                    print (e)
85                    validate = False
86                    mensaje += 'No existe el evento que desea actualizar \n'
87            try:
[a1de3f1]88                participante = Participante.objects.get(pasaporte=pasaporte)
[b48da64]89            except Exception as e:
90                print (e)
91                validate = False
92                mensaje += 'El pasaporte no coincide con los\
93                            participantes que se ecuentran registrados \n'
94            try:
[a1de3f1]95                update_parti_event = self.model_participante.objects.get(
[b48da64]96                                    fk_participante=participante.pk,
97                                    fk_evento=evento_id)
98                update_parti_event.firma = True
99                update_parti_event.save()
[52a0eb9]100                finally_event = self.model_participante.objects.filter(fk_evento=evento_id, firma=False).count ()
[83885cf]101                mensaje_final_firma = ''
[52a0eb9]102                if finally_event == 0:
103                    update_evento = self.model.objects.get(pk=evento_id)
104                    update_evento.activo = False
105                    update_evento.save()
[83885cf]106                    mensaje_final_firma += ', Ya se registraron todas las firmas al documento \n'
107                mensaje += 'Se actualizó la firma del participante %s, \
108                para el evento %s %s' % (update_parti_event.fk_participante.nombres,
109                                      update_parti_event.fk_evento.nombre_evento,
110                                      mensaje_final_firma)
[b48da64]111                validate = True
112            except Exception as e:
113                print(e)
114                validate = False
[52a0eb9]115                mensaje += 'El evento no está asociado al participante\
[b48da64]116                            o no se encuentra registrado\n'
117
[d60a9ab]118        else:
119            mensaje += 'Debes enviar al menos\
120                        dos argumentos (evento_id, pasaporte)'
121            validate = False
122        data = {'validate': validate, 'mensaje': mensaje}
123
124        return JsonResponse(data, safe=False)
[2c1cb23]125
[5d88f36]126
[2c1cb23]127class ParticipantesRestantes(View):
128    """!
129    Muestra si el participante restante es el último
130
131    @author Rodrigo Boet  (rboet at cenditel.gob.ve)
132    @copyright <a href='https://www.gnu.org/licenses/gpl-3.0.en.html'>GNU Public License versión 3 (GPLv3)</a>
133    @date 22-11-2017
134    @version 1.0.0
135    """
136
137    def get(self,request,evento):
138        """!
139        Metodo para antender la vista por GET
140
141        @author Rodrigo Boet (rboet at cenditel.gob.ve)
142        @copyright GNU/GPLv3
143        @date 22-11-2017
144        @param self <b>{object}</b> Objeto que instancia la clase
145        @param request <b>{object}</b> Objeto que contiene la petición
146        @param evento <b>{int}</b> Recibe el id del evento
147        @return Retorna un Json con la respuesta
148        """
149        participante_evento = ParticipanteEvento.objects.select_related().filter(fk_evento=evento)
150        falta_porfirma = participante_evento.filter(firma=False).count()
151        data = {}
152        if(falta_porfirma==1):
153            evento = Evento.objects.get(pk=evento)
154            data = {'valid':True,'data':{'posX':evento.pos_x,'posY':evento.pos_y,'page':evento.pag}}
155        else:
156            data = {'valid':False}
157
[5d88f36]158        return JsonResponse(data, safe=False)
Note: See TracBrowser for help on using the repository browser.