Răsfoiți Sursa

fix(extras): Set default return URL for ScriptModule create view

The ScriptModule add view now falls back to the Scripts list when no
explicit return URL is provided. Adds regression test to verify the
default return URL behavior.

Fixes #22697
Martin Hauser 6 zile în urmă
părinte
comite
bc51d04988
2 a modificat fișierele cu 15 adăugiri și 0 ștergeri
  1. 14 0
      netbox/extras/tests/test_views.py
  2. 1 0
      netbox/extras/views.py

+ 14 - 0
netbox/extras/tests/test_views.py

@@ -1148,6 +1148,20 @@ class ScriptListViewTestCase(TestCase):
         self.assertTemplateUsed(response, 'extras/inc/script_list_content.html')
 
 
+class ScriptModuleCreateViewTestCase(TestCase):
+    user_permissions = ['core.add_managedfile', 'extras.add_scriptmodule']
+
+    @tag('regression')
+    def test_default_return_url(self):
+        """
+        The add view should fall back to the scripts list as its return URL.
+        """
+        response = self.client.get(reverse('extras:scriptmodule_add'))
+
+        self.assertEqual(response.status_code, 200)
+        self.assertEqual(response.context['return_url'], reverse('extras:script_list'))
+
+
 class ScriptValidationErrorTestCase(TestCase):
     user_permissions = ['extras.view_script', 'extras.run_script']
 

+ 1 - 0
netbox/extras/views.py

@@ -1636,6 +1636,7 @@ class DashboardWidgetDeleteView(LoginRequiredMixin, View):
 class ScriptModuleCreateView(generic.ObjectEditView):
     queryset = ScriptModule.objects.all()
     form = forms.ScriptFileForm
+    default_return_url = 'extras:script_list'
 
     def alter_object(self, obj, *args, **kwargs):
         obj.file_root = ManagedFileRootPathChoices.SCRIPTS