Added two new statistics about all users: 'order sum' visible for users having the 'view_order' permission and 'deposit sum' visible for users having the 'view_registertransaction' permission, improved the layout of the statistics page, updated translations
This commit is contained in:
parent
4eb2911150
commit
e4acc5c101
5 changed files with 109 additions and 34 deletions
|
@ -16,7 +16,6 @@ def _db_select(sql_select:str):
|
|||
result = cursor.fetchall()
|
||||
return result
|
||||
|
||||
|
||||
def _combine_results(results:list) -> dict:
|
||||
'''
|
||||
e.g.
|
||||
|
@ -81,8 +80,7 @@ def select_history(user, language_code="en") -> list:
|
|||
result = [list(row) for row in result]
|
||||
return result
|
||||
|
||||
|
||||
def orders_per_month(user) -> list:
|
||||
def select_orders_per_month(user) -> dict:
|
||||
# number of orders per month (last 12 months)
|
||||
result_user = _db_select(f"""
|
||||
select
|
||||
|
@ -105,8 +103,7 @@ def orders_per_month(user) -> list:
|
|||
""")
|
||||
return _combine_results([result_all, result_user])
|
||||
|
||||
|
||||
def orders_per_weekday(user) -> list:
|
||||
def select_orders_per_weekday(user) -> list:
|
||||
# number of orders per weekday (all time)
|
||||
result = _db_select(f"""
|
||||
with q_all as (
|
||||
|
@ -132,8 +129,7 @@ def orders_per_weekday(user) -> list:
|
|||
result[i] = (day_name[int(day_)-1], all_, user_)
|
||||
return result
|
||||
|
||||
|
||||
def orders_per_drink(user) -> list:
|
||||
def select_orders_per_drink(user) -> dict:
|
||||
# number of orders per drink (all time)
|
||||
result_user = _db_select(f"""
|
||||
select
|
||||
|
@ -155,3 +151,30 @@ def orders_per_drink(user) -> list:
|
|||
order by "data" desc;
|
||||
""")
|
||||
return _combine_results([result_all, result_user])
|
||||
|
||||
def select_order_sum_per_user_all_users() -> list:
|
||||
# sum of all orders per user, for all users
|
||||
result = _db_select(f"""
|
||||
select
|
||||
app_user.username as user,
|
||||
sum(app_order.price_sum) as sum
|
||||
from app_user
|
||||
left outer join app_order on (app_user.id = app_order.user_id)
|
||||
group by app_user.id
|
||||
order by app_user asc;
|
||||
""")
|
||||
return result
|
||||
|
||||
def select_deposit_sum_per_user_all_users() -> list:
|
||||
# sum of all orders per user, for all users
|
||||
result = _db_select(f"""
|
||||
select
|
||||
app_user.username as user,
|
||||
sum(rt.transaction_sum) as sum
|
||||
from app_user
|
||||
left outer join app_registertransaction rt on (app_user.id = rt.user_id)
|
||||
where rt.is_user_deposit is true or rt.is_user_deposit is null
|
||||
group by app_user.id
|
||||
order by app_user asc;
|
||||
""")
|
||||
return result
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue