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