Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 20 additions & 15 deletions eps/eps/doctype/energy_point_log/energy_point_log.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand All @@ -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})
frappe.db.delete("Energy Point Log", {"user": user.name})
2 changes: 1 addition & 1 deletion eps/eps/doctype/energy_point_log/energy_point_log_list.js
Original file line number Diff line number Diff line change
Expand Up @@ -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];
},
Expand Down
2 changes: 1 addition & 1 deletion eps/eps/leaderboard.py
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
10 changes: 10 additions & 0 deletions eps/eps/page/leaderboard/leaderboard.css
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
64 changes: 29 additions & 35 deletions eps/eps/page/leaderboard/leaderboard.js
Original file line number Diff line number Diff line change
Expand Up @@ -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,
};

Expand All @@ -83,7 +78,7 @@ class Leaderboard {
}

make() {
this.$container = $(`<div class="leaderboard page-main-content">
this.$container = $(`<div class="leaderboard page-main-content frappe-card mt-2">
<div class="leaderboard-graph"></div>
<div class="leaderboard-list"></div>
</div>`).appendTo(this.page.main);
Expand Down Expand Up @@ -119,18 +114,13 @@ class Leaderboard {
},
});

this.timespan_select = this.page.add_select(
__("Timespan"),
this.timespans.map((d) => {
return { label: __(d), value: d };
})
);
this.timespan_select = this.page.add_select(__("Timespan"), this.timespans);
this.create_date_range_field();

this.type_select = this.page.add_select(
__("Field"),
this.options.selected_filter.map((d) => {
return { label: __(frappe.model.unscrub(d)), value: d };
return { label: d.label, value: d.fieldname };
})
);

Expand All @@ -140,8 +130,8 @@ class Leaderboard {
this.date_range_field.show();
} else {
this.date_range_field.hide();
this.make_request();
}
this.make_request();
});

this.type_select.on("change", (e) => {
Expand Down Expand Up @@ -186,17 +176,21 @@ class Leaderboard {
);
this.options.selected_doctype = doctype;
this.options.selected_filter = this.filters[doctype];
this.options.selected_filter_item = this.filters[doctype][0];
this.options.selected_filter_item = this.filters[doctype][0].fieldname;

this.type_select.empty().add_options(
this.options.selected_filter.map((d) => {
return { label: __(frappe.model.unscrub(d)), value: d };
return { label: d.label, value: d.fieldname };
})
);
if (this.leaderboard_config[this.options.selected_doctype].company_disabled) {
$(this.parent).find("[data-original-title=Company]").hide();
$(this.parent)
.find(`[data-original-title=${__("Company")}]`)
.hide();
} else {
$(this.parent).find("[data-original-title=Company]").show();
$(this.parent)
.find(`[data-original-title=${__("Company")}]`)
.show();
}

this.$sidebar_list.find("li").removeClass("active selected");
Expand Down Expand Up @@ -279,7 +273,7 @@ class Leaderboard {
frappe.utils.setup_search($(me.parent), ".list-item-container", ".list-id");
} else {
me.$graph_area.hide();
me.message = __("No Items Found");
me.message = __("No items found");
me.$container.find(".leaderboard-list").html(me.render_list_view());
}
}
Expand All @@ -300,11 +294,11 @@ class Leaderboard {
}

render_list_header() {
const _selected_filter = this.options.selected_filter.map((i) => frappe.model.unscrub(i));
const _selected_filter = this.options.selected_filter.map((i) => i.label);
const fields = ["rank", "name", this.options.selected_filter_item];
const filters = fields
.map((filter) => {
const col = __(frappe.model.unscrub(filter));
const col = filter.label || __(frappe.model.unscrub(filter));
return `<div class="leaderboard-item list-item_content ellipsis text-muted list-item__content--flex-2
header-btn-base ${filter}
${col && _selected_filter.indexOf(col) !== -1 ? "text-right" : ""}">
Expand Down
1 change: 1 addition & 0 deletions eps/eps/page/user_profile/user_profile.css
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,6 @@
}

.recent-activity {
padding: var(--padding-md);
padding-bottom: 60px;
}
2 changes: 1 addition & 1 deletion eps/eps/page/user_profile/user_profile.html
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ <h4 class="card-title">{%=__("Energy Points") %}</h4>
</div>
</div>
</div>
<div class="recent-activity">
<div class="frappe-card recent-activity">
<div class="recent-activity-title">{%=__("Recent Activity") %}</div>
<div class="recent-activity-list"></div>
<div class="recent-activity-footer"></div>
Expand Down
Loading