filters interactivity + fix in fetch, flask and SQL requests
This commit is contained in:
22
src/app.py
22
src/app.py
@ -119,6 +119,28 @@ def data_item_request():
|
||||
print("fetching data item")
|
||||
return jsonify(get_item())
|
||||
|
||||
@app.route('/app/dataitem-filtered',methods = ['POST'])
|
||||
def data_item_request_filtered():
|
||||
print("fetching data item")
|
||||
data = request.get_json()
|
||||
filters_string = data.get('filters')
|
||||
if len(filters_string)>0 :
|
||||
lists_uuid = filters_string.split('#')
|
||||
else:
|
||||
lists_uuid = []
|
||||
return jsonify(get_item_filtered(lists_uuid))
|
||||
|
||||
@app.route('/app/datahistory-filtered',methods = ['POST'])
|
||||
def data_history_request_filtered():
|
||||
print("fetching data history")
|
||||
data = request.get_json()
|
||||
filters_string = data.get('filters')
|
||||
if len(filters_string)>0 :
|
||||
lists_uuid = filters_string.split('#')
|
||||
else:
|
||||
lists_uuid = []
|
||||
return jsonify(get_history_filtered(lists_uuid))
|
||||
|
||||
@app.route('/app/datalist',methods = ['GET'])
|
||||
def data_list_request():
|
||||
if request.method == 'GET':
|
||||
|
31
src/db.py
31
src/db.py
@ -103,7 +103,7 @@ def get_item_filtered(lists_uuid):
|
||||
FROM item i
|
||||
"""
|
||||
for i in range(n_filters):
|
||||
sql_request += f', content c{str(i)}'
|
||||
sql_request += f', listcontent c{str(i)}'
|
||||
sql_request += ' WHERE '
|
||||
for i,uuid in enumerate(lists_uuid):
|
||||
sql_request += f' i.uuid = c{str(i)}.item_uuid and c{str(i)}.list_uuid = {str(uuid)} and'
|
||||
@ -120,6 +120,35 @@ def get_item_filtered(lists_uuid):
|
||||
results = get_item()
|
||||
return results
|
||||
|
||||
def get_history_filtered(lists_uuid):
|
||||
'''
|
||||
return history of items in a every specified lists (list of itemlist uuid)
|
||||
all history if filter is empty
|
||||
'''
|
||||
n_filters = len(lists_uuid)
|
||||
if n_filters > 0:
|
||||
sql_request = """
|
||||
SELECT uuid, quantity, discount_percentage, price, currency, h_timestamp
|
||||
FROM history h
|
||||
"""
|
||||
for i in range(n_filters):
|
||||
sql_request += f', listcontent c{str(i)}'
|
||||
sql_request += ' WHERE '
|
||||
for i,uuid in enumerate(lists_uuid):
|
||||
sql_request += f' h.uuid = c{str(i)}.item_uuid and c{str(i)}.list_uuid = {str(uuid)} and'
|
||||
|
||||
sql_request = sql_request[:-3] # remove last 'and'
|
||||
|
||||
connection = connect_db()
|
||||
cursor = connection.cursor()
|
||||
cursor.execute(sql_request)
|
||||
results = cursor.fetchall()
|
||||
cursor.close()
|
||||
connection.close()
|
||||
else:
|
||||
results = get_history()
|
||||
return results
|
||||
|
||||
def get_item_keys():
|
||||
'''return items id and attributes from database'''
|
||||
connection = connect_db()
|
||||
|
Reference in New Issue
Block a user