diff --git a/frappe/social/doctype/energy_point_settings/energy_point_settings.py b/frappe/social/doctype/energy_point_settings/energy_point_settings.py index 65b8a2626c..737aab587c 100644 --- a/frappe/social/doctype/energy_point_settings/energy_point_settings.py +++ b/frappe/social/doctype/energy_point_settings/energy_point_settings.py @@ -21,17 +21,21 @@ def allocate_review_points(): settings.point_allocation_periodicity): return + user_point_map = {} + for level in settings.review_levels: - create_review_points(level) + users = get_users_with_role(level.role) + for user in users: + user_point_map.setdefault(user, 0) + # to avoid duplicate point allocation + user_point_map[user] = max([user_point_map[user], level.review_points]) + + for user, points in user_point_map.items(): + create_review_points_log(user, points) settings.last_point_allocation_date = today() settings.save(ignore_permissions=True) -def create_review_points(level): - users = get_users_with_role(level.role) - for user in users: - create_review_points_log(user, level.review_points) - def can_allocate_today(last_date, periodicity): if not last_date: return True