From 465bfded80db6cbb1daa88955cd537b27ea1be7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alieh=20Ryma=C5=A1e=C5=ADski?= Date: Mon, 28 Jun 2021 16:29:03 +0300 Subject: [PATCH] Refactor msg method from string to list logic --- auditlog/mixins.py | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/auditlog/mixins.py b/auditlog/mixins.py index 672ee40..d2e315e 100644 --- a/auditlog/mixins.py +++ b/auditlog/mixins.py @@ -62,16 +62,26 @@ class LogEntryAdminMixin(object): if obj.action == LogEntry.Action.DELETE: return "" # delete changes = json.loads(obj.changes) - msg = "" - for i, field in enumerate(sorted(changes), 1): - value = [i, field] + ( - ["***", "***"] if field == "password" else changes[field] - ) - msg += format_html( - "", *value - ) - msg += "
#FieldFromTo
{}{}{}{}
" - return mark_safe(msg) + msg = [] + + msg.append("") + msg.append(self._format_header("#", "Field", "From", "To")) + for i, (field, change) in enumerate(sorted(changes.items()), 1): + value = [i, field] + (["***", "***"] if field == "password" else change) + msg.append(self._format_line(*value)) + msg.append("
") + + return mark_safe("".join(msg)) msg.short_description = "Changes" + + def _format_header(self, *labels): + return format_html( + "".join(["", "{}" * len(labels), ""]), *labels + ) + + def _format_line(self, *values): + return format_html( + "".join(["", "{}" * len(values), ""]), *values + )