0003-backoffice-use-order_by-param-in-exports-47629.patch
tests/backoffice_pages/test_export.py | ||
---|---|---|
334 | 334 |
assert resp_csv.text.splitlines()[1].split(',')[-3:] == ['XfooY', 'Xfoo2Y', ''] |
335 | 335 | |
336 | 336 | |
337 |
def test_backoffice_csv_export_ordering(pub): |
|
338 |
if not pub.is_using_postgresql(): |
|
339 |
pytest.skip('this requires SQL') |
|
340 |
return |
|
341 | ||
342 |
create_superuser(pub) |
|
343 | ||
344 |
FormDef.wipe() |
|
345 |
formdef = FormDef() |
|
346 |
formdef.name = 'form title' |
|
347 |
formdef.fields = [ |
|
348 |
fields.ItemField( |
|
349 |
id='1', label='field 1', type='item', |
|
350 |
items=['foo', 'bar', 'baz'], |
|
351 |
display_locations=['validation', 'summary', 'listings']), |
|
352 |
] |
|
353 |
formdef.workflow_roles = {'_receiver': 1} |
|
354 |
formdef.store() |
|
355 | ||
356 |
formdef.data_class().wipe() |
|
357 |
formdata = formdef.data_class()() |
|
358 |
formdata.data = {'1': 'foo', '1_display': 'foo'} |
|
359 |
formdata.jump_status('new') |
|
360 |
formdata.store() |
|
361 |
formdata = formdef.data_class()() |
|
362 |
formdata.data = {'1': 'bar', '1_display': 'bar'} |
|
363 |
formdata.jump_status('new') |
|
364 |
formdata.store() |
|
365 | ||
366 |
app = login(get_app(pub)) |
|
367 |
resp_csv = app.get('/backoffice/management/form-title/csv') |
|
368 |
assert resp_csv.text.splitlines()[1].split(',')[-3:] == ['-', 'bar', 'New'] |
|
369 |
assert resp_csv.text.splitlines()[2].split(',')[-3:] == ['-', 'foo', 'New'] |
|
370 |
resp_csv = app.get('/backoffice/management/form-title/csv?order_by=id') |
|
371 |
assert resp_csv.text.splitlines()[1].split(',')[-3:] == ['-', 'foo', 'New'] |
|
372 |
assert resp_csv.text.splitlines()[2].split(',')[-3:] == ['-', 'bar', 'New'] |
|
373 | ||
374 | ||
337 | 375 |
def test_backoffice_ods(pub): |
338 | 376 |
create_superuser(pub) |
339 | 377 |
wcs/backoffice/management.py | ||
---|---|---|
2033 | 2033 |
user = get_request().user |
2034 | 2034 |
query = get_request().form.get('q') |
2035 | 2035 |
criterias = self.get_criterias_from_query() |
2036 |
order_by = misc.get_order_by_or_400(get_request().form.get('order_by', None)) |
|
2036 | 2037 | |
2037 | 2038 |
class Exporter(object): |
2038 | 2039 |
def __init__(self, formpage, formdef, fields, selected_filter): |
... | ... | |
2049 | 2050 | |
2050 | 2051 |
items, total_count = FormDefUI(self.formdef).get_listing_items( |
2051 | 2052 |
fields, self.selected_filter, user=user, query=query, |
2052 |
criterias=criterias) |
|
2053 |
criterias=criterias, order_by=order_by)
|
|
2053 | 2054 | |
2054 | 2055 |
for filled in items: |
2055 | 2056 |
csv_output.writerow(tuple( |
... | ... | |
2134 | 2135 |
user = get_request().user |
2135 | 2136 |
query = get_request().form.get('q') |
2136 | 2137 |
criterias = self.get_criterias_from_query() |
2138 |
order_by = misc.get_order_by_or_400(get_request().form.get('order_by', None)) |
|
2137 | 2139 | |
2138 | 2140 |
class Exporter(object): |
2139 | 2141 |
def __init__(self, formpage, formdef, fields, selected_filter): |
... | ... | |
2151 | 2153 | |
2152 | 2154 |
items, total_count = FormDefUI(self.formdef).get_listing_items( |
2153 | 2155 |
fields, self.selected_filter, user=user, query=query, |
2154 |
criterias=criterias) |
|
2156 |
criterias=criterias, order_by=order_by)
|
|
2155 | 2157 | |
2156 | 2158 |
for i, filled in enumerate(items): |
2157 | 2159 |
for j, item in enumerate(self.formpage.get_spreadsheet_line(fields, filled)): |
... | ... | |
2199 | 2201 |
user = get_user_from_api_query_string() or get_request().user |
2200 | 2202 |
query = get_request().form.get('q') |
2201 | 2203 |
criterias = self.get_criterias_from_query() |
2204 |
order_by = misc.get_order_by_or_400(get_request().form.get('order_by', None)) |
|
2202 | 2205 | |
2203 | 2206 |
class Exporter(object): |
2204 | 2207 |
def __init__(self, formpage, formdef, fields, selected_filter): |
... | ... | |
2216 | 2219 | |
2217 | 2220 |
items, total_count = FormDefUI(self.formdef).get_listing_items( |
2218 | 2221 |
fields, self.selected_filter, user=user, query=query, |
2219 |
criterias=criterias) |
|
2222 |
criterias=criterias, order_by=order_by)
|
|
2220 | 2223 | |
2221 | 2224 |
for i, formdata in enumerate(items): |
2222 | 2225 |
for j, item in enumerate(self.formpage.get_spreadsheet_line(fields, formdata)): |
2223 |
- |