diff --git a/biscuit/core/mixins.py b/biscuit/core/mixins.py index 54571988af89d546dff3fb42366d8e5a05f5f923..684e9f401e146eb8783f824454ebe6aeaaac4fc3 100644 --- a/biscuit/core/mixins.py +++ b/biscuit/core/mixins.py @@ -1,4 +1,8 @@ +from django.contrib.contenttypes.models import ContentType from django.db import models +from django.db.models import QuerySet + +from easyaudit.models import CRUDEvent from .util.core_helpers import get_current_school @@ -11,3 +15,16 @@ class SchoolRelated(models.Model): school = models.ForeignKey( 'core.School', on_delete=models.CASCADE, default=get_current_school) + + @property + def crud_events(self) -> QuerySet: + """Get all CRUD events connected to this object from easyaudit.""" + + content_type = ContentType.objects.get_for_model(self) + + return CRUDEvent.objects.filter( + object_id=self.pk, + content_type=content_type + ).select_related( + 'user' + )