Projet

Général

Profil

0001-backoffice-apply-selected-criterias-to-csv-ods-xls-e.patch

Frédéric Péters, 30 novembre 2015 22:14

Télécharger (4,88 ko)

Voir les différences:

Subject: [PATCH] backoffice: apply selected criterias to csv/ods/xls exports
 (#9160)

 tests/test_backoffice_pages.py | 33 +++++++++++++++++++++++++++++++--
 wcs/backoffice/management.py   | 12 +++++++++---
 2 files changed, 40 insertions(+), 5 deletions(-)
tests/test_backoffice_pages.py
302 302
    resp = app.get('/backoffice/management/form-title/')
303 303
    resp.forms[0]['filter'] = 'all'
304 304
    resp = resp.forms[0].submit()
305
    resp = resp.click('Export as CSV File')
306
    assert len(resp.body.splitlines()) == 51
305
    resp_csv = resp.click('Export as CSV File')
306
    assert len(resp_csv.body.splitlines()) == 51
307

  
308
    # test status filter
309
    resp.forms[0]['filter'] = 'pending'
310
    resp.forms[0]['filter-2'].checked = True
311
    resp = resp.forms[0].submit()
312
    resp.forms[0]['filter-2-value'] = 'baz'
313
    resp = resp.forms[0].submit()
314
    resp_csv = resp.click('Export as CSV File')
315
    assert len(resp_csv.body.splitlines()) == 9
316

  
317
    # test criteria filters
318
    resp.forms[0]['filter-start'].checked = True
319
    resp = resp.forms[0].submit()
320
    resp.forms[0]['filter-start-value'] = datetime.datetime(2015, 2, 1).strftime('%Y-%m-%d')
321
    resp = resp.forms[0].submit()
322
    resp_csv = resp.click('Export as CSV File')
323
    assert len(resp_csv.body.splitlines()) == 1
324

  
325
    resp.forms[0]['filter-start-value'] = datetime.datetime(2014, 2, 1).strftime('%Y-%m-%d')
326
    resp = resp.forms[0].submit()
327
    resp_csv = resp.click('Export as CSV File')
328
    assert len(resp_csv.body.splitlines()) == 9
329
    assert 'Time' in resp_csv.body.splitlines()[0]
330

  
331
    # test column selection
332
    resp.form['time'].checked = False
333
    resp = resp.forms[0].submit()
334
    resp_csv = resp.click('Export as CSV File')
335
    assert 'Time' not in resp_csv.body.splitlines()[0]
307 336

  
308 337
def test_backoffice_ods(pub):
309 338
    create_superuser(pub)
wcs/backoffice/management.py
1108 1108
        selected_filter = self.get_filter_from_query()
1109 1109
        user = get_request().user
1110 1110
        query = get_request().form.get('q')
1111
        criterias = self.get_criterias_from_query()
1111 1112

  
1112 1113
        class Exporter(object):
1113 1114
            def __init__(self, formpage, formdef, fields, selected_filter):
......
1123 1124
                csv_output.writerow(self.formpage.csv_tuple_heading(self.fields))
1124 1125

  
1125 1126
                items, total_count = FormDefUI(self.formdef).get_listing_items(
1126
                        self.selected_filter, user=user, query=query)
1127
                        self.selected_filter, user=user, query=query,
1128
                        criterias=criterias)
1127 1129

  
1128 1130
                for filled in items:
1129 1131
                    csv_output.writerow(self.formpage.csv_tuple(self.fields, filled))
......
1206 1208
        selected_filter = self.get_filter_from_query()
1207 1209
        user = get_request().user
1208 1210
        query = get_request().form.get('q')
1211
        criterias = self.get_criterias_from_query()
1209 1212

  
1210 1213
        class Exporter(object):
1211 1214
            def __init__(self, formpage, formdef, fields, selected_filter):
......
1222 1225
                    ws.write(0, i, f)
1223 1226

  
1224 1227
                items, total_count = FormDefUI(self.formdef).get_listing_items(
1225
                        self.selected_filter, user=user, query=query)
1228
                        self.selected_filter, user=user, query=query,
1229
                        criterias=criterias)
1226 1230

  
1227 1231
                for i, filled in enumerate(items):
1228 1232
                    for j, elem in enumerate(self.formpage.csv_tuple(fields, filled)):
......
1265 1269
        selected_filter = self.get_filter_from_query()
1266 1270
        user = get_request().user
1267 1271
        query = get_request().form.get('q')
1272
        criterias = self.get_criterias_from_query()
1268 1273

  
1269 1274
        class Exporter(object):
1270 1275
            def __init__(self, formpage, formdef, fields, selected_filter):
......
1281 1286
                    ws.write(0, i, f)
1282 1287

  
1283 1288
                items, total_count = FormDefUI(self.formdef).get_listing_items(
1284
                        self.selected_filter, user=user, query=query)
1289
                        self.selected_filter, user=user, query=query,
1290
                        criterias=criterias)
1285 1291

  
1286 1292
                for i, filled in enumerate(items):
1287 1293
                    for j, elem in enumerate(self.formpage.csv_tuple(fields, filled, hint='ods')):
1288
-