def votar(request, id_solicitud):
    '''
    vista en la cual un miembro del comite emite su voto
    Tambien se comprueba que con el voto la solicitud ya sea aprobada, rechazada o siga pendiente
    1) Si es aprobada el item pasa a CON y sus items relacionados a REV y la linea base a ROTA
    2) Si es rechazada el item pasa a FIN y la linea base queda en CERRADA
    3) Si sige pendiente el item continua BLO
    '''
    solicitud=get_object_or_404(SolicitudCambio, id=id_solicitud)
    if puede_votar(request.user.id, id_solicitud)!=True:
        return HttpResponseRedirect('/denegado')
    item=solicitud.item
    if request.method=='POST':
        formulario=VotoForm(request.POST)
        if formulario.is_valid():
            voto=Voto(solicitud=solicitud,usuario=request.user,voto=request.POST['voto'])
            voto.save()
            votacionCerrada(solicitud)
            aprobada=2
            if votacionCerrada(solicitud):
                resultado(solicitud)
                if solicitud.estado=='APROBADA':
                    aprobada=1
                    item.estado='FIN'
                    item.save()
                    listaitems =itemsProyecto(solicitud.proyecto)
                    maxiditem = getMaxIdItemEnLista(listaitems)
                    global nodos_visitados
                    global papa
                    papa=item
                    nodos_visitados = [0]*(maxiditem+1)
                    estadoDependientes(item.id)
                    item.estado='CON'
                    item.save()
                    lb=item.lineaBase
                    lb.estado='ROTA'
                    lb.save()
                else:
                    item.estado='FIN'
                    item.save()
                    aprobada=0
            request.session['cantSolicitudes']=contar_solicitudes(request.user.id)
            return render_to_response('solicitudesCambio/votacion_satisfactoria.html',{'aprobada':aprobada}, context_instance=RequestContext(request))
    else:
        formulario=VotoForm()
    return render_to_response('solicitudesCambio/votar_solicitud.html',{'formulario':formulario,'solicitud':solicitud}, context_instance=RequestContext(request))
def listar_solicitudes(request):

    '''
    vista para listar las solicitudes de cambio de un usuario que pertenezca a algun
    comite de cambios
    '''

    request.session['cantSolicitudes']=contar_solicitudes(request.user.id)
    request.session['nivel'] = 0

    lista_proyectos=Proyecto.objects.filter(comite__id=request.user.id)
    lista_solicitudes=[]
    if len(lista_proyectos)==0:
        return HttpResponseRedirect('/denegado')

    for proyecto in lista_proyectos:
        lista=SolicitudCambio.objects.filter(proyecto=proyecto,estado='PENDIENTE')
        for solicitud in lista:
            lista_solicitudes.append(solicitud)




    return render_to_response('solicitudesCambio/listar_solicitudes.html', {'datos': lista_solicitudes}, context_instance=RequestContext(request))
def principal(request):

    request.session['cantSolicitudes']=contar_solicitudes(request.user.id)
    return render_to_response('principal.html', context_instance=RequestContext(request))