Kaynağa Gözat

Handle panel title when object is not available

Jeremy Stretch 1 gün önce
ebeveyn
işleme
468dd84027
2 değiştirilmiş dosya ile 19 ekleme ve 11 silme
  1. 7 1
      netbox/netbox/ui/panels.py
  2. 12 10
      netbox/templates/ui/panels/_base.html

+ 7 - 1
netbox/netbox/ui/panels.py

@@ -106,9 +106,15 @@ class ObjectPanel(Panel):
 
     def get_context(self, context):
         obj = resolve_attr_path(context, self.accessor)
+        if self.title is not None:
+            title_ = self.title
+        elif obj is not None:
+            title_ = title(obj._meta.verbose_name)
+        else:
+            title_ = None
         return {
             **super().get_context(context),
-            'title': self.title or title(obj._meta.verbose_name),
+            'title': title_,
             'object': obj,
         }
 

+ 12 - 10
netbox/templates/ui/panels/_base.html

@@ -1,15 +1,17 @@
 <!-- begin {{ panel_class|default:"panel" }} -->
 <div class="card">
-  <h2 class="card-header">
-    {{ title }}
-    {% if actions %}
-      <div class="card-actions">
-        {% for action in actions %}
-          {% render action %}
-        {% endfor %}
-      </div>
-    {% endif %}
-  </h2>
+  {% if title or actions %}
+    <h2 class="card-header">
+      {{ title|default:"" }}
+      {% if actions %}
+        <div class="card-actions">
+          {% for action in actions %}
+            {% render action %}
+          {% endfor %}
+        </div>
+      {% endif %}
+    </h2>
+  {% endif %}
   {% block panel_content %}{% endblock %}
 </div>
 <!-- end {{ panel_class|default:"panel" }} -->