[IMP] mail: show late+today activities only in counter

This commit is contained in:
Fabien Pinckaers
2017-07-06 00:18:45 +02:00
parent 34da40a44d
commit f2d492fac3
3 changed files with 29 additions and 19 deletions
+20 -14
View File
@@ -132,33 +132,39 @@ class MailActivity(models.Model):
def create(self, values):
activity = super(MailActivity, self).create(values)
self.env[activity.res_model].browse(activity.res_id).message_subscribe(partner_ids=[activity.user_id.partner_id.id])
self.env['bus.bus'].sendone(
(self._cr.dbname, 'res.partner', activity.user_id.partner_id.id),
{'type': 'activity_updated', 'activity_created': True})
if activity.date_deadline <= fields.Date.today():
self.env['bus.bus'].sendone(
(self._cr.dbname, 'res.partner', activity.user_id.partner_id.id),
{'type': 'activity_updated', 'activity_created': True})
return activity
@api.multi
def write(self, values):
res = super(MailActivity, self).write(values)
if values.get('user_id'):
pre_responsibles = self.mapped('user_id.partner_id')
res = super(MailActivity, self).write(values)
if values.get('user_id'):
for activity in self:
self.env[activity.res_model].browse(activity.res_id).message_subscribe(partner_ids=[activity.user_id.partner_id.id])
self.env['bus.bus'].sendone(
(self._cr.dbname, 'res.partner', activity.user_id.partner_id.id),
{'type': 'activity_updated', 'activity_created': True})
for partner in pre_responsibles:
self.env['bus.bus'].sendone(
(self._cr.dbname, 'res.partner', partner.id),
{'type': 'activity_updated', 'activity_deleted': True})
if activity.date_deadline <= fields.Date.today():
self.env['bus.bus'].sendone(
(self._cr.dbname, 'res.partner', activity.user_id.partner_id.id),
{'type': 'activity_updated', 'activity_created': True})
for activity in self:
if activity.date_deadline <= fields.Date.today():
for partner in pre_responsibles:
self.env['bus.bus'].sendone(
(self._cr.dbname, 'res.partner', partner.id),
{'type': 'activity_updated', 'activity_deleted': True})
return res
@api.multi
def unlink(self):
for activity in self:
self.env['bus.bus'].sendone(
(self._cr.dbname, 'res.partner', activity.user_id.partner_id.id),
{'type': 'activity_updated', 'activity_deleted': True})
if activity.date_deadline <= fields.Date.today():
self.env['bus.bus'].sendone(
(self._cr.dbname, 'res.partner', activity.user_id.partner_id.id),
{'type': 'activity_updated', 'activity_deleted': True})
return super(MailActivity, self).unlink()
@api.multi
+2 -1
View File
@@ -145,7 +145,8 @@ class Users(models.Model):
'total_count': 0, 'today_count': 0, 'overdue_count': 0, 'planned_count': 0,
}
user_activities[activity['model']]['%s_count' % activity['states']] += activity['count']
user_activities[activity['model']]['total_count'] += activity['count']
if activity['states'] in ('today','overdue'):
user_activities[activity['model']]['total_count'] += activity['count']
return user_activities.values()
+7 -4
View File
@@ -185,7 +185,6 @@ var ActivityMenu = Widget.extend({
model: 'res.users',
method: 'activity_user_count',
}).then(function (data) {
self.isCounterUpdated = false;
self.activities = data;
self.activityCounter = _.reduce(data, function(total_count, p_data){ return total_count + p_data.total_count; }, 0);
self.$('.o_notification_counter').text(self.activityCounter);
@@ -239,7 +238,6 @@ var ActivityMenu = Widget.extend({
if (data.activity_deleted && this.activityCounter > 0) {
this.activityCounter --;
}
this.isCounterUpdated = true;
this.$('.o_notification_counter').text(this.activityCounter);
this.$el.toggleClass('o_no_notification', !this.activityCounter);
}
@@ -257,7 +255,12 @@ var ActivityMenu = Widget.extend({
event.stopPropagation();
var $target = $(event.currentTarget);
var context = {};
context['search_default_activities_' + $target.data('filter')] = 1;
if ($target.data('filter')=='my') {
context['search_default_activities_overdue'] = 1;
context['search_default_activities_today'] = 1;
} else {
context['search_default_activities_' + $target.data('filter')] = 1;
}
this.do_action({
type: 'ir.actions.act_window',
name: $target.data('model_name'),
@@ -274,7 +277,7 @@ var ActivityMenu = Widget.extend({
* @param {MouseEvent} event
*/
_onActivityMenuClick: function () {
if (!this._isOpen() && this.isCounterUpdated) {
if (!this._isOpen()) {
this._updateActivityPreview();
}
},