From 215b6f08fbcdf27ee89bd112db386e3a95b9a3c4 Mon Sep 17 00:00:00 2001 From: Pascal Repond Date: Wed, 21 Jan 2026 20:33:05 +0100 Subject: [PATCH] fix: display saved views in the sidebar on all pages --- src/config/settings.py | 1 + src/core/context_processors.py | 15 +++++++++++++++ src/core/queries.py | 6 +----- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/config/settings.py b/src/config/settings.py index 2b31ff7..77425e3 100644 --- a/src/config/settings.py +++ b/src/config/settings.py @@ -96,6 +96,7 @@ "django.contrib.auth.context_processors.auth", "django.contrib.messages.context_processors.messages", "core.context_processors.version", + "core.context_processors.saved_views", ], "builtins": [ "lucide.templatetags.lucide", diff --git a/src/core/context_processors.py b/src/core/context_processors.py index bd9ebe6..f5ceb36 100644 --- a/src/core/context_processors.py +++ b/src/core/context_processors.py @@ -2,6 +2,7 @@ from functools import lru_cache +from .models import SavedView from .utils import get_datakult_version @@ -22,3 +23,17 @@ def version(_request): A dictionary with the version string. """ return {"version": _cached_version()} + + +def saved_views(request): + """Add saved views to the template context for authenticated users. + + Args: + request: The HTTP request object. + + Returns: + A dictionary with the user's saved views queryset. + """ + if request.user.is_authenticated: + return {"saved_views": request.user.saved_views.all()} + return {"saved_views": SavedView.objects.none()} diff --git a/src/core/queries.py b/src/core/queries.py index 1e1455f..e00029f 100644 --- a/src/core/queries.py +++ b/src/core/queries.py @@ -4,7 +4,7 @@ from django.db.models import Q from .filters import apply_filters, extract_filters, get_field_choices, resolve_sorting -from .models import Media, SavedView +from .models import Media def build_search_queryset(query): @@ -55,9 +55,6 @@ def build_media_context(request): paginator = Paginator(queryset, 20) page_obj = paginator.get_page(page_number) - # Saved views for the current user - saved_views = request.user.saved_views.all() if request.user.is_authenticated else SavedView.objects.none() - return { "media_list": page_obj.object_list, "page_obj": page_obj, @@ -67,6 +64,5 @@ def build_media_context(request): "contributor": contributor, "tag": tag, "filters": filters, - "saved_views": saved_views, **get_field_choices(), }