Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
    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