From c098dc3756a33c148e4edb8f02ddf00eaab7a82b Mon Sep 17 00:00:00 2001
From: Dominik George <nik@naturalnet.de>
Date: Wed, 29 Jan 2020 17:43:45 +0100
Subject: [PATCH] Add django-polymorphic for easier handling of widget
 subclasses

---
 aleksis/core/models.py   | 3 ++-
 aleksis/core/settings.py | 1 +
 pyproject.toml           | 1 +
 3 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/aleksis/core/models.py b/aleksis/core/models.py
index b2b4d6510..30669efcf 100644
--- a/aleksis/core/models.py
+++ b/aleksis/core/models.py
@@ -6,6 +6,7 @@ from django.db import models
 from django.utils.translation import ugettext_lazy as _
 from image_cropping import ImageCropField, ImageRatioField
 from phonenumber_field.modelfields import PhoneNumberField
+from polymorphic.models import PolymorphicModel
 
 from .mixins import ExtensibleModel
 from .util.notifications import send_notification
@@ -229,7 +230,7 @@ class Notification(models.Model):
         verbose_name_plural = _("Notifications")
 
 
-class DashboardWidget(models.Model):
+class DashboardWidget(PolymorphicModel):
     template = None
 
     title = models.CharField(max_length=150, verbose_name=_("Widget Title"))
diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py
index 46b070449..c314e3a73 100644
--- a/aleksis/core/settings.py
+++ b/aleksis/core/settings.py
@@ -51,6 +51,7 @@ INSTALLED_APPS = [
     "django.contrib.sessions",
     "django.contrib.messages",
     "django.contrib.staticfiles",
+    "polymorphic",
     "django_global_request",
     "settings_context_processor",
     "sass_processor",
diff --git a/pyproject.toml b/pyproject.toml
index 1c3bdb77b..99d24b842 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -63,6 +63,7 @@ django-celery-results = {version="^1.1.2", optional=true}
 django-celery-beat = {version="^1.5.0", optional=true}
 django-celery-email = {version="^3.0.0", optional=true}
 django-jsonstore = "^0.4.1"
+django-polymorphic = "^2.1.2"
 
 [tool.poetry.extras]
 ldap = ["django-auth-ldap"]
-- 
GitLab