From 5268a375fe9dc7d5b630ee47d9af10d7ca5fff3b Mon Sep 17 00:00:00 2001
From: Dominik George <dominik.george@teckids.org>
Date: Sat, 7 Sep 2019 22:32:48 +0200
Subject: [PATCH] Add property to get all CRUD events of school-related
 objects.

Advances BiscuIT-App-Alsijil#24.
---
 biscuit/core/mixins.py | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/biscuit/core/mixins.py b/biscuit/core/mixins.py
index 54571988a..684e9f401 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'
+        )
-- 
GitLab