def get_student_stats(user):
stats = {}
if user.has_perm(get_perm_name(Actions.see.value, UserGroups.student.value, "balance")):
student_accounts = Account.objects.filter(user__groups__name__contains=UserGroups.student.value)
balances = [a.balance for a in student_accounts]
stats.update({
'sum_money': int(sum(balances)),
'mean_money': int(statistics.mean(balances))
})
if user.has_perm(get_perm_name(Actions.process.value, UserGroups.student.value, "created_transactions")):
stats.update({'created_students_len': Transaction.objects.filter(
creator__groups__name__in=[UserGroups.student.value]).filter(state__name=States.created.value).__len__()})
if user.has_perm(get_perm_name(Actions.process.value, UserGroups.staff.value, "created_transactions")):
stats.update({'created_staff_len': Transaction.objects.filter(
creator__groups__name__in=[UserGroups.staff.value]).filter(state__name=States.created.value).__len__()})
return stats
评论列表
文章目录