general: add support for boolean json cell parameters (#17433)
"foobar": { "url": "https://...", "cache_duration": 86400, "name": "Test", "form": [ { "varname": "identifier", "type": "string", "label": "Identifier" }, { "varname": "details", "type": "bool", "label": "Include details", "required": false } ] },
This commit is contained in:
parent
e2dbaa52fc
commit
819066421e
|
@ -92,9 +92,16 @@ class ConfigJsonForm(forms.ModelForm):
|
|||
# additional fields.
|
||||
kwargs['instance'].parameters = None
|
||||
super(ConfigJsonForm, self).__init__(*args, **kwargs)
|
||||
|
||||
field_classes = {
|
||||
'string': forms.CharField,
|
||||
'boolean': forms.BooleanField,
|
||||
}
|
||||
for field in self.formdef:
|
||||
self.fields[field['varname']] = forms.CharField(
|
||||
field_class = field_classes.get(field['type'], forms.CharField)
|
||||
self.fields[field['varname']] = field_class(
|
||||
label=field['label'],
|
||||
required=field.get('required', True),
|
||||
initial=parameters.get(field['varname']))
|
||||
|
||||
def clean(self):
|
||||
|
|
|
@ -511,7 +511,13 @@ def test_edit_config_json_cell(app, admin_user):
|
|||
'label': 'Test',
|
||||
'type': 'string',
|
||||
'varname': 'test',
|
||||
}
|
||||
},
|
||||
{
|
||||
'label': 'Test bool',
|
||||
'type': 'boolean',
|
||||
'varname': 'test2',
|
||||
'required': False,
|
||||
},
|
||||
]}}):
|
||||
resp = app.get('/manage/pages/%s/' % page.id)
|
||||
assert not 'There are no options for this cell.' in resp.form.text
|
||||
|
@ -523,16 +529,19 @@ def test_edit_config_json_cell(app, admin_user):
|
|||
|
||||
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
|
||||
|
||||
resp = app.get('/manage/pages/%s/' % page.id)
|
||||
assert ('data-cell-reference="%s"' % cells[0].get_reference()) in resp.body
|
||||
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
|
||||
resp = resp.form.submit(xhr=True)
|
||||
assert resp.status_int == 200
|
||||
assert resp.body.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
|
||||
|
||||
|
||||
def test_logout(app, admin_user):
|
||||
|
|
Loading…
Reference in New Issue