manager: prefix ConfigJsonCell parameter fields in form (#66603)
This commit is contained in:
parent
5486f4c068
commit
809862bc2d
|
@ -115,7 +115,7 @@ class ConfigJsonForm(forms.ModelForm):
|
|||
}
|
||||
for field in self.formdef:
|
||||
field_class = field_classes.get(field.get('type'), forms.CharField)
|
||||
self.fields[field['varname']] = field_class(
|
||||
self.fields['parameter_%s' % field['varname']] = field_class(
|
||||
label=field['label'],
|
||||
required=field.get('required', True),
|
||||
initial=parameters.get(field['varname']),
|
||||
|
@ -125,7 +125,8 @@ class ConfigJsonForm(forms.ModelForm):
|
|||
def clean(self):
|
||||
self.cleaned_data['parameters'] = {}
|
||||
for field in self.formdef:
|
||||
if field['varname'] not in self.cleaned_data:
|
||||
varname = 'parameter_%s' % field['varname']
|
||||
if varname not in self.cleaned_data:
|
||||
continue
|
||||
self.cleaned_data['parameters'][field['varname']] = self.cleaned_data[field['varname']]
|
||||
self.cleaned_data['parameters'][field['varname']] = self.cleaned_data[varname]
|
||||
return self.cleaned_data
|
||||
|
|
|
@ -1769,36 +1769,36 @@ def test_edit_config_json_cell(app, admin_user):
|
|||
'appearance',
|
||||
]
|
||||
|
||||
resp.form['c%s-test' % cells[0].get_reference()].value = 'Hello world'
|
||||
resp.form['c%s-test3' % cells[0].get_reference()].value = 'Hello again'
|
||||
resp.form['c%s-parameter_test' % cells[0].get_reference()].value = 'Hello world'
|
||||
resp.form['c%s-parameter_test3' % cells[0].get_reference()].value = 'Hello again'
|
||||
manager_submit_cell(resp.form)
|
||||
|
||||
# test form error
|
||||
resp = app.get('/manage/pages/%s/' % page.id)
|
||||
resp.form['c%s-test' % cells[0].get_reference()].value = ''
|
||||
resp.form['c%s-test3' % cells[0].get_reference()].value = 'Hello'
|
||||
resp.form['c%s-parameter_test' % cells[0].get_reference()].value = ''
|
||||
resp.form['c%s-parameter_test3' % cells[0].get_reference()].value = 'Hello'
|
||||
resp = manager_submit_cell(resp.form, expect_errors=True)
|
||||
assert resp.context['form'].errors['test'] == ['This field is required.']
|
||||
assert resp.context['form'].errors['parameter_test'] == ['This field is required.']
|
||||
|
||||
resp = app.get('/manage/pages/%s/' % page.id)
|
||||
assert resp.form['c%s-test' % cells[0].get_reference()].value == 'Hello world'
|
||||
assert resp.form['c%s-test2' % cells[0].get_reference()].checked is False
|
||||
assert resp.form['c%s-test3' % cells[0].get_reference()].value == 'Hello again'
|
||||
assert resp.form['c%s-parameter_test' % cells[0].get_reference()].value == 'Hello world'
|
||||
assert resp.form['c%s-parameter_test2' % cells[0].get_reference()].checked is False
|
||||
assert resp.form['c%s-parameter_test3' % cells[0].get_reference()].value == 'Hello again'
|
||||
|
||||
resp = app.get('/manage/pages/%s/' % page.id)
|
||||
assert ('data-cell-reference="%s"' % cells[0].get_reference()) in resp.text
|
||||
resp.forms[0]['c%s-test' % cells[0].get_reference()].value = 'World Hello'
|
||||
resp.forms[0]['c%s-test2' % cells[0].get_reference()].checked = True
|
||||
assert resp.form['c%s-test4' % cells[0].get_reference()].tag == 'textarea'
|
||||
resp.forms[0]['c%s-test4' % cells[0].get_reference()].value = 'Text Area'
|
||||
resp.forms[0]['c%s-parameter_test' % cells[0].get_reference()].value = 'World Hello'
|
||||
resp.forms[0]['c%s-parameter_test2' % cells[0].get_reference()].checked = True
|
||||
assert resp.form['c%s-parameter_test4' % cells[0].get_reference()].tag == 'textarea'
|
||||
resp.forms[0]['c%s-parameter_test4' % cells[0].get_reference()].value = 'Text Area'
|
||||
resp = manager_submit_cell(resp.form)
|
||||
assert resp.json['tabs']['general']['form'].strip().startswith('<p><label')
|
||||
|
||||
resp = app.get('/manage/pages/%s/' % page.id)
|
||||
assert resp.form['c%s-test' % cells[0].get_reference()].value == 'World Hello'
|
||||
assert resp.form['c%s-test2' % cells[0].get_reference()].checked is True
|
||||
assert resp.form['c%s-test3' % cells[0].get_reference()].value == 'Hello again'
|
||||
assert resp.form['c%s-test4' % cells[0].get_reference()].value == 'Text Area'
|
||||
assert resp.form['c%s-parameter_test' % cells[0].get_reference()].value == 'World Hello'
|
||||
assert resp.form['c%s-parameter_test2' % cells[0].get_reference()].checked is True
|
||||
assert resp.form['c%s-parameter_test3' % cells[0].get_reference()].value == 'Hello again'
|
||||
assert resp.form['c%s-parameter_test4' % cells[0].get_reference()].value == 'Text Area'
|
||||
|
||||
|
||||
def test_logout(app, admin_user):
|
||||
|
|
Loading…
Reference in New Issue