fix: get users for leaderboard

This commit is contained in:
barredterra 2023-12-11 18:07:30 +01:00
parent 8129fe7268
commit 2f7b9f8a5a

View file

@ -15,18 +15,17 @@ def get_leaderboards():
@frappe.whitelist()
def get_energy_point_leaderboard(date_range, company=None, field=None, limit=None):
all_users = frappe.get_all(
users = frappe.get_list(
"User",
filters={
"name": ["not in", ["Administrator", "Guest"]],
"enabled": 1,
"user_type": ["!=", "Website User"],
},
order_by="name ASC",
pluck="name",
)
all_users_list = list(map(lambda x: x["name"], all_users))
filters = [["type", "!=", "Review"], ["user", "in", all_users_list]]
filters = [["type", "!=", "Review"], ["user", "in", users]]
if date_range:
date_range = frappe.parse_json(date_range)
filters.append(["creation", "between", [date_range[0], date_range[1]]])
@ -39,7 +38,7 @@ def get_energy_point_leaderboard(date_range, company=None, field=None, limit=Non
)
energy_point_users_list = list(map(lambda x: x["name"], energy_point_users))
for user in all_users_list:
for user in users:
if user not in energy_point_users_list:
energy_point_users.append({"name": user, "value": 0})