[IMP] mail: show late+today activities only in counter
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user