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
|
||||
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()
|
||||
query = """SELECT m.id, count(*), act.res_model as model,
|
||||
CASE
|
||||
|
|
|
@ -13,9 +13,11 @@ odoo.define("mail_activity_team.systray.ActivityMenu", function(require) {
|
|||
this.$filter_buttons = this.$(".o_filter_button");
|
||||
this.$my_activities = this.$filter_buttons.first();
|
||||
this.filter = "my";
|
||||
session.user_context = _.extend({}, session.user_context, {
|
||||
team_activities: false,
|
||||
});
|
||||
this._update_team_activities_context();
|
||||
},
|
||||
|
||||
_update_team_activities_context: function() {
|
||||
session.user_context.team_activities = this.filter === "team";
|
||||
},
|
||||
|
||||
_updateCounter: function(data) {
|
||||
|
@ -24,18 +26,13 @@ odoo.define("mail_activity_team.systray.ActivityMenu", function(require) {
|
|||
},
|
||||
|
||||
_onClickFilterButton: function(event) {
|
||||
var self = this;
|
||||
event.stopPropagation();
|
||||
self.$filter_buttons.removeClass("active");
|
||||
this.$filter_buttons.removeClass("active");
|
||||
var $target = $(event.currentTarget);
|
||||
$target.addClass("active");
|
||||
self.filter = $target.data("filter");
|
||||
|
||||
session.user_context = _.extend({}, session.user_context, {
|
||||
team_activities: self.filter === "team",
|
||||
});
|
||||
|
||||
self._updateActivityPreview();
|
||||
this.filter = $target.data("filter");
|
||||
this._update_team_activities_context();
|
||||
this._updateActivityPreview();
|
||||
},
|
||||
_onActivityFilterClick: function(event) {
|
||||
if (this.filter === "my") {
|
||||
|
@ -63,7 +60,7 @@ odoo.define("mail_activity_team.systray.ActivityMenu", function(require) {
|
|||
[false, "form"],
|
||||
],
|
||||
search_view_id: [false],
|
||||
domain: [["activity_team_user_ids", "in", session.uid]],
|
||||
domain: [["activity_team_user_ids", "in", [session.uid]]],
|
||||
context: context,
|
||||
});
|
||||
}
|
||||
|
@ -75,12 +72,11 @@ odoo.define("mail_activity_team.systray.ActivityMenu", function(require) {
|
|||
return this._super.apply(this, arguments);
|
||||
},
|
||||
_getActivityData: function() {
|
||||
if (this.filter !== "team") {
|
||||
return this._super.apply(this, arguments);
|
||||
}
|
||||
var self = this;
|
||||
return self._super.apply(self, arguments).then(function() {
|
||||
session.user_context = _.extend({}, session.user_context, {
|
||||
team_activities: !session.user_context.team_activities,
|
||||
});
|
||||
|
||||
self._rpc({
|
||||
model: "res.users",
|
||||
method: "systray_get_activities",
|
||||
|
@ -89,7 +85,7 @@ odoo.define("mail_activity_team.systray.ActivityMenu", function(require) {
|
|||
context: session.user_context,
|
||||
},
|
||||
}).then(function(data) {
|
||||
self.activityCounter += _.reduce(
|
||||
self.activityCounter = _.reduce(
|
||||
data,
|
||||
function(total_count, p_data) {
|
||||
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.$el.toggleClass("o_no_notification", !self.activityCounter);
|
||||
session.user_context = _.extend({}, session.user_context, {
|
||||
team_activities: !session.user_context.team_activities,
|
||||
});
|
||||
// Unset context after we gather the info to avoid side effects
|
||||
session.user_context.team_activities = false;
|
||||
});
|
||||
});
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue