on_apply evento¶
Quando o método apply de um item é chamado
no cliente ou no
servidor, a aplicação do servidor, por padrão,
gera uma consulta SQL com base nas alterações feitas no conjunto de dados e a executa.
Esse comportamento pode ser alterado escrevendo um manipulador de evento on_apply no módulo do servidor do item.
Às vezes, torna-se necessário executar algum código quando as alterações são salvas,
para todos os itens. Nesse caso, pode-se usar o manipulador de evento on_apply da tarefa
(declarado no módulo do servidor da tarefa).
O código a seguir descreve como esses eventos são tratados:
#...
result = None
if self.task.on_apply:
result = self.task.on_apply(self, delta, params, connection)
if result is None and self.on_apply:
result = self.on_apply(self, delta, params, connection)
if result is None:
result = self.apply_delta(delta, params, connection)
#...
return result
Ele verifica se a tarefa possui um manipulador de evento on_apply.
Se o manipulador de evento on_apply estiver declarado no módulo do servidor da tarefa, ele é executado.
Se o manipulador de evento on_apply da tarefa não estiver declarado ou
o resultado do manipulador for None, o método verifica se o item possui um
manipulador de evento on_apply.
Se estiver declarado no módulo do servidor do item, ele é executado.
Se o resultado retornado pelo manipulador de evento do item for None,
o método apply_delta do item é chamado, que gera a consulta SQL, a executa
e retorna o resultado.