Skip to content
Snippets Groups Projects
Verified Commit 69e67cc1 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Merge branch 'fix-model-versioning'

parents 8fd01037 4561d59c
No related branches found
No related tags found
1 merge request!249Add metaclass for model versioning
Pipeline #1963 failed
......@@ -17,8 +17,25 @@ from material.base import Layout, LayoutNode
from rules.contrib.admin import ObjectPermissionsModelAdmin
@reversion.register
class ExtensibleModel(models.Model):
class _ExtensibleModelBase(models.base.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):
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(mcls)
return mcls
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
......@@ -212,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"):
......
......@@ -10,7 +10,6 @@ from django.utils.translation import gettext_lazy as _
from templated_email import send_templated_mail
from ..models import Notification
from .core_helpers import lazy_preference
try:
......
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