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