From 1235cf73dba4c75643e32fa7bbf1f38f39badee4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Wed, 31 Aug 2016 10:40:23 +0200 Subject: [PATCH] fields: position page on new field after duplication (#12991) --- tests/test_admin_pages.py | 5 +++-- wcs/admin/fields.py | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/tests/test_admin_pages.py b/tests/test_admin_pages.py index 766235a..721c14c 100644 --- a/tests/test_admin_pages.py +++ b/tests/test_admin_pages.py @@ -828,6 +828,7 @@ def test_form_delete_field(pub): assert len(FormDef.get(1).fields) == 0 def test_form_duplicate_field(pub): + user = create_superuser(pub) create_role() FormDef.wipe() @@ -842,7 +843,7 @@ def test_form_duplicate_field(pub): assert '1st field' in resp.body resp = resp.click(href='1/duplicate') - assert resp.location == 'http://example.net/backoffice/forms/1/fields/' + assert resp.location == 'http://example.net/backoffice/forms/1/fields/#itemId_2' resp = resp.follow() assert len(FormDef.get(1).fields) == 2 assert FormDef.get(1).fields[0].label == '1st field' @@ -871,7 +872,7 @@ def test_form_duplicate_file_field(pub): assert 'foobar' in resp.body resp = resp.click(href='%s/duplicate' % FormDef.get(formdef.id).fields[0].id) - assert resp.location == 'http://example.net/backoffice/forms/1/fields/' + assert resp.location == 'http://example.net/backoffice/forms/1/fields/#itemId_2' resp = resp.follow() def test_form_edit_field(pub): diff --git a/wcs/admin/fields.py b/wcs/admin/fields.py index 3dd378d..06a2898 100644 --- a/wcs/admin/fields.py +++ b/wcs/admin/fields.py @@ -143,10 +143,11 @@ class FieldDefPage(Directory): new_field.id = self.objectdef.get_new_field_id() fields.insert(field_pos+1, new_field) self.objectdef.store() + anchor = '#itemId_%s' % new_field.id if self.page_no: - return redirect('../') + return redirect('../' + anchor) else: - return redirect('../../fields/') + return redirect('../../fields/' + anchor) class FieldsPagesDirectory(Directory): -- 2.9.3