admin: don't refer to slug widget if it has not been added (#37102)
This commit is contained in:
parent
cd216c1ff4
commit
e7887d2b0f
|
@ -4954,13 +4954,15 @@ def test_data_sources_in_use_edit_slug(pub):
|
|||
app = login(get_app(pub))
|
||||
resp = app.get('/backoffice/settings/data-sources/1/')
|
||||
resp = resp.click(href='edit')
|
||||
assert 'form_slug' not in resp.text
|
||||
assert 'form_slug' not in resp.form.fields
|
||||
resp = resp.form.submit('submit')
|
||||
|
||||
formdef.fields = []
|
||||
formdef.store()
|
||||
resp = app.get('/backoffice/settings/data-sources/1/')
|
||||
resp = resp.click(href='edit')
|
||||
assert 'form_slug' in resp.text
|
||||
resp = resp.form.submit('submit')
|
||||
|
||||
def test_wscalls_new(pub):
|
||||
create_superuser(pub)
|
||||
|
|
|
@ -96,18 +96,17 @@ class NamedDataSourceUI(object):
|
|||
|
||||
def submit_form(self, form):
|
||||
name = form.get_widget('name').parse()
|
||||
if self.datasource.slug:
|
||||
slug_widget = form.get_widget('slug')
|
||||
if slug_widget:
|
||||
slug = form.get_widget('slug').parse()
|
||||
else:
|
||||
slug = None
|
||||
|
||||
for nds in NamedDataSource.select():
|
||||
if nds.id == self.datasource.id:
|
||||
continue
|
||||
if name == nds.name:
|
||||
form.get_widget('name').set_error(_('This name is already used.'))
|
||||
if slug == nds.slug:
|
||||
form.get_widget('slug').set_error(_('This value is already used.'))
|
||||
if slug_widget and slug == nds.slug:
|
||||
slug_widget.set_error(_('This value is already used.'))
|
||||
if form.has_errors():
|
||||
raise ValueError()
|
||||
|
||||
|
@ -117,7 +116,7 @@ class NamedDataSourceUI(object):
|
|||
self.datasource.cache_duration = form.get_widget('cache_duration').parse()
|
||||
self.datasource.query_parameter = form.get_widget('query_parameter').parse()
|
||||
self.datasource.id_parameter = form.get_widget('id_parameter').parse()
|
||||
if self.datasource.slug:
|
||||
if slug_widget:
|
||||
self.datasource.slug = slug
|
||||
self.datasource.store()
|
||||
|
||||
|
|
Loading…
Reference in New Issue