testdef: forbid test creation if form has deprecated fields (#73331)
gitea-wip/wcs/pipeline/pr-main This commit looks good
Details
gitea-wip/wcs/pipeline/pr-main This commit looks good
Details
This commit is contained in:
parent
90f85518f8
commit
1d64138735
|
@ -159,6 +159,23 @@ def test_tests_page_formdefs_isolation(pub):
|
|||
assert resp.form['formdata_id'].options[0][2] == '2-1 - Unknown User'
|
||||
|
||||
|
||||
def test_tests_page_deprecated_fields(pub):
|
||||
formdef = FormDef()
|
||||
formdef.name = 'test title'
|
||||
formdef.fields = [
|
||||
fields.TableField(id='1', label='Table', type='table'),
|
||||
]
|
||||
formdef.store()
|
||||
|
||||
create_superuser(pub)
|
||||
app = login(get_app(pub))
|
||||
|
||||
resp = app.get(formdef.get_admin_url())
|
||||
resp = resp.click('Tests')
|
||||
assert 'Run' not in resp.text
|
||||
assert 'deprecated fields' in resp.text
|
||||
|
||||
|
||||
def test_tests_import_export(pub):
|
||||
user = create_superuser(pub)
|
||||
|
||||
|
|
|
@ -117,6 +117,10 @@ class TestsDirectory(Directory):
|
|||
[Equal('object_type', self.objectdef.get_table_name()), Equal('object_id', self.objectdef.id)]
|
||||
),
|
||||
'formdata': self.objectdef.data_class().select([StrictNotEqual('status', 'draft')]),
|
||||
'has_deprecated_fields': any(
|
||||
x.type in ('table', 'table-select', 'tablerows', 'ranked-items')
|
||||
for x in self.objectdef.fields
|
||||
),
|
||||
}
|
||||
return template.QommonTemplateResponse(templates=['wcs/backoffice/tests.html'], context=context)
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
{% if testdefs %}
|
||||
<a href="run">{% trans "Run tests" %}</a>
|
||||
{% endif %}
|
||||
{% if formdata %}
|
||||
{% if formdata and not has_deprecated_fields %}
|
||||
<a href="new" rel="popup">{% trans "New" %}</a>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
@ -16,6 +16,12 @@
|
|||
<div class="section">
|
||||
<h3>{% trans "Test form data" %}</h3>
|
||||
|
||||
{% if has_deprecated_fields %}
|
||||
<div class="warningnotice">
|
||||
<p>{% trans "Tests cannot be created because this form has deprecated fields." %}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if not formdata %}
|
||||
<div class="infonotice">
|
||||
<p>{% trans "Tests cannot be created because there are no completed forms." %}</p>
|
||||
|
|
|
@ -162,7 +162,16 @@ class TestDef(sql.TestDef):
|
|||
def fill_page_fields(self, fields, page, formdata, objectdef):
|
||||
self.handle_computed_fields(fields, formdata)
|
||||
for field in fields:
|
||||
if field.key in ('subtitle', 'title', 'comment', 'computed'):
|
||||
if field.key in (
|
||||
'subtitle',
|
||||
'title',
|
||||
'comment',
|
||||
'computed',
|
||||
'table',
|
||||
'table-select',
|
||||
'tablerows',
|
||||
'ranked-items',
|
||||
):
|
||||
continue
|
||||
|
||||
if not field.is_visible(formdata.data, objectdef):
|
||||
|
|
Loading…
Reference in New Issue