mirror of https://github.com/OCA/social.git
[FIX] mail_activity_team: activity count
The user couldn't see the proper count of his own activities. It was allways showing the team activities counter. TT35885pull/896/head
parent
bce10d87af
commit
3f907b02b0
|
@ -14,7 +14,7 @@ class ResUsers(models.Model):
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def systray_get_activities(self):
|
def systray_get_activities(self):
|
||||||
if not self._context.get("team_activities", False):
|
if not self.env.context.get("team_activities"):
|
||||||
return super().systray_get_activities()
|
return super().systray_get_activities()
|
||||||
query = """SELECT m.id, count(*), act.res_model as model,
|
query = """SELECT m.id, count(*), act.res_model as model,
|
||||||
CASE
|
CASE
|
||||||
|
|
|
@ -13,9 +13,11 @@ odoo.define("mail_activity_team.systray.ActivityMenu", function(require) {
|
||||||
this.$filter_buttons = this.$(".o_filter_button");
|
this.$filter_buttons = this.$(".o_filter_button");
|
||||||
this.$my_activities = this.$filter_buttons.first();
|
this.$my_activities = this.$filter_buttons.first();
|
||||||
this.filter = "my";
|
this.filter = "my";
|
||||||
session.user_context = _.extend({}, session.user_context, {
|
this._update_team_activities_context();
|
||||||
team_activities: false,
|
},
|
||||||
});
|
|
||||||
|
_update_team_activities_context: function() {
|
||||||
|
session.user_context.team_activities = this.filter === "team";
|
||||||
},
|
},
|
||||||
|
|
||||||
_updateCounter: function(data) {
|
_updateCounter: function(data) {
|
||||||
|
@ -24,18 +26,13 @@ odoo.define("mail_activity_team.systray.ActivityMenu", function(require) {
|
||||||
},
|
},
|
||||||
|
|
||||||
_onClickFilterButton: function(event) {
|
_onClickFilterButton: function(event) {
|
||||||
var self = this;
|
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
self.$filter_buttons.removeClass("active");
|
this.$filter_buttons.removeClass("active");
|
||||||
var $target = $(event.currentTarget);
|
var $target = $(event.currentTarget);
|
||||||
$target.addClass("active");
|
$target.addClass("active");
|
||||||
self.filter = $target.data("filter");
|
this.filter = $target.data("filter");
|
||||||
|
this._update_team_activities_context();
|
||||||
session.user_context = _.extend({}, session.user_context, {
|
this._updateActivityPreview();
|
||||||
team_activities: self.filter === "team",
|
|
||||||
});
|
|
||||||
|
|
||||||
self._updateActivityPreview();
|
|
||||||
},
|
},
|
||||||
_onActivityFilterClick: function(event) {
|
_onActivityFilterClick: function(event) {
|
||||||
if (this.filter === "my") {
|
if (this.filter === "my") {
|
||||||
|
@ -63,7 +60,7 @@ odoo.define("mail_activity_team.systray.ActivityMenu", function(require) {
|
||||||
[false, "form"],
|
[false, "form"],
|
||||||
],
|
],
|
||||||
search_view_id: [false],
|
search_view_id: [false],
|
||||||
domain: [["activity_team_user_ids", "in", session.uid]],
|
domain: [["activity_team_user_ids", "in", [session.uid]]],
|
||||||
context: context,
|
context: context,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -75,12 +72,11 @@ odoo.define("mail_activity_team.systray.ActivityMenu", function(require) {
|
||||||
return this._super.apply(this, arguments);
|
return this._super.apply(this, arguments);
|
||||||
},
|
},
|
||||||
_getActivityData: function() {
|
_getActivityData: function() {
|
||||||
|
if (this.filter !== "team") {
|
||||||
|
return this._super.apply(this, arguments);
|
||||||
|
}
|
||||||
var self = this;
|
var self = this;
|
||||||
return self._super.apply(self, arguments).then(function() {
|
return self._super.apply(self, arguments).then(function() {
|
||||||
session.user_context = _.extend({}, session.user_context, {
|
|
||||||
team_activities: !session.user_context.team_activities,
|
|
||||||
});
|
|
||||||
|
|
||||||
self._rpc({
|
self._rpc({
|
||||||
model: "res.users",
|
model: "res.users",
|
||||||
method: "systray_get_activities",
|
method: "systray_get_activities",
|
||||||
|
@ -89,7 +85,7 @@ odoo.define("mail_activity_team.systray.ActivityMenu", function(require) {
|
||||||
context: session.user_context,
|
context: session.user_context,
|
||||||
},
|
},
|
||||||
}).then(function(data) {
|
}).then(function(data) {
|
||||||
self.activityCounter += _.reduce(
|
self.activityCounter = _.reduce(
|
||||||
data,
|
data,
|
||||||
function(total_count, p_data) {
|
function(total_count, p_data) {
|
||||||
return total_count + p_data.total_count || 0;
|
return total_count + p_data.total_count || 0;
|
||||||
|
@ -98,9 +94,8 @@ odoo.define("mail_activity_team.systray.ActivityMenu", function(require) {
|
||||||
);
|
);
|
||||||
self.$(".o_notification_counter").text(self.activityCounter);
|
self.$(".o_notification_counter").text(self.activityCounter);
|
||||||
self.$el.toggleClass("o_no_notification", !self.activityCounter);
|
self.$el.toggleClass("o_no_notification", !self.activityCounter);
|
||||||
session.user_context = _.extend({}, session.user_context, {
|
// Unset context after we gather the info to avoid side effects
|
||||||
team_activities: !session.user_context.team_activities,
|
session.user_context.team_activities = false;
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue