Skip to content
Snippets Groups Projects
Verified Commit c6ef30da authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Fix behaviour of meta class and rename to django naming scheme

parent b51fa5d1
No related branches found
No related tags found
1 merge request!249Add metaclass for model versioning
Pipeline #1961 passed with warnings
......@@ -17,16 +17,23 @@ from material.base import Layout, LayoutNode
from rules.contrib.admin import ObjectPermissionsModelAdmin
class ExtensibleModelVersioning(type):
"""Meta class to add django-reversion decorator."""
class _ExtensibleModelBase(models.ModelBase):
"""Ensure predefined behaviour on model creation.
This metaclass serves the following purposes:
- Register all AlekSIS models with django-reverseion
"""
def __new__(mcls, name, bases, attrs):
if not mcls["Meta"].abstract:
return reversion.register(super().__new__, (name, bases, attrs))
else:
return
mcls = super().__new__(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))
class ExtensibleModel(models.Model, metaclass=ExtensibleModelVersioning):
class ExtensibleModel(models.Model, metaclass=_ExtensibleModelBase):
"""Base model for all objects in AlekSIS apps.
This base model ensures all objects in AlekSIS apps fulfill the
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment