update object repr and rename objectpk to record

This commit is contained in:
dishantsethi 2024-02-10 15:43:06 +05:30
parent 2f2ef1a6a4
commit 18aa0b5149
5 changed files with 22 additions and 33 deletions

View file

@ -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)

View file

@ -21,7 +21,7 @@ class LogEntryAdmin(admin.ModelAdmin, LogEntryAdminMixin):
]
search_fields = [
"timestamp",
"object_repr",
"object_representation",
"changes",
]
list_filter = ["action", ResourceTypeFilter]

View file

@ -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",
),
),
]

View file

@ -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(
'<a href="{}">{} - {}</a>', link, obj.content_type, obj.object_repr
'<a href="{}">{} - {}</a>',
link,
obj.content_type,
obj.object_representation,
)
@admin.display(description=_("Changes"))

View file

@ -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):