0002-backoffice-fix-form-fields-reorder-45380.patch
tests/test_forms_admin_pages.py | ||
---|---|---|
1833 | 1833 |
FormDef.wipe() |
1834 | 1834 | |
1835 | 1835 | |
1836 |
def test_form_fields_reorder(pub): |
|
1837 |
create_superuser(pub) |
|
1838 |
create_role() |
|
1839 | ||
1840 |
FormDef.wipe() |
|
1841 |
formdef = FormDef() |
|
1842 |
formdef.name = 'form title' |
|
1843 |
formdef.fields = [ |
|
1844 |
fields.PageField(id='0', label='1st page', type='page'), |
|
1845 |
fields.StringField(id='1', label='string', type='string'), |
|
1846 |
fields.PageField(id='2', label='2nd page', type='page'), |
|
1847 |
fields.StringField(id='3', label='string 2', type='string') |
|
1848 |
] |
|
1849 |
formdef.store() |
|
1850 | ||
1851 |
app = login(get_app(pub)) |
|
1852 |
app.get('/backoffice/forms/%s/fields/update_order?order=0;3;1;2;' % formdef.id) |
|
1853 |
formdef = FormDef.get(formdef.id) |
|
1854 |
assert [x.id for x in formdef.fields] == ['0', '3', '1', '2'] |
|
1855 | ||
1856 |
# unknown id: ignored |
|
1857 |
app.get('/backoffice/forms/%s/fields/update_order?order=0;1;2;3;4;' % formdef.id) |
|
1858 |
formdef = FormDef.get(formdef.id) |
|
1859 |
assert [x.id for x in formdef.fields] == ['0', '1', '2', '3'] |
|
1860 |
# missing id: do nothing |
|
1861 |
app.get('/backoffice/forms/%s/fields/update_order?order=0;3;1;' % formdef.id) |
|
1862 |
formdef = FormDef.get(formdef.id) |
|
1863 |
assert [x.id for x in formdef.fields] == ['0', '1', '2', '3'] |
|
1864 | ||
1865 | ||
1836 | 1866 |
def test_form_limit_display_to_page(pub): |
1837 | 1867 |
create_superuser(pub) |
1838 | 1868 |
create_role() |
wcs/admin/fields.py | ||
---|---|---|
374 | 374 |
def update_order(self): |
375 | 375 |
request = get_request() |
376 | 376 |
new_order = request.form['order'].strip(';').split(';') |
377 |
new_fields = [ [x for x in self.objectdef.fields if x.id == y][0] for y in new_order] |
|
377 |
new_fields = [] |
|
378 |
for y in new_order: |
|
379 |
for x in self.objectdef.fields: |
|
380 |
if x.id == y: |
|
381 |
new_fields.append(x) |
|
382 |
break |
|
383 |
if set(self.objectdef.fields) != set(new_fields): |
|
384 |
return 'ko' |
|
378 | 385 |
self.objectdef.fields = new_fields |
379 | 386 |
self.objectdef.store() |
380 | 387 |
return 'ok' |
381 |
- |