diff --git a/aleksis/core/models.py b/aleksis/core/models.py index b2b4d651018c11c5534ecd3c5a1e6790bd2b676c..30669efcfe428586ec483dd00efe2209671fb4e3 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 46b070449c3bc6ff46e98ace323953b7f6252ac1..c314e3a7305a2c1655de57df9d4ac05220b4238a 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 1c3bdb77b59e270f075470b6b0dd82525d126073..99d24b842d98224ee165ce0ee0191a50a6523b01 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"]