From e7ba11b3bc376856cd26da432684f758cfeb0745 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Mon, 4 May 2020 12:22:50 +0200
Subject: [PATCH] Fix metaclasses for ExtensibleModel and ExtensibleForm

---
 aleksis/core/mixins.py | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/aleksis/core/mixins.py b/aleksis/core/mixins.py
index e66f113b4..7f5db6e6d 100644
--- a/aleksis/core/mixins.py
+++ b/aleksis/core/mixins.py
@@ -17,7 +17,7 @@ from material.base import Layout, LayoutNode
 from rules.contrib.admin import ObjectPermissionsModelAdmin
 
 
-class _ExtensibleModelBase(models.ModelBase):
+class _ExtensibleModelBase(models.base.ModelBase):
     """Ensure predefined behaviour on model creation.
 
     This metaclass serves the following purposes:
@@ -26,11 +26,13 @@ class _ExtensibleModelBase(models.ModelBase):
     """
 
     def __new__(mcls, name, bases, attrs):
-        mcls = super().__new__(name, bases, attrs)
+        mcls = super().__new__(mcls, name, bases, attrs)
 
         if "Meta" not in attrs or not attrs["Meta"].abstract:
             # Register all non-abstract models with django-reversion
-            mcls = reversion.register(super().__new__(name, bases, attrs))
+            mcls = reversion.register(mcls)
+
+        return mcls
 
 
 class ExtensibleModel(models.Model, metaclass=_ExtensibleModelBase):
@@ -227,8 +229,8 @@ class PureDjangoModel(object):
 
 
 class _ExtensibleFormMetaclass(ModelFormMetaclass):
-    def __new__(cls, mcs, name, bases, dct):
-        x = super().__new__(mcs, name, bases, dct)
+    def __new__(cls, name, bases, dct):
+        x = super().__new__(cls, name, bases, dct)
 
         # Enforce a default for the base layout for forms that o not specify one
         if hasattr(x, "layout"):
-- 
GitLab