0001-admin-fix-duplication-of-fields-11359.patch
tests/test_admin_pages.py | ||
---|---|---|
825 | 825 |
assert FormDef.get(1).fields[0].label == '1st field' |
826 | 826 |
assert FormDef.get(1).fields[1].label == '1st field' |
827 | 827 | |
828 |
def test_form_duplicate_file_field(pub): |
|
829 |
create_superuser(pub) |
|
830 |
create_role() |
|
831 | ||
832 |
FormDef.wipe() |
|
833 |
formdef = FormDef() |
|
834 |
formdef.name = 'form title' |
|
835 |
formdef.fields = [] |
|
836 |
formdef.store() |
|
837 | ||
838 |
app = login(get_app(pub)) |
|
839 |
resp = app.get('/backoffice/forms/1/') |
|
840 |
resp = resp.click(href='fields/') |
|
841 | ||
842 |
# add a first field |
|
843 |
resp.forms[0]['label'] = 'foobar' |
|
844 |
resp.forms[0]['type'] = 'File Upload' |
|
845 |
resp = resp.forms[0].submit() |
|
846 |
assert resp.location == 'http://example.net/backoffice/forms/%s/fields/' % formdef.id |
|
847 |
resp = resp.follow() |
|
848 |
assert 'foobar' in resp.body |
|
849 | ||
850 |
resp = resp.click(href='%s/duplicate' % FormDef.get(formdef.id).fields[0].id) |
|
851 |
assert resp.location == 'http://example.net/backoffice/forms/1/fields/' |
|
852 |
resp = resp.follow() |
|
853 | ||
828 | 854 |
def test_form_edit_field(pub): |
829 | 855 |
create_superuser(pub) |
830 | 856 |
create_role() |
wcs/admin/fields.py | ||
---|---|---|
138 | 138 |
def duplicate(self): |
139 | 139 |
field_pos = self.objectdef.fields.index(self.field) |
140 | 140 |
fields = self.objectdef.fields |
141 |
new_field = copy.copy(self.field) |
|
141 |
new_field = copy.deepcopy(self.field)
|
|
142 | 142 |
# allocate a new id |
143 | 143 |
new_field.id = self.objectdef.get_new_field_id() |
144 | 144 |
fields.insert(field_pos+1, new_field) |
145 |
- |