Index: FirmaEventos/urls.py
===================================================================
--- FirmaEventos/urls.py	(revision 66158c7b9966a1f890ffa6bff729168daea7e8b4)
+++ FirmaEventos/urls.py	(revision ae65f8e661c7e849ba3e4318d25524b96279d963)
@@ -40,3 +40,4 @@
     url(r'^', include('users.urls', namespace="users")),
     url(r'^', include('eventos.urls', namespace="events")),
+    url(r'^', include('participantes.urls', namespace="participantes")),
 ]
Index: base/templates/base.template.html
===================================================================
--- base/templates/base.template.html	(revision 3996539378feebee5dffe2a2fc14d6583ae678c3)
+++ base/templates/base.template.html	(revision ae65f8e661c7e849ba3e4318d25524b96279d963)
@@ -37,3 +37,4 @@
     </script>
     {% include 'base.alert.messages.html' %}
+    {% include 'base.vars.javascript.html' %}
 </html>
Index: base/templates/base.vars.javascript.html
===================================================================
--- base/templates/base.vars.javascript.html	(revision ae65f8e661c7e849ba3e4318d25524b96279d963)
+++ base/templates/base.vars.javascript.html	(revision ae65f8e661c7e849ba3e4318d25524b96279d963)
@@ -0,0 +1,6 @@
+{% load static from staticfiles %}
+<script type="text/javascript">
+    // URL para obtener data de usuario en evento
+    var URL_USUARIO_EVENTO = "{% url 'participantes:search_participante_nid' %}" ;
+        
+</script>
Index: eventos/templates/evento.firma.html
===================================================================
--- eventos/templates/evento.firma.html	(revision 248b1b4e6d07325b3da1a189f531fd1b01151340)
+++ eventos/templates/evento.firma.html	(revision ae65f8e661c7e849ba3e4318d25524b96279d963)
@@ -4,4 +4,5 @@
 {% block content %}
     <div class="content center">
+        <h3>{{nombre_evento}}</h3>
         <form id="form" method="post">
             {% csrf_token %}
@@ -12,7 +13,8 @@
             </div>
             
-            <a type="button" class="btn waves-effect red darken-1">
+            <a type="button" class="btn waves-effect red darken-1" onclick="get_event_user()">
                 <i class="material-icons left">search</i> Buscar
             </a>
+            <div id="datos_paricipante"></div>
         </form>
     </div>
Index: eventos/views.py
===================================================================
--- eventos/views.py	(revision 248b1b4e6d07325b3da1a189f531fd1b01151340)
+++ eventos/views.py	(revision ae65f8e661c7e849ba3e4318d25524b96279d963)
@@ -51,2 +51,16 @@
     form_class = FirmaEventoForm
     template_name = "evento.firma.html"
+    
+    def get_context_data(self, **kwargs):
+        """!
+        Metodo que permite cargar de nuevo valores en los datos de contexto de la vista
+    
+        @author Rodrigo Boet (rboet at cenditel.gob.ve)
+        @copyright GNU/GPLv3
+        @date 20-11-2017
+        @param self <b>{object}</b> Objeto que instancia la clase
+        @param kwargs <b>{object}</b> Objeto que contiene los datos de contexto
+        @return Retorna los datos de contexto
+        """
+        kwargs['nombre_evento'] = Evento.objects.get(pk=int(self.kwargs['pk']))
+        return super(SignEvent, self).get_context_data(**kwargs)
Index: participantes/urls.py
===================================================================
--- participantes/urls.py	(revision ae65f8e661c7e849ba3e4318d25524b96279d963)
+++ participantes/urls.py	(revision ae65f8e661c7e849ba3e4318d25524b96279d963)
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+from django.conf.urls import url
+
+from .views import *
+
+urlpatterns = [
+    url(r'^search-participante/(?P<pk>\d+)/(?P<pasaporte>.+)$', ParticipanteEventoSearch.as_view(), name='search_participante'),
+    url(r'^search-participante/$', ParticipanteEventoSearch.as_view(), name='search_participante_nid'),
+]
Index: participantes/views.py
===================================================================
--- participantes/views.py	(revision bf475917c09d88f08785ab64628b3b984facb248)
+++ participantes/views.py	(revision ae65f8e661c7e849ba3e4318d25524b96279d963)
@@ -1,3 +1,36 @@
 from django.shortcuts import render
+from django.http import JsonResponse
+from django.views.generic import TemplateView
+from .models import ParticipanteEvento
 
-# Create your views here.
+class ParticipanteEventoSearch(TemplateView):
+    """!
+    Muestra si un participante esta registrado en un evento
+
+    @author Rodrigo Boet  (rboet at cenditel.gob.ve)
+    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
+    @date 20-11-2017
+    @version 1.0.0
+    """
+    template_name = "inicio.html"
+        
+    def get(self,request,pk,pasaporte):
+        """!
+        Metodo para antender la vista por GET
+    
+        @author Rodrigo Boet (rboet at cenditel.gob.ve)
+        @copyright GNU/GPLv3
+        @date 20-11-2017
+        @param self <b>{object}</b> Objeto que instancia la clase
+        @param request <b>{object}</b> Objeto que contiene la petición
+        @param pk <b>{int}</b> Recibe el id del evento
+        @param pasaporte <b>{str}</b> Recibe el número de pasaporte
+        @return Retorna un Json con la respuesta
+        """
+        participante = ParticipanteEvento.objects.filter(fk_evento=pk,fk_participante__pasaporte=pasaporte)
+        data = {}
+        if(participante):
+            p = participante.get()
+            data = {'firmo':p.firma,'datos':{'nombres':p.fk_participante.nombres,'apellidos':p.fk_participante.apellidos,
+                        'pasaporte':pasaporte,'correo':p.fk_participante.correo}}
+        return JsonResponse(data,safe=False)
Index: static/js/funciones.js
===================================================================
--- static/js/funciones.js	(revision 2f56f4e3dfdc8e70242c6050bf87f3c0aa6572e3)
+++ static/js/funciones.js	(revision ae65f8e661c7e849ba3e4318d25524b96279d963)
@@ -1,2 +1,7 @@
+/**
+ * Funcion para refrescar el captcha
+ * @param element Recibe el parametro
+*/
+
 function refresh_captcha(element) {
     $form = $(element).parents('form');
@@ -9,3 +14,62 @@
 
     return false;
-} 
+}
+
+/**
+ * Función para obtener los usuarios de un evento
+*/
+function get_event_user() {
+    var modal = false;
+    var pasaporte = $('#id_pasaporte').val();
+    if (pasaporte!='') {
+        var routes = $(location).attr('pathname').split('/');
+        var pk = routes[routes.length-1];
+        var url = URL_USUARIO_EVENTO+pk+"/"+pasaporte;
+        $.getJSON(url, function(data){
+            if (Object.keys(data).length > 0) {
+                construir_datos(data.datos);
+            }
+            else{
+                simple_modal('Lo sentimos, no esta registrado para firmar');
+            }
+        }).fail(function(jqxhr, textStatus, error) {
+            simple_modal('Petición fállida' + textStatus + ", " + error);
+        })
+    }
+    else{
+        simple_modal('Debe ingresar un pasaporte');
+    }    
+}
+
+/**
+ * Función para crear un modal sencillo
+*/
+function simple_modal(mensaje) {
+    MaterialDialog.alert(
+        mensaje,
+        {
+            title:'Alerta',
+            buttons:{
+                close:{
+                    text:'cerrar',
+                    className:'red',
+                }
+            }
+        }
+    );
+}
+
+/**
+ * Función para construir la data del participante
+ * @param data Recibe los datos para crear la lista
+*/
+function construir_datos(data) {
+    $('#datos_paricipante').html('');
+    html = '<ul class="collection">'
+    html += '<li class="collection-item"><b>Nombre: </b>'+data.nombres+'</li>';
+    html += '<li class="collection-item"><b>Apellido: </b>'+data.apellidos+'</li>';
+    html += '<li class="collection-item"><b>Pasaporte: </b>'+data.pasaporte+'</li>';
+    html += '<li class="collection-item"><b>Correo: </b>'+data.correo+'</li>';
+    html += '</ul>';
+    $('#datos_paricipante').html(html);
+}
