Mandate use of AlekSIS base model
AlekSIS core currently has an ExtensibleModel
class that serves as a base class in two cases:
- It shall be extensible with new methods or properties from apps
- It shall be extensible with additional fields by using the
extra_data
field
There are also some models that have a created_at
or updated_at
field, and there is the CRUDMixin
that adds relationships to easyaudit traces for that model.
I propose we instead put that together in one base model that all AlekSIS apps are mandated to use instead of Django's models.Model
. This ensures that in case of doubt, al models have a usable audit trace, and apps can be updated with functionality without having to care for too many migrations caused by the base model change.
This is in some ways related to #160 (closed).
(NB. If some app developer has a good reason not to follow this design decision, they are technically free to ignore it and use the standard bae model.)