summaryrefslogtreecommitdiff
path: root/ishtar_common/admin.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-01-18 11:36:19 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2024-02-10 14:45:20 +0100
commit13cff2b11a06c9ed334c6bad96ce14a7e3d629d8 (patch)
tree97fa08bfda014a128ce7fe161695e8123b221cea /ishtar_common/admin.py
parent7293985b9d83bed4130a677521ef72d4759202c3 (diff)
downloadIshtar-13cff2b11a06c9ed334c6bad96ce14a7e3d629d8.tar.bz2
Ishtar-13cff2b11a06c9ed334c6bad96ce14a7e3d629d8.zip
✨ GDPR: manage merge action, admin consultation, edition, delete, ✅ GDPR tests
Diffstat (limited to 'ishtar_common/admin.py')
-rw-r--r--ishtar_common/admin.py24
1 files changed, 23 insertions, 1 deletions
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py
index 62faf3b77..50b6d05b3 100644
--- a/ishtar_common/admin.py
+++ b/ishtar_common/admin.py
@@ -72,7 +72,7 @@ from django import forms
from ishtar_common import models, models_common, models_rest
from ishtar_common.apps import admin_site
from ishtar_common.model_merging import merge_model_objects
-from ishtar_common.utils import get_cache, create_slug
+from ishtar_common.utils import get_cache, create_slug, get_person_gdpr_log
from ishtar_common import forms as common_forms, forms_common as other_common_forms
from ishtar_common.serializers import restore_serialized, IMPORT_MODEL_LIST
@@ -707,6 +707,28 @@ class PersonAdmin(HistorizedObjectAdmin):
model = models.Person
inlines = [ProfileInline]
+ def get_search_results(self, request, queryset, search_term):
+ page = int(request.GET.get("p", 0))
+ slice = page * self.list_per_page, (page + 1) * self.list_per_page
+ get_person_gdpr_log("admin_person_consultation", request, None, queryset, slice)
+ return super().get_search_results(request, queryset, search_term)
+
+ def response_change(self, request, obj):
+ get_person_gdpr_log("admin_person_modify", request, None,
+ self.model.objects.filter(pk=obj.pk))
+ return super().response_change(request, obj)
+
+ def changeform_view(self, request, object_id=None, form_url='', extra_context=None):
+ if request.method == "GET":
+ get_person_gdpr_log("admin_person_view", request, None,
+ self.model.objects.filter(pk=object_id))
+ return super().changeform_view(request, object_id, form_url, extra_context)
+
+ def delete_model(self, request, obj):
+ get_person_gdpr_log("admin_person_delete", request, None,
+ self.model.objects.filter(pk=obj.pk))
+ super().delete_model(request, obj)
+
admin_site.register(models.Person, PersonAdmin)