diff --git a/eps/eps/doctype/energy_point_log/energy_point_log.py b/eps/eps/doctype/energy_point_log/energy_point_log.py index 01c0b6e..b3e1fcc 100644 --- a/eps/eps/doctype/energy_point_log/energy_point_log.py +++ b/eps/eps/doctype/energy_point_log/energy_point_log.py @@ -361,23 +361,27 @@ def send_summary(timespan): # select only those users that have energy point email notifications enabled all_users = [ - user.email + user for user in get_enabled_system_users() - if is_email_notifcations_enabled(user.name) + if is_email_notifications_enabled_for_type(user.name, "Energy Point") ] - frappe.sendmail( - subject=f"{timespan} energy points summary", - recipients=all_users, - template="energy_points_summary", - args={ - "top_performer": user_points[0], - "top_reviewer": max(user_points, key=lambda x: x["given_points"]), - "standings": user_points[:10], # top 10 - "footer_message": get_footer_message(timespan).format(from_date, to_date), - }, - with_container=1, - ) + for user in all_users: + frappe.set_user_lang(user.name) + frappe.sendmail( + subject=_("{0} energy points summary").format(_(timespan)), + recipients=user.email, + template="energy_points_summary", + args={ + "top_performer": user_points[0], + "top_reviewer": max(user_points, key=lambda x: x["given_points"]), + "standings": user_points[:10], # top 10 + "footer_message": get_footer_message(timespan).format(from_date, to_date), + }, + with_container=1, + ) + + frappe.set_user_lang(frappe.session.user) def get_footer_message(timespan): @@ -386,5 +390,6 @@ def get_footer_message(timespan): else: return _("Stats based on last week's performance (from {0} to {1})") + def delete_energy_point_logs_for_user(user): - frappe.db.delete("Energy Point Log", {"user": user.name}) \ No newline at end of file + frappe.db.delete("Energy Point Log", {"user": user.name}) \ No newline at end of file diff --git a/eps/eps/doctype/energy_point_log/energy_point_log_list.js b/eps/eps/doctype/energy_point_log/energy_point_log_list.js index d2fcd3d..8df255e 100644 --- a/eps/eps/doctype/energy_point_log/energy_point_log_list.js +++ b/eps/eps/doctype/energy_point_log/energy_point_log_list.js @@ -7,7 +7,7 @@ frappe.listview_settings["Energy Point Log"] = { Criticism: "red", Auto: "blue", Revert: "orange", - Review: "grey", + Review: "gray", }; return [__(doc.type), colors[doc.type], "type,=," + doc.type]; }, diff --git a/eps/eps/leaderboard.py b/eps/eps/leaderboard.py index 2818262..824facb 100644 --- a/eps/eps/leaderboard.py +++ b/eps/eps/leaderboard.py @@ -5,7 +5,7 @@ def get_leaderboards(): return { "User": { - "fields": ["points"], + "fields": [{"fieldname": "points", "label": _("Points")}], "method": "eps.eps.leaderboard.get_energy_point_leaderboard", "company_disabled": 1, "icon": "users", diff --git a/eps/eps/page/leaderboard/leaderboard.css b/eps/eps/page/leaderboard/leaderboard.css index d15b4ff..c38010b 100644 --- a/eps/eps/page/leaderboard/leaderboard.css +++ b/eps/eps/page/leaderboard/leaderboard.css @@ -55,6 +55,16 @@ max-width: 100px; } +.leaderboard-sidebar .desk-sidebar-item.active { + background-color: white; + border-radius: 5px; + box-shadow: var(--shadow-sm); +} + +.leaderboard-sidebar .nav-link { + padding: 0.5rem; +} + .leaderboard .result { border-top: 1px solid var(--border-color); } diff --git a/eps/eps/page/leaderboard/leaderboard.js b/eps/eps/page/leaderboard/leaderboard.js index 34bd06a..8751b69 100644 --- a/eps/eps/page/leaderboard/leaderboard.js +++ b/eps/eps/page/leaderboard/leaderboard.js @@ -41,39 +41,34 @@ class Leaderboard { this.filters[doctype] = this.leaderboard_config[doctype].fields.map( (field) => { if (typeof field === "object") { - return field.label || field.fieldname; + return field; } - return field; + return { fieldname: field, label: __(field) }; } ); } - - // For translation. Do not remove this - // __("This Week"), __("This Month"), __("This Quarter"), __("This Year"), - // __("Last Week"), __("Last Month"), __("Last Quarter"), __("Last Year"), - // __("All Time"), __("Select From Date") this.timespans = [ - "This Week", - "This Month", - "This Quarter", - "This Year", - "Last Week", - "Last Month", - "Last Quarter", - "Last Year", - "All Time", - "Select Date Range", + { label: __("This Week"), value: "This Week" }, + { label: __("This Month"), value: "This Month" }, + { label: __("This Quarter"), value: "This Quarter" }, + { label: __("This Year"), value: "This Year" }, + { label: __("Last Week"), value: "Last Week" }, + { label: __("Last Month"), value: "Last Month" }, + { label: __("Last Quarter"), value: "Last Quarter" }, + { label: __("Last Year"), value: "Last Year" }, + { label: __("All Time"), value: "All Time" }, + { label: __("Select Date Range"), value: "Select Date Range" }, ]; // for saving current selected filters const _initial_doctype = frappe.get_route()[1] || this.doctypes[0]; - const _initial_timespan = this.timespans[0]; + const _initial_timespan = this.timespans[0].value; const _initial_filter = this.filters[_initial_doctype]; this.options = { selected_doctype: _initial_doctype, selected_filter: _initial_filter, - selected_filter_item: _initial_filter[0], + selected_filter_item: _initial_filter[0].fieldname, selected_timespan: _initial_timespan, }; @@ -83,7 +78,7 @@ class Leaderboard { } make() { - this.$container = $(`