Added error message for settings when site not defined (#4362)

* Added error message for settings when site not defined

* added tests

* fixed linter error

* implemented feedback
This commit is contained in:
Nebulosar 2018-03-15 17:15:56 +01:00 committed by Bertrand Bordage
parent d94a647b9e
commit 7f82787aed
2 changed files with 16 additions and 0 deletions

View file

@ -127,6 +127,19 @@ class TestSettingEditView(BaseTestSettingView):
self.assertEqual(setting.title, 'Edited site title')
self.assertEqual(setting.email, 'test@example.com')
def test_get_edit_current_site(self):
url = reverse('wagtailsettings:edit', args=('tests', 'testsetting'))
default_site = Site.objects.get(is_default_site=True)
response = self.client.get(url)
self.assertRedirects(response, status_code=302, expected_url='%s%s/' % (url, default_site.pk))
def test_get_edit_current_site_invalid(self):
Site.objects.all().delete()
url = reverse('wagtailsettings:edit', args=('tests', 'testsetting'))
response = self.client.get(url)
self.assertRedirects(response, status_code=302, expected_url='/admin/')
@override_settings(ALLOWED_HOSTS=['testserver', 'example.com', 'noneoftheabove.example.com'])
class TestMultiSite(BaseTestSettingView):

View file

@ -39,6 +39,9 @@ def edit_current_site(request, app_name, model_name):
# Redirect the user to the edit page for the current site
# (or the current request does not correspond to a site, the first site in the list)
site = request.site or Site.objects.first()
if not site:
messages.error(request, _("This setting could not be opened because there is no site defined."))
return redirect('wagtailadmin_home')
return redirect('wagtailsettings:edit', app_name, model_name, site.pk)