diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-01-18 11:36:19 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-04-16 16:40:54 +0200 |
commit | f7fc18c5267d745ab754be0039967f53468a3665 (patch) | |
tree | 564af9db675d6b4b6e87c60954665a84b9147483 /ishtar_common/admin.py | |
parent | a7977d70f31e1c7b8dbb2c6766124d608d889709 (diff) | |
download | Ishtar-f7fc18c5267d745ab754be0039967f53468a3665.tar.bz2 Ishtar-f7fc18c5267d745ab754be0039967f53468a3665.zip |
✨ GDPR: manage merge action, admin consultation, edition, delete, ✅ GDPR tests
Diffstat (limited to 'ishtar_common/admin.py')
-rw-r--r-- | ishtar_common/admin.py | 24 |
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) |