admin: fix duplication of fields (#11359)
This commit is contained in:
parent
c294c059e3
commit
5c100ef60f
|
@ -825,6 +825,32 @@ def test_form_duplicate_field(pub):
|
|||
assert FormDef.get(1).fields[0].label == '1st field'
|
||||
assert FormDef.get(1).fields[1].label == '1st field'
|
||||
|
||||
def test_form_duplicate_file_field(pub):
|
||||
create_superuser(pub)
|
||||
create_role()
|
||||
|
||||
FormDef.wipe()
|
||||
formdef = FormDef()
|
||||
formdef.name = 'form title'
|
||||
formdef.fields = []
|
||||
formdef.store()
|
||||
|
||||
app = login(get_app(pub))
|
||||
resp = app.get('/backoffice/forms/1/')
|
||||
resp = resp.click(href='fields/')
|
||||
|
||||
# add a first field
|
||||
resp.forms[0]['label'] = 'foobar'
|
||||
resp.forms[0]['type'] = 'File Upload'
|
||||
resp = resp.forms[0].submit()
|
||||
assert resp.location == 'http://example.net/backoffice/forms/%s/fields/' % formdef.id
|
||||
resp = resp.follow()
|
||||
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/'
|
||||
resp = resp.follow()
|
||||
|
||||
def test_form_edit_field(pub):
|
||||
create_superuser(pub)
|
||||
create_role()
|
||||
|
|
|
@ -138,7 +138,7 @@ class FieldDefPage(Directory):
|
|||
def duplicate(self):
|
||||
field_pos = self.objectdef.fields.index(self.field)
|
||||
fields = self.objectdef.fields
|
||||
new_field = copy.copy(self.field)
|
||||
new_field = copy.deepcopy(self.field)
|
||||
# allocate a new id
|
||||
new_field.id = self.objectdef.get_new_field_id()
|
||||
fields.insert(field_pos+1, new_field)
|
||||
|
|
Loading…
Reference in New Issue