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

feat: reports within a module can now be ordered

maximumG 4 лет назад
Родитель
Сommit
e443d719d4
1 измененных файлов с 4 добавлено и 2 удалено
  1. 4 2
      netbox/extras/reports.py

+ 4 - 2
netbox/extras/reports.py

@@ -59,8 +59,10 @@ def get_reports():
     # defined.
     for importer, module_name, _ in pkgutil.iter_modules([settings.REPORTS_ROOT]):
         module = importer.find_module(module_name).load_module(module_name)
-        report_list = [cls() for _, cls in inspect.getmembers(module, is_report)]
-        module_list.append((module_name, report_list))
+        report_order = getattr(module, "report_order", ())
+        ordered_reports = [cls() for cls in report_order if is_report(cls)]
+        unordered_reports = [cls() for _, cls in inspect.getmembers(module, is_report) if cls not in report_order]
+        module_list.append((module_name, [*ordered_reports, *unordered_reports]))
 
     return module_list