From f7fc18c5267d745ab754be0039967f53468a3665 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 18 Jan 2024 11:36:19 +0100 Subject: ✨ GDPR: manage merge action, admin consultation, edition, delete, ✅ GDPR tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ishtar_common/admin.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'ishtar_common/admin.py') 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) -- cgit v1.2.3