Exemple #1
0
def perfil_propio(request):
    """
	Muestra el perfil del usuario que está hecho login enfocado en la actividad
	"""
    template = "perfiles/perfil_propio.html"
    perfil = obtener_perfil(request.user)
    avatar = obtener_avatar_large(perfil)

    # 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]

    # Usuario Leyendo
    actualmente_leyendo, libros_leidos_usuario = obtener_usuario_leyendo(perfil)

    libros_disponibles = LibrosDisponibles.objects.filter(perfil=perfil).select_related('libro')

    # autocomplete Usuario Leyendo
    titulos_autocomplete = {}
    autores_autocomplete = {}
    for l in libros_disponibles:
        titulos_autocomplete[l.libro.titulo] = (l.libro.id, l.libro.autor)

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

    for l in libros_disponibles:
        autores_autocomplete[l.libro.autor] = l.libro.id

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

    context = {'avatar': avatar, 'grupos': grupos, 'actualmente_leyendo': actualmente_leyendo,
               'libros_leidos_usuario': libros_leidos_usuario, 'titulos_autocomplete': json.dumps(titulos_autocomplete),
               'autores_autocomplete': json.dumps(autores_autocomplete), 'actividad': actividad,
               'bibliotecas_compartidas': bibliotecas_compartidas}

    return render(request, template, context)
Exemple #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)