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))