From 78f71558ed853552492bcaba5340192062f3fe73 Mon Sep 17 00:00:00 2001 From: "IGNY8 VPS (Salman)" Date: Sun, 14 Dec 2025 22:49:24 +0000 Subject: [PATCH] dsffdsdsf --- ADMIN-SIDEBAR-DEBUG.md | 14 ++++++++++++++ backend/igny8_core/admin/dashboard.py | 8 ++++++-- backend/igny8_core/admin/site.py | 26 +++++++++++++++++--------- backend/igny8_core/settings.py | 2 +- 4 files changed, 38 insertions(+), 12 deletions(-) create mode 100644 ADMIN-SIDEBAR-DEBUG.md diff --git a/ADMIN-SIDEBAR-DEBUG.md b/ADMIN-SIDEBAR-DEBUG.md new file mode 100644 index 00000000..ee2198cf --- /dev/null +++ b/ADMIN-SIDEBAR-DEBUG.md @@ -0,0 +1,14 @@ +# Admin Sidebar Fix - Debug Log + +## Last Change (sidebar_navigation fix attempt) +**What I did:** Added `context['sidebar_navigation'] = custom_apps` in `each_context()` method in site.py +**Why:** Unfold uses `sidebar_navigation` variable in templates, not `available_apps` +**Result:** FAILED - Main group pages show NO sidebar, subpages show default Django sidebar + +## Current Fix Attempt +**What I did:** Reverted sidebar_navigation override, changed `show_all_applications: True` in settings.py +**Why:** Unfold's `get_sidebar_list()` builds sidebar_navigation from SIDEBAR.navigation config. When False, it expects navigation config. When True, it uses available_apps. +**Expected:** Custom sidebar shows on all pages using available_apps + +## Root Cause +Unfold has two modes: custom navigation (show_all_applications=False) OR auto from apps (show_all_applications=True). We need the second mode with our custom get_app_list(). diff --git a/backend/igny8_core/admin/dashboard.py b/backend/igny8_core/admin/dashboard.py index 093e5017..50b5361d 100644 --- a/backend/igny8_core/admin/dashboard.py +++ b/backend/igny8_core/admin/dashboard.py @@ -1,14 +1,13 @@ """ Custom Admin Dashboard with Key Metrics """ -from django.contrib.admin.views.decorators import staff_member_required +from django.contrib import admin from django.shortcuts import render from django.db.models import Count, Sum, Q from django.utils import timezone from datetime import timedelta -@staff_member_required def admin_dashboard(request): """Custom admin dashboard with operational metrics""" @@ -182,4 +181,9 @@ def admin_dashboard(request): 'alerts': alerts, } + # Merge with admin context to get sidebar and header + from igny8_core.admin.site import admin_site + admin_context = admin_site.each_context(request) + context.update(admin_context) + return render(request, 'admin/dashboard.html', context) diff --git a/backend/igny8_core/admin/site.py b/backend/igny8_core/admin/site.py index 2cd74b72..14747905 100644 --- a/backend/igny8_core/admin/site.py +++ b/backend/igny8_core/admin/site.py @@ -21,16 +21,15 @@ class Igny8AdminSite(UnfoldAdminSite): index_title = 'IGNY8 Administration' def get_urls(self): - """Get admin URLs - dashboard available at /admin/dashboard/ but not default""" + """Get admin URLs with dashboard available at /admin/dashboard/""" + from django.urls import path + from .dashboard import admin_dashboard + urls = super().get_urls() - # Dashboard is available at /admin/dashboard/ if needed, but not redirecting by default - # from django.urls import path - # from .dashboard import admin_dashboard - # custom_urls = [ - # path('dashboard/', self.admin_view(admin_dashboard), name='dashboard'), - # ] - # return custom_urls + urls - return urls + custom_urls = [ + path('dashboard/', self.admin_view(admin_dashboard), name='dashboard'), + ] + return custom_urls + urls def each_context(self, request): """ @@ -184,6 +183,15 @@ class Igny8AdminSite(UnfoldAdminSite): # regardless of app_label parameter (for consistent sidebar on all pages) organized_apps = [] + # Add Dashboard link as first item + organized_apps.append({ + 'name': '📊 Dashboard', + 'app_label': '_dashboard', + 'app_url': '/admin/dashboard/', + 'has_module_perms': True, + 'models': [], + }) + for group_name, group_config in custom_groups.items(): group_models = [] diff --git a/backend/igny8_core/settings.py b/backend/igny8_core/settings.py index 986a9701..d03ce2dd 100644 --- a/backend/igny8_core/settings.py +++ b/backend/igny8_core/settings.py @@ -652,7 +652,7 @@ UNFOLD = { }, "SIDEBAR": { "show_search": True, - "show_all_applications": False, # Use custom app_list from Igny8AdminSite + "show_all_applications": True, # Let Unfold show our custom app_list }, }