MCPcopy
hub / github.com/coleifer/sqlite-web / _query_view

Function _query_view

sqlite_web/sqlite_web.py:389–516  ·  view source on GitHub ↗
(template, table=None)

Source from the content-addressed store, hash-verified

387 return render_template('unload.html', selected=dataset)
388
389def _query_view(template, table=None):
390 dataset = get_dataset()
391 data = []
392 data_description = error = row_count = sql = None
393 ordering = None
394 pk_index = None
395
396 sql = qsql = request.values.get('sql') or ''
397
398 if 'export_json' in request.values:
399 ordering = request.values.get('export_ordering')
400 export_format = 'json'
401 elif 'export_csv' in request.values:
402 ordering = request.values.get('export_ordering')
403 export_format = 'csv'
404 else:
405 ordering = request.values.get('ordering')
406 export_format = None
407
408 if ordering:
409 ordering = int(ordering)
410 direction = 'DESC' if ordering < 0 else 'ASC'
411 qsql = ('SELECT * FROM (%s) AS _ ORDER BY %d %s' %
412 (sql.rstrip(' ;'), abs(ordering), direction))
413 else:
414 ordering = None
415
416 if table:
417 default_sql = 'SELECT * FROM "%s"' % table
418 model_class = dataset[table].model_class
419 pk = model_class._meta.primary_key
420 is_composite_pk = isinstance(pk, CompositeKey)
421 allow_edit = not dataset.is_readonly and pk is not False
422 allow_bulk = allow_edit and not is_composite_pk
423 else:
424 default_sql = ''
425 model_class = dataset._base_model
426 pk = None
427 is_composite_pk = False
428 allow_edit = False
429 allow_bulk = False
430
431 if request.method == 'POST':
432 action = request.form.get('action')
433 pks = request.form.getlist('pk')
434 if action == 'bulk-delete':
435 if not allow_bulk:
436 flash('Cannot perform bulk operation on this table.', 'warning')
437 elif not pks:
438 flash('No rows were selected.', 'warning')
439 else:
440 n = (model_class.delete()
441 .where(model_class._meta.primary_key.in_(pks))
442 .execute())
443 flash('Successfully deleted %s row(s)' % n, 'success')
444
445 page = page_next = page_prev = page_start = page_end = total_pages = 1
446 total = -1 # Number of rows in query result.

Callers 2

generic_queryFunction · 0.85
table_queryFunction · 0.85

Calls 4

get_datasetFunction · 0.85
exportFunction · 0.85
get_query_imagesFunction · 0.85
get_table_sqlMethod · 0.80

Tested by

no test coverage detected