From 62d13a8bf3d7674525fca13677838b134057935f Mon Sep 17 00:00:00 2001
From: Tom Teichler <tom.teichler@teckids.org>
Date: Sun, 3 May 2020 22:54:17 +0200
Subject: [PATCH] Add metaclass for model versioning

---
 aleksis/core/mixins.py | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/aleksis/core/mixins.py b/aleksis/core/mixins.py
index 856187d79..b50655368 100644
--- a/aleksis/core/mixins.py
+++ b/aleksis/core/mixins.py
@@ -17,8 +17,14 @@ from material.base import Layout, LayoutNode
 from rules.contrib.admin import ObjectPermissionsModelAdmin
 
 
-@reversion.register
-class ExtensibleModel(models.Model):
+class ExtensibleModelVersioning(type):
+    """ Meta class to add django-reversion decorator. """
+
+    def __new__(mcls, name, bases, attrs):
+        return reversion.register(super().__new__, (name, bases, attrs))
+
+
+class ExtensibleModel(models.Model, metaclass=ExtensibleModelVersioning):
     """Base model for all objects in AlekSIS apps.
 
     This base model ensures all objects in AlekSIS apps fulfill the
-- 
GitLab