0004-backoffice-use-order_by-param-in-exports-47629.patch
tests/backoffice_pages/test_export.py | ||
---|---|---|
327 | 327 |
assert resp_csv.text.splitlines()[1].split(',')[-3:] == ['XfooY', 'Xfoo2Y', ''] |
328 | 328 | |
329 | 329 | |
330 |
def test_backoffice_csv_export_ordering(pub): |
|
331 |
if not pub.is_using_postgresql(): |
|
332 |
pytest.skip('this requires SQL') |
|
333 |
return |
|
334 | ||
335 |
create_superuser(pub) |
|
336 | ||
337 |
FormDef.wipe() |
|
338 |
formdef = FormDef() |
|
339 |
formdef.name = 'form title' |
|
340 |
formdef.fields = [ |
|
341 |
fields.ItemField( |
|
342 |
id='1', label='field 1', type='item', |
|
343 |
items=['foo', 'bar', 'baz'], |
|
344 |
display_locations=['validation', 'summary', 'listings']), |
|
345 |
] |
|
346 |
formdef.workflow_roles = {'_receiver': 1} |
|
347 |
formdef.store() |
|
348 | ||
349 |
formdef.data_class().wipe() |
|
350 |
formdata = formdef.data_class()() |
|
351 |
formdata.data = {'1': 'foo', '1_display': 'foo'} |
|
352 |
formdata.jump_status('new') |
|
353 |
formdata.store() |
|
354 |
formdata = formdef.data_class()() |
|
355 |
formdata.data = {'1': 'bar', '1_display': 'bar'} |
|
356 |
formdata.jump_status('new') |
|
357 |
formdata.store() |
|
358 | ||
359 |
app = login(get_app(pub)) |
|
360 |
resp_csv = app.get('/backoffice/management/form-title/csv') |
|
361 |
assert resp_csv.text.splitlines()[1].split(',')[-3:] == ['-', 'bar', 'New'] |
|
362 |
assert resp_csv.text.splitlines()[2].split(',')[-3:] == ['-', 'foo', 'New'] |
|
363 |
resp_csv = app.get('/backoffice/management/form-title/csv?order_by=id') |
|
364 |
assert resp_csv.text.splitlines()[1].split(',')[-3:] == ['-', 'foo', 'New'] |
|
365 |
assert resp_csv.text.splitlines()[2].split(',')[-3:] == ['-', 'bar', 'New'] |
|
366 | ||
367 | ||
330 | 368 |
def test_backoffice_ods(pub): |
331 | 369 |
create_superuser(pub) |
332 | 370 |
wcs/backoffice/management.py | ||
---|---|---|
1963 | 1963 |
user = get_request().user |
1964 | 1964 |
query = get_request().form.get('q') |
1965 | 1965 |
criterias = self.get_criterias_from_query() |
1966 |
order_by = misc.get_order_by_or_400(get_request().form.get('order_by', None)) |
|
1966 | 1967 | |
1967 | 1968 |
class Exporter(object): |
1968 | 1969 |
def __init__(self, formpage, formdef, fields, selected_filter): |
... | ... | |
1979 | 1980 | |
1980 | 1981 |
items, total_count = FormDefUI(self.formdef).get_listing_items( |
1981 | 1982 |
fields, self.selected_filter, user=user, query=query, |
1982 |
criterias=criterias) |
|
1983 |
criterias=criterias, order_by=order_by)
|
|
1983 | 1984 | |
1984 | 1985 |
for filled in items: |
1985 | 1986 |
csv_output.writerow(tuple( |
... | ... | |
2064 | 2065 |
user = get_request().user |
2065 | 2066 |
query = get_request().form.get('q') |
2066 | 2067 |
criterias = self.get_criterias_from_query() |
2068 |
order_by = misc.get_order_by_or_400(get_request().form.get('order_by', None)) |
|
2067 | 2069 | |
2068 | 2070 |
class Exporter(object): |
2069 | 2071 |
def __init__(self, formpage, formdef, fields, selected_filter): |
... | ... | |
2081 | 2083 | |
2082 | 2084 |
items, total_count = FormDefUI(self.formdef).get_listing_items( |
2083 | 2085 |
fields, self.selected_filter, user=user, query=query, |
2084 |
criterias=criterias) |
|
2086 |
criterias=criterias, order_by=order_by)
|
|
2085 | 2087 | |
2086 | 2088 |
for i, filled in enumerate(items): |
2087 | 2089 |
for j, item in enumerate(self.formpage.get_spreadsheet_line(fields, filled)): |
... | ... | |
2129 | 2131 |
user = get_user_from_api_query_string() or get_request().user |
2130 | 2132 |
query = get_request().form.get('q') |
2131 | 2133 |
criterias = self.get_criterias_from_query() |
2134 |
order_by = misc.get_order_by_or_400(get_request().form.get('order_by', None)) |
|
2132 | 2135 | |
2133 | 2136 |
class Exporter(object): |
2134 | 2137 |
def __init__(self, formpage, formdef, fields, selected_filter): |
... | ... | |
2146 | 2149 | |
2147 | 2150 |
items, total_count = FormDefUI(self.formdef).get_listing_items( |
2148 | 2151 |
fields, self.selected_filter, user=user, query=query, |
2149 |
criterias=criterias) |
|
2152 |
criterias=criterias, order_by=order_by)
|
|
2150 | 2153 | |
2151 | 2154 |
for i, formdata in enumerate(items): |
2152 | 2155 |
for j, item in enumerate(self.formpage.get_spreadsheet_line(fields, formdata)): |
2153 |
- |