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

Merge pull request #8925 from kkthxbye-code/fast_script_list

Fix #8924 - Speed up rendering of the script list
Jeremy Stretch 3 лет назад
Родитель
Сommit
b6587c00ce
2 измененных файлов с 6 добавлено и 2 удалено
  1. 5 1
      netbox/extras/scripts.py
  2. 1 1
      netbox/templates/extras/script_list.html

+ 5 - 1
netbox/extras/scripts.py

@@ -259,6 +259,10 @@ class BaseScript:
     Base model for custom scripts. User classes should inherit from this model if they want to extend Script
     Base model for custom scripts. User classes should inherit from this model if they want to extend Script
     functionality for use in other subclasses.
     functionality for use in other subclasses.
     """
     """
+
+    # Prevent django from instantiating the class on all accesses
+    do_not_call_in_templates = True
+
     class Meta:
     class Meta:
         pass
         pass
 
 
@@ -280,7 +284,7 @@ class BaseScript:
 
 
     @classproperty
     @classproperty
     def name(self):
     def name(self):
-        return getattr(self.Meta, 'name', self.__class__.__name__)
+        return getattr(self.Meta, 'name', self.__name__)
 
 
     @classproperty
     @classproperty
     def full_name(self):
     def full_name(self):

+ 1 - 1
netbox/templates/extras/script_list.html

@@ -34,7 +34,7 @@
                 {% for class_name, script in module_scripts.items %}
                 {% for class_name, script in module_scripts.items %}
                   <tr>
                   <tr>
                     <td>
                     <td>
-                      <a href="{% url 'extras:script' module=script.module name=class_name %}" name="script.{{ class_name }}">{{ script }}</a>
+                      <a href="{% url 'extras:script' module=script.module name=class_name %}" name="script.{{ class_name }}">{{ script.name }}</a>
                     </td>
                     </td>
                     <td>
                     <td>
                       {% include 'extras/inc/job_label.html' with result=script.result %}
                       {% include 'extras/inc/job_label.html' with result=script.result %}