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
This commit is contained in:
Martin Hauser 2026-07-22 18:01:54 +02:00
parent abe4a2cd9e
commit bc51d04988
No known key found for this signature in database
2 changed files with 15 additions and 0 deletions

View File

@ -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']

View File

@ -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