def modificar_campo(request, campo_id):
    # Si no existe campo con id campo_id envio error 404
    campo = get_object_or_404(Campo, pk=campo_id)
    if request.method == 'POST':
        form = CampoForm(request.POST,instance = campo)
        if form.is_valid():   
            campo = form.save(commit=False)
            campo.save()
            messages.success(request, "Campo actualizado exitosamente.")
            return HttpResponseRedirect("/flujos/consultar_paso/%s/" % campo.paso.id)
        else:
            messages.error(request, "Verifique los campos introducidos e intente de nuevo.")
    else:
         form = CampoForm(instance=campo)
         return render_to_response("flujos/modificar_campo.html", {'form': form,
                                                          'campo_id': campo_id },
                                        context_instance=RequestContext(request))
def agregar_campo(request, paso_id):

    p = get_object_or_404(Paso, pk=paso_id)
    
    if (p.flujo.unidad).permite(usuario=request.user, permiso=SolicitudPrivilegio.PRIVILEGIO_RESPONSABLE):
      
        if request.method == 'GET':
            
            f = CampoForm()
            return render_to_response("flujos/agregar_campo.html", {'form':f, 'paso_id':paso_id},
                                        context_instance=RequestContext(request))
        else:
        
            f = CampoForm(request.POST)
            
            if f.is_valid():
                try:
                    c = Campo.objects.get(paso=p, nombre=f.cleaned_data['nombre'])
                    messages.error(request, "El nombre del campo ya existe para este paso.")
                    return HttpResponseRedirect("/flujos/consultar_paso/%s/" % paso_id)
                
                except Campo.DoesNotExist:
                
                    campo = f.save(commit=False)
                    campo.paso = p    
                    campo.save()
                    messages.success(request, "Campo creado exitosamente.")
                    
                    return HttpResponseRedirect("/flujos/consultar_paso/%s/" % paso_id)
                
            else:
                 messages.error(request, "Verifique los campos introducidos e intente de nuevo.")
                 return render_to_response("flujos/agregar_campo.html", {'form':f, 'paso_id':paso_id},
                                        context_instance=RequestContext(request))
    else:
        messages.error(request, "Esta funcionalidad requiere permisos de Responsable de Unidad.")
        return render_to_response("usuarios/index.html", context_instance=RequestContext(request))