8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-11-25 12:53:11 +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: class RelatedHistory:
def __init__(self, name, app_name, model_name, object_id): def __init__(self, version):
""" """
:param name: Name of this instance :param name: Name of this instance
:param model_name: Name of the related model (e.g. "user") :param model_name: Name of the related model (e.g. "user")
:param object_id: ID of the related object :param object_id: ID of the related object
""" """
self.name = "{} (id = {})".format(name, object_id) self.version = version
self.app_name = app_name self.app_name = version.content_type.app_label
self.model_name = model_name self.model_name = version.content_type.model
self.object_id = object_id self.object_id = version.object_id
self.name = version._object_cache or version.object_repr
def __eq__(self, other): def __eq__(self, other):
return ( return (
@ -646,13 +647,8 @@ class UserHistory(History):
self.related = ( self.related = (
Version.objects.get_for_model(Machine) Version.objects.get_for_model(Machine)
.filter(serialized_data__contains='"user": {}'.format(user_id)) .filter(serialized_data__contains='"user": {}'.format(user_id))
.order_by("-revision__date_created")
) )
self.related = [RelatedHistory( self.related = [RelatedHistory(v) for v in self.related]
m.field_dict["name"] or _("None"),
"machines",
"machine",
m.field_dict["id"]) for m in self.related]
self.related = list(dict.fromkeys(self.related)) self.related = list(dict.fromkeys(self.related))
# Get all the versions for this user, with the oldest first # Get all the versions for this user, with the oldest first
@ -744,11 +740,7 @@ class MachineHistory(History):
) )
# Create RelatedHistory objects and remove duplicates # Create RelatedHistory objects and remove duplicates
self.related = [RelatedHistory( self.related = [RelatedHistory(v) for v in self.related]
i.field_dict["mac_address"] or _("None"),
"machines",
"interface",
i.field_dict["id"]) for i in self.related]
self.related = list(dict.fromkeys(self.related)) self.related = list(dict.fromkeys(self.related))
events = super(MachineHistory, self).get(machine_id, Machine) 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> <ul>
{% for related in related_history %} {% for related in related_history %}
<li> <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> </li>
{% endfor %} {% endfor %}
</ul> </ul>