Example #1
0
def perfil_usuario_libros(request, username):
    """
	Muestra el perfil de un usuario tercero, enfocado en los libros disponibles
	"""
    template = "perfiles/perfil_usuario_libros.html"

    libros_perfil = {'tiene_libros_prestados': False, 'tiene_libros_disponibles': False}

    # redirigir a la pagina perfil_propio si es el caso
    user_obj = User.objects.get(username=username)
    if user_obj == request.user:
        return HttpResponseRedirect(reverse('perfiles:perfil_propio'))

    perfil = Perfil.objects.get(usuario__username=username)
    historial_libros = obtener_historial_libros(perfil)
    libros_prestados = libros_prestados_bcompartida = libros_disponibles = []

    if LibrosPrestados.objects.filter(perfil_receptor=perfil, fecha_devolucion=None).exists():
        libros_perfil['tiene_libros_prestados'] = True
        libros_prestados = LibrosPrestados.objects.filter(perfil_receptor=perfil, fecha_devolucion=None)

    if LibrosPrestadosBibliotecaCompartida.objects.filter(perfil_prestamo=perfil, fecha_devolucion=None).exists():
        libros_perfil['tiene_libros_prestados'] = True
        libros_prestados_bcompartida = LibrosPrestadosBibliotecaCompartida.objects.filter(perfil_prestamo=perfil,
                                                                                          fecha_devolucion=None)

    if LibrosDisponibles.objects.filter(perfil=perfil, disponible=True, prestado=False).exists():
        libros_perfil['tiene_libros_disponibles'] = True
        libros_disponibles = LibrosDisponibles.objects.filter(perfil=perfil, disponible=True, prestado=False)

    # Grupos Perfil
    grupos = None
    if UsuariosGrupo.objects.filter(perfil=perfil, activo=True).exists():
        usuarios_grupo_obj = UsuariosGrupo.objects.filter(perfil=perfil, activo=True).select_related('grupo')
        grupos = [ug.grupo for ug in usuarios_grupo_obj]

    avatar = obtener_avatar_large(perfil)

    # Si es admin de una biblioteca, poner link a la biblioteca
    bibliotecas_compartidas = None

    context = {'libros_prestados': libros_prestados, 'libros_prestados_bcompartida': libros_prestados_bcompartida,
               'libros_disponibles': libros_disponibles,
               'historial_libros': historial_libros, 'libros_perfil': libros_perfil, 'perfil': perfil, 'avatar': avatar,
               'grupos': grupos,
               'bibliotecas_compartidas': bibliotecas_compartidas}

    return render(request, template, context)
Example #2
0
def perfil_usuario(request, username):
    """
	Muestra el perfil de un usuario tercero, enfocado en las actividades
	"""
    template = "perfiles/perfil_usuario.html"
    perfil = Perfil.objects.get(usuario__username=username)

    # redirigir a la pagina perfil_propio si es el caso
    user_obj = User.objects.get(username=username)
    if user_obj == request.user:
        return HttpResponseRedirect(reverse('perfiles:perfil_propio'))

    # Muro, comentarios y actividades
    actividad = []
    actividad_0 = obtener_muro_perfil(perfil)
    for act in actividad_0:
        if act.__class__.__name__ == "CommentPerfil":
            actividad.append((act, "comment"))
        else:
            actividad.append((act, "notificacion"))

    # Grupos Perfil
    grupos = None
    if UsuariosGrupo.objects.filter(perfil=perfil, activo=True).exists():
        usuarios_grupo_obj = UsuariosGrupo.objects.filter(perfil=perfil, activo=True).select_related('grupo')
        grupos = [ug.grupo for ug in usuarios_grupo_obj]

    historial_libros = obtener_historial_libros(perfil)

    avatar = obtener_avatar_large(perfil)

    # Si es admin de una biblioteca, poner link a la biblioteca
    bibliotecas_compartidas = None

    context = {'historial_libros': historial_libros, 'perfil': perfil, 'avatar': avatar, 'actividad': actividad,
               'grupos': grupos, 'bibliotecas_compartidas': bibliotecas_compartidas}

    return render(request, template, context)