From a4d00d9bd8ff67c99bb5ad9cd7572468d454b91d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Tue, 22 Sep 2015 14:17:16 +0200 Subject: [PATCH 2/3] forms: always set a new url_name when importing (#8315) --- tests/test_admin_pages.py | 9 +++++++++ wcs/admin/forms.py | 7 +------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/tests/test_admin_pages.py b/tests/test_admin_pages.py index cdd5df8..929d67f 100644 --- a/tests/test_admin_pages.py +++ b/tests/test_admin_pages.py @@ -666,6 +666,15 @@ def test_form_import(pub): assert FormDef.get(1).url_name == 'form-title' assert FormDef.get(2).url_name == 'form-title-1' + # import a formdef with an url_name that doesn't match its title + formdef.url_name = 'xxx-other-form-title' + formdef_xml = ET.tostring(formdef.export_to_xml(include_id=True)) + + resp = app.get('/backoffice/forms/') + resp = resp.click(href='import') + resp.forms[0]['file'] = Upload('formdef.wcs', formdef_xml) + resp = resp.forms[0].submit() + def test_form_qrcode(pub): create_role() diff --git a/wcs/admin/forms.py b/wcs/admin/forms.py index 77d8c01..50a5fd4 100644 --- a/wcs/admin/forms.py +++ b/wcs/admin/forms.py @@ -1606,12 +1606,7 @@ class FormsDirectory(AccessControlled, Directory): form.set_error('file', msg) raise ValueError() - try: - FormDef.get_by_urlname(formdef.url_name, ignore_migration=True) - except KeyError: - pass # fine, the urlname is free - else: - formdef.url_name = None + formdef.url_name = None # a new one will be set in .store() formdef.disabled = True formdef.store() get_session().message = ('info', -- 2.5.3