8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-11-27 07:02:26 +00:00

Make RelatedHistory cleaner

This commit is contained in:
Jean-Romain Garnier 2020-04-25 12:59:01 +02:00 committed by Gabriel Detraz
parent 698945ec10
commit 1b6bf87dbc
2 changed files with 15 additions and 17 deletions

View file

@ -289,16 +289,17 @@ class MachineHistorySearch:
############################
class RelatedHistory:
def __init__(self, name, app_name, model_name, object_id):
def __init__(self, version):
"""
:param name: Name of this instance
:param model_name: Name of the related model (e.g. "user")
:param object_id: ID of the related object
"""
self.name = "{} (id = {})".format(name, object_id)
self.app_name = app_name
self.model_name = model_name
self.object_id = object_id
self.version = version
self.app_name = version.content_type.app_label
self.model_name = version.content_type.model
self.object_id = version.object_id
self.name = version._object_cache or version.object_repr
def __eq__(self, other):
return (
@ -646,13 +647,8 @@ class UserHistory(History):
self.related = (
Version.objects.get_for_model(Machine)
.filter(serialized_data__contains='"user": {}'.format(user_id))
.order_by("-revision__date_created")
)
self.related = [RelatedHistory(
m.field_dict["name"] or _("None"),
"machines",
"machine",
m.field_dict["id"]) for m in self.related]
self.related = [RelatedHistory(v) for v in self.related]
self.related = list(dict.fromkeys(self.related))
# Get all the versions for this user, with the oldest first
@ -744,11 +740,7 @@ class MachineHistory(History):
)
# Create RelatedHistory objects and remove duplicates
self.related = [RelatedHistory(
i.field_dict["mac_address"] or _("None"),
"machines",
"interface",
i.field_dict["id"]) for i in self.related]
self.related = [RelatedHistory(v) for v in self.related]
self.related = list(dict.fromkeys(self.related))
events = super(MachineHistory, self).get(machine_id, Machine)

View file

@ -78,7 +78,13 @@ with this program; if not, write to the Free Software Foundation, Inc.,
<ul>
{% for related in related_history %}
<li>
<a title="{% trans "History" %}" href="{% url 'logs:history' related.app_name related.model_name related.object_id %}">{{ related.model_name }} - {{ related.name }}</a>
{% if related.object_id %}
<a href="{% url 'logs:history' related.application related.model_name related.object_id %}" title="{% trans "History" %}">
{{ related.name }}
</a>
{% else %}
{{ related.name }}
{% endif %}
</li>
{% endfor %}
</ul>