From 18aa0b5149f8c45a0bb1ad1cf1072e1777b9692e Mon Sep 17 00:00:00 2001 From: dishantsethi Date: Sat, 10 Feb 2024 15:43:06 +0530 Subject: [PATCH] update object repr and rename objectpk to record --- CHANGELOG.md | 2 +- auditlog/admin.py | 2 +- .../migrations/0016_auto_20240210_0934.py | 14 ---------- auditlog/mixins.py | 9 ++++-- auditlog/models.py | 28 +++++++++---------- 5 files changed, 22 insertions(+), 33 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index acd8754..af70376 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -283,7 +283,7 @@ _As it turns out, haste is never good. Due to the focus on quickly releasing thi ### Important notes -- The `object_pk` field is now limited to 255 chars +- The `record` field is now limited to 255 chars ## 0.3.2 (2015-10-19) diff --git a/auditlog/admin.py b/auditlog/admin.py index 5a78d98..abc22fc 100644 --- a/auditlog/admin.py +++ b/auditlog/admin.py @@ -21,7 +21,7 @@ class LogEntryAdmin(admin.ModelAdmin, LogEntryAdminMixin): ] search_fields = [ "timestamp", - "object_repr", + "object_representation", "changes", ] list_filter = ["action", ResourceTypeFilter] diff --git a/auditlog/migrations/0016_auto_20240210_0934.py b/auditlog/migrations/0016_auto_20240210_0934.py index 91a0d3b..df4ba49 100644 --- a/auditlog/migrations/0016_auto_20240210_0934.py +++ b/auditlog/migrations/0016_auto_20240210_0934.py @@ -50,18 +50,4 @@ class Migration(migrations.Migration): verbose_name="developer name", ), ), - migrations.AlterField( - model_name="logentry", - name="action", - field=models.PositiveSmallIntegerField( - choices=[ - ("create", "create"), - ("update", "update"), - ("delete", "delete"), - ("access", "access"), - ], - db_index=True, - verbose_name="action", - ), - ), ] diff --git a/auditlog/mixins.py b/auditlog/mixins.py index 834a2e6..0a51f6a 100644 --- a/auditlog/mixins.py +++ b/auditlog/mixins.py @@ -35,13 +35,16 @@ class LogEntryAdminMixin: app_label, model = obj.content_type.app_label, obj.content_type.model viewname = f"admin:{app_label}_{model}_change" try: - args = [obj.object_pk] + args = [obj.record] link = urlresolvers.reverse(viewname, args=args) except NoReverseMatch: - return obj.object_repr + return obj.object_representation else: return format_html( - '{} - {}', link, obj.content_type, obj.object_repr + '{} - {}', + link, + obj.content_type, + obj.object_representation, ) @admin.display(description=_("Changes")) diff --git a/auditlog/models.py b/auditlog/models.py index 49676f8..e6e5d8d 100644 --- a/auditlog/models.py +++ b/auditlog/models.py @@ -54,12 +54,12 @@ class LogEntryManager(models.Manager): kwargs.setdefault( "content_type", ContentType.objects.get_for_model(instance) ) - kwargs.setdefault("object_pk", pk) + kwargs.setdefault("record", pk) try: - object_repr = smart_str(instance) + object_representation = smart_str(instance) except ObjectDoesNotExist: - object_repr = DEFAULT_OBJECT_REPR - kwargs.setdefault("object_repr", object_repr) + object_representation = DEFAULT_OBJECT_REPR + kwargs.setdefault("object_representation", object_representation) # set correlation id return self.create(**kwargs) @@ -88,12 +88,12 @@ class LogEntryManager(models.Manager): kwargs.setdefault( "content_type", ContentType.objects.get_for_model(instance) ) - kwargs.setdefault("object_pk", pk) + kwargs.setdefault("record", pk) try: - object_repr = smart_str(instance) + object_representation = smart_str(instance) except ObjectDoesNotExist: - object_repr = DEFAULT_OBJECT_REPR - kwargs.setdefault("object_repr", object_repr) + object_representation = DEFAULT_OBJECT_REPR + kwargs.setdefault("object_representation", object_representation) kwargs.setdefault("action", LogEntry.Action.UPDATE) objects = [smart_str(instance) for instance in changed_queryset] @@ -128,7 +128,7 @@ class LogEntryManager(models.Manager): if isinstance(pk, int): return self.filter(content_type=content_type) else: - return self.filter(content_type=content_type, object_pk=smart_str(pk)) + return self.filter(content_type=content_type, record=smart_str(pk)) def get_for_objects(self, queryset): """ @@ -153,13 +153,13 @@ class LogEntryManager(models.Manager): primary_keys = [smart_str(pk) for pk in primary_keys] return ( self.filter(content_type=content_type) - .filter(Q(object_pk__in=primary_keys)) + .filter(Q(record__in=primary_keys)) .distinct() ) else: return ( self.filter(content_type=content_type) - .filter(Q(object_pk__in=primary_keys)) + .filter(Q(record__in=primary_keys)) .distinct() ) @@ -293,10 +293,10 @@ class LogEntry(models.Model): related_name="+", verbose_name=_("content type"), ) - object_pk = models.CharField( + record = models.CharField( db_index=True, max_length=255, verbose_name=_("object pk") ) - object_repr = models.TextField(verbose_name=_("object representation")) + object_representation = models.TextField(verbose_name=_("object representation")) action = models.PositiveSmallIntegerField( choices=Action.choices, verbose_name=_("action"), db_index=True ) @@ -326,7 +326,7 @@ class LogEntry(models.Model): else: fstring = _("Logged {repr:s}") - return fstring.format(repr=self.object_repr) + return fstring.format(repr=self.object_representation) @property def changes_dict(self):