Просмотр исходного кода

Enabled change logging for circuit terminations

Jeremy Stretch 7 лет назад
Родитель
Сommit
bbaa3a2058
2 измененных файлов с 22 добавлено и 2 удалено
  1. 15 1
      netbox/circuits/models.py
  2. 7 1
      netbox/templates/extras/objectchange.html

+ 15 - 1
netbox/circuits/models.py

@@ -8,8 +8,9 @@ from taggit.managers import TaggableManager
 
 from dcim.constants import STATUS_CLASSES
 from dcim.fields import ASNField
-from extras.models import CustomFieldModel
+from extras.models import CustomFieldModel, ObjectChange
 from utilities.models import ChangeLoggedModel
+from utilities.utils import serialize_object
 from .constants import CIRCUIT_STATUS_ACTIVE, CIRCUIT_STATUS_CHOICES, TERM_SIDE_CHOICES
 
 
@@ -270,6 +271,19 @@ class CircuitTermination(models.Model):
     def __str__(self):
         return '{} (Side {})'.format(self.circuit, self.get_term_side_display())
 
+    def log_change(self, user, request_id, action):
+        """
+        Reference the parent circuit when recording the change.
+        """
+        ObjectChange(
+            user=user,
+            request_id=request_id,
+            changed_object=self,
+            related_object=self.circuit,
+            action=action,
+            object_data=serialize_object(self)
+        ).save()
+
     def get_peer_termination(self):
         peer_side = 'Z' if self.term_side == 'A' else 'A'
         try:

+ 7 - 1
netbox/templates/extras/objectchange.html

@@ -8,7 +8,13 @@
         <div class="col-sm-8 col-md-9">
             <ol class="breadcrumb">
                 <li><a href="{% url 'extras:objectchange_list' %}">Changelog</a></li>
-                <li><a href="{{ objectchange.changed_object.get_absolute_url }}changelog/">{{ objectchange.changed_object }}</a></li>
+                {% if objectchange.related_object.get_absolute_url %}
+                    <li><a href="{{ objectchange.related_object.get_absolute_url }}changelog/">{{ objectchange.related_object }}</a></li>
+                {% elif objectchange.changed_object.get_absolute_url %}
+                    <li><a href="{{ objectchange.changed_object.get_absolute_url }}changelog/">{{ objectchange.changed_object }}</a></li>
+                {% else %}
+                    <li>{{ objectchange.changed_object }}</li>
+                {% endif %}
                 <li>{{ objectchange }}</li>
             </ol>
         </div>