def write(self, values, context=None): if 'salesman' in values: # get the salesman to be notified for removal operation data = { 'type': 'sync', 'description': { 'master': 'activity.activity', 'operation': 'Delete', 'record_ids': json.load(StringIO([self.id])), } } if self.salesman.id: # notify about removal if self.salesman.device_identity: Notification.notify([self.salesman.device_identity], data) # check salesperson to be notified about add operation if values.get('salesman'): # notify about add data['description']['operation'] = 'Add' user = self.env['res.users'].browse([values.get('salesman')]) if user.device_identity: Notification.notify([user.device_identity], data) return super(Activity, self).write(values)
def create(self, values): activity = super(Activity, self).create(values) # if activity is created from web then notify the salesman for which activity is created if activity.salesman.id != activity.create_uid.id: if activity.salesman.device_identity: data = { 'type': 'sync', 'master': 'activity.activity', 'operation': 'Add', 'record_ids': json.load(StringIO([activity.id])), } Notification.notify([activity.salesman.device_identity], data) return activity
def unlink(self): salesman_activities = {} for activity in self: if activity.salesman.device_identity: activities = salesman_activities.get(activity.salesman.device_identity, []) activities += [activity.id] salesman_activities[activity.salesman.device_identity] = activities is_deleted = super(Activity, self).unlink() if is_deleted: for registration_id, activities in salesman_activities.items(): data = { 'type': 'sync', 'master': 'activity.activity', 'operation': 'Delete', 'record_ids': json.load(StringIO(activities)), } Notification.notify([registration_id], data) return is_deleted