def editar_proyecto(request,id_proyecto):
    '''
    Vista para editar un proyecto,o su lider o los miembros de su comite
    '''
    proyecto= Proyecto.objects.get(id=id_proyecto)
    nombre= proyecto.nombre
    if proyecto.estado!='PEN':
        return HttpResponseRedirect ('/denegado')
    if request.method == 'POST':
        # formulario enviado
        proyecto_form = ProyectoForm(request.POST, instance=proyecto)
        if proyecto_form.is_valid():
            if proyecto_form.cleaned_data['fecha_ini']>proyecto_form.cleaned_data['fecha_fin']:
                messages.add_message(request, settings.DELETE_MESSAGE, "Fecha de inicio debe ser menor a la fecha de finalizacion")
            else:
                lider=proyecto_form.cleaned_data['lider']
                roles = Group.objects.get(name='Lider')
                lider.groups.add(roles)
            # formulario validado correctamente
                proyecto_form.save()
                return HttpResponseRedirect('/proyectos/register/success/')
    else:
        # formulario inicial
        proyecto_form = ProyectoForm(instance=proyecto)
    return render_to_response('proyectos/editar_proyecto.html', { 'proyecto': proyecto_form, 'nombre':nombre}, context_instance=RequestContext(request))
def registrar_proyecto(request):
    '''
    Vista para registrar un nuevo proyecto con su lider y miembros de su comite de cambios
    '''

    if request.method=='POST':
        formulario = ProyectoForm(request.POST)

        if formulario.is_valid():
            if formulario.cleaned_data['fecha_ini']>formulario.cleaned_data['fecha_fin']:
                messages.add_message(request, settings.DELETE_MESSAGE, "Fecha de inicio debe ser menor a la fecha de finalizacion")
            else:
                lider=formulario.cleaned_data['lider']
                #asigna el rol lider al usuario seleccionado
                roles = Group.objects.get(name='Lider')
                lider.groups.add(roles)
                formulario.save()
                return HttpResponseRedirect('/proyectos/register/success')
    else:
        formulario = ProyectoForm()
    return render_to_response('proyectos/registrar_proyecto.html',{'formulario':formulario}, context_instance=RequestContext(request))
def importar_proyecto(request, id_proyecto):
    '''
    Vista para importar un proyecto, dado en <id_proyecto>  con su lider y miembros del comite
    '''

    proyecto=get_object_or_404(Proyecto, id=id_proyecto)
    if request.method=='POST':
        formulario = ProyectoForm(request.POST, initial={'nombre':proyecto.nombre,'observaciones':proyecto.observaciones, 'descripcion':proyecto.descripcion, 'fecha_ini':proyecto.fecha_ini, 'fecha_fin':proyecto.fecha_fin} )

        #verifica que la fecha de inicio sea menor a la de fin
        if formulario.is_valid():
            if formulario.cleaned_data['fecha_ini']>formulario.cleaned_data['fecha_fin']:
                messages.add_message(request, settings.DELETE_MESSAGE, "Fecha de inicio debe ser menor a la fecha de finalizacion")
            else:
                lider=formulario.cleaned_data['lider']
                roles = Group.objects.get(name='Lider')
                lider.groups.add(roles)
                formulario.save()
                return HttpResponseRedirect('/proyectos/register/success')
    else:
        formulario = ProyectoForm(initial={'nombre':proyecto.nombre,'observaciones':proyecto.observaciones, 'descripcion':proyecto.descripcion, 'fecha_ini':proyecto.fecha_ini, 'fecha_fin':proyecto.fecha_fin} )
    return render_to_response('proyectos/registrar_proyecto.html',{'formulario':formulario}, context_instance=RequestContext(request))