diff --git a/frappe/core/doctype/user/user.py b/frappe/core/doctype/user/user.py index 60a8119f10..adc054197a 100644 --- a/frappe/core/doctype/user/user.py +++ b/frappe/core/doctype/user/user.py @@ -12,6 +12,8 @@ from frappe.utils.user import get_system_managers import frappe.permissions import frappe.share import re +import json + from frappe.limits import get_limits from frappe.website.utils import is_signup_enabled from frappe.utils.background_jobs import enqueue @@ -1086,4 +1088,12 @@ def generate_keys(user): user_details.save() return {"api_secret": api_secret} - frappe.throw(frappe._("Not Permitted"), frappe.PermissionError) \ No newline at end of file + frappe.throw(frappe._("Not Permitted"), frappe.PermissionError) + +@frappe.whitelist() +def update_profile_info(profile_info): + profile_info = json.loads(profile_info) + user = frappe.get_doc('User', frappe.session.user) + user.update(profile_info) + user.save() + return user \ No newline at end of file diff --git a/frappe/public/js/frappe/social/Home.vue b/frappe/public/js/frappe/social/Home.vue index cf112dcb92..7aa752e6db 100644 --- a/frappe/public/js/frappe/social/Home.vue +++ b/frappe/public/js/frappe/social/Home.vue @@ -60,10 +60,6 @@ export default { this.show_preview = false; }) - frappe.app_updates.on('user_image_updated', () => { - this.$root.$emit('user_image_updated') - }) - this.update_primary_action(frappe.get_route()[1]) }, mounted() { diff --git a/frappe/public/js/frappe/social/components/EnergyPointHistory.vue b/frappe/public/js/frappe/social/components/EnergyPointHistory.vue index 87b9a3e339..bf9b765a4c 100644 --- a/frappe/public/js/frappe/social/components/EnergyPointHistory.vue +++ b/frappe/public/js/frappe/social/components/EnergyPointHistory.vue @@ -22,13 +22,13 @@ diff --git a/frappe/public/js/frappe/social/pages/UserList.vue b/frappe/public/js/frappe/social/pages/UserList.vue index 2007593ce2..3983d39aa8 100644 --- a/frappe/public/js/frappe/social/pages/UserList.vue +++ b/frappe/public/js/frappe/social/pages/UserList.vue @@ -3,47 +3,53 @@ @@ -61,17 +67,33 @@ export default { filter_users_by: null, sort_users_by: 'energy_points', sort_order: 'desc', - show_log_for: null - } + show_log_for: null, + period_options: ['Lifetime', 'Last Month', 'Last Week', 'Today'], + period: 'Lifetime' + }; }, computed: { + from_date() { + const days_to_deduct = { + 'Last Week': 7, + 'Last Month': 30 + }; + if (this.period === 'Lifetime') { + return null; + } + if (this.period === 'Today') { + return frappe.datetime.get_today(); + } + return frappe.datetime.add_days(moment(), -days_to_deduct[this.period]); + }, filtered_users() { let filtered = this.users.slice(); - if (this.filter_users_by) { filtered = filtered.filter(user => - user.fullname.toLowerCase().includes(this.filter_users_by.toLowerCase()) - ) + user.fullname + .toLowerCase() + .includes(this.filter_users_by.toLowerCase()) + ); } if (this.sort_users_by) { @@ -89,15 +111,23 @@ export default { } if (this.sort_order === 'desc') { - return_value = -return_value + return_value = -return_value; } - return return_value + return return_value; }); } return filtered; } }, + watch: { + period() { + this.fetch_users_energy_points_and_update_users(); + } + }, + mounted() { + $('[data-toggle="tooltip"]').tooltip(); + }, created() { const standard_users = ['Administrator', 'Guest', 'guest@example.com']; this.users = frappe.boot.user_info; @@ -111,37 +141,42 @@ export default { }, methods: { get_avatar(user) { - return frappe.avatar(user, 'avatar-medium') + return frappe.avatar(user, 'avatar-medium'); }, go_to_profile_page(user) { - frappe.set_route('social', 'profile', user) + frappe.set_route('social', 'profile', user); }, fetch_users_energy_points_and_update_users() { - frappe.xcall( - 'frappe.social.doctype.energy_point_log.energy_point_log.get_user_energy_and_review_points' - ).then(data => { - let users = this.users.slice(); - this.users = users.map(user => { - const points = data[user.name] || {}; - user.energy_points = points.energy_points || 0; - user.review_points = points.review_points || 0; - user.given_points = points.given_points || 0; - return user; + frappe + .xcall( + 'frappe.social.doctype.energy_point_log.energy_point_log.get_user_energy_and_review_points', + { + from_date: this.from_date + } + ) + .then(data => { + let users = this.users.slice(); + this.users = users.map(user => { + const points = data[user.name] || {}; + user.energy_points = points.energy_points || 0; + user.review_points = points.review_points || 0; + user.given_points = points.given_points || 0; + return user; + }); }); - }); }, toggle_log(user) { if (this.show_log_for === user) { - this.show_log_for = null + this.show_log_for = null; } else { - this.show_log_for = user + this.show_log_for = user; } } } -} +};