diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2023-12-26 15:58:33 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-04-16 16:38:33 +0200 |
commit | abb32bc4d75c637c78c3506aa6640f66488ee641 (patch) | |
tree | 7119ce42cb0fa2b5b5be0994dcd446728043240c /ishtar_common/admin.py | |
parent | 7c668d3b1e6dc519c78e4c10fded33136e37cf1b (diff) | |
download | Ishtar-abb32bc4d75c637c78c3506aa6640f66488ee641.tar.bz2 Ishtar-abb32bc4d75c637c78c3506aa6640f66488ee641.zip |
🗃️ GDPR: add routable_ip information - allow null ip and user - add django-ipware dependency to manage precisely request IP
Diffstat (limited to 'ishtar_common/admin.py')
-rw-r--r-- | ishtar_common/admin.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py index 803b5766a..62faf3b77 100644 --- a/ishtar_common/admin.py +++ b/ishtar_common/admin.py @@ -191,11 +191,16 @@ def export_as_csv_action( writer.writerow(modeladmin.CSV_HEADER) else: writer.writerow(list(field_names)) + boolean_fields = [] + if hasattr(modeladmin, "CSV_FIELDS_BOOLEAN"): + boolean_fields = modeladmin.CSV_FIELDS_BOOLEAN for obj in queryset.order_by("pk"): row = [] for field in field_names: value = getattr(obj, field) - if hasattr(value, "txt_idx"): + if field in boolean_fields: + value = str(_("True")) if value else str(_("False")) + elif hasattr(value, "txt_idx"): value = getattr(value, "txt_idx") elif hasattr(value, "slug"): value = getattr(value, "txt_idx") @@ -708,14 +713,15 @@ admin_site.register(models.Person, PersonAdmin) @admin.register(models.GDPRLog, site=admin_site) class GDPRLogAdmin(admin.ModelAdmin): - list_display = ("user", "date", "ip", "activity") + list_display = ("user", "date", "ip", "routable_ip", "activity") list_filter = ("activity",) search_fields = ("user__username",) actions = [ export_as_csv_action(exclude=("id",)), ] - CSV_HEADER = (_("Date"), _("User"), _("IP"), _("Activity"), _("Persons")) - CSV_FIELDS = ("date", "user", "ip", "activity_lbl", "persons_lbl") + CSV_HEADER = (_("Date"), _("User"), _("IP"), _("Routable IP"), _("Activity"), _("Persons")) + CSV_FIELDS = ("date", "user", "ip", "routable_ip", "activity_lbl", "persons_lbl") + CSV_FIELDS_BOOLEAN = ("routable_ip",) def has_add_permission(self, request, obj=None): return False |