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

- Move do_not_call_in_templates to BaseScript
- Fix the name classproperty

kkthxbye 3 лет назад
Родитель
Сommit
ae46cd33b6
3 измененных файлов с 6 добавлено и 4 удалено
  1. 5 1
      netbox/extras/scripts.py
  2. 0 2
      netbox/extras/views.py
  3. 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
     functionality for use in other subclasses.
     """
+
+    # Prevent django from instantiating the class on all accesses
+    do_not_call_in_templates = True
+
     class Meta:
         pass
 
@@ -280,7 +284,7 @@ class BaseScript:
 
     @classproperty
     def name(self):
-        return getattr(self.Meta, 'name', self.__class__.__name__)
+        return getattr(self.Meta, 'name', self.__name__)
 
     @classproperty
     def full_name(self):

+ 0 - 2
netbox/extras/views.py

@@ -753,8 +753,6 @@ class ScriptListView(ContentTypePermissionRequiredMixin, View):
 
         for _scripts in scripts.values():
             for script in _scripts.values():
-                # Prevent django from instantiating the class on all accesses
-                script.do_not_call_in_templates = True
                 script.result = results.get(script.full_name)
 
         return render(request, 'extras/script_list.html', {

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

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