From 27caf0ef7d5fbda9b17d870028d9eba6400f0b57 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Fri, 15 Jan 2021 17:36:46 +0100
Subject: [PATCH] Do not show inactive dashboard widgets as available widgets

---
 aleksis/core/models.py | 12 ++++++++++--
 aleksis/core/views.py  |  4 +++-
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/aleksis/core/models.py b/aleksis/core/models.py
index d0042d654..8927844a4 100644
--- a/aleksis/core/models.py
+++ b/aleksis/core/models.py
@@ -239,7 +239,10 @@ class Person(ExtensibleModel):
     @property
     def dashboard_widgets(self):
         return [
-            w.widget for w in DashboardWidgetOrder.objects.filter(person=self).order_by("order")
+            w.widget
+            for w in DashboardWidgetOrder.objects.filter(person=self, widget__active=True).order_by(
+                "order"
+            )
         ]
 
     def save(self, *args, **kwargs):
@@ -749,7 +752,12 @@ class DashboardWidgetOrder(ExtensibleModel):
     @classproperty
     def default_dashboard_widgets(cls):
         """Get default order for dashboard widgets."""
-        return [w.widget for w in cls.objects.filter(person=None, default=True).order_by("order")]
+        return [
+            w.widget
+            for w in cls.objects.filter(person=None, default=True, widget__active=True).order_by(
+                "order"
+            )
+        ]
 
     class Meta:
         verbose_name = _("Dashboard widget order")
diff --git a/aleksis/core/views.py b/aleksis/core/views.py
index 44e1aa33d..41b36acfb 100644
--- a/aleksis/core/views.py
+++ b/aleksis/core/views.py
@@ -868,7 +868,9 @@ class EditDashboardView(View):
             if not self.default_dashboard
             else DashboardWidgetOrder.default_dashboard_widgets
         )
-        not_used_widgets = DashboardWidget.objects.exclude(pk__in=[w.pk for w in widgets])
+        not_used_widgets = DashboardWidget.objects.exclude(pk__in=[w.pk for w in widgets]).filter(
+            active=True
+        )
         context["widgets"] = widgets
         context["not_used_widgets"] = not_used_widgets
 
-- 
GitLab