Bloqueando todas las operaciones de borrado

Extendiendo el modelo base de Odoo
15 de mayo de 2024 por
Gustavo Orrillo
| Sin comentarios aún
 

Un rato atrás leyendo "la tribuna de doctrina" (como se autoproclamaba este centenario diario argentino en la época que vivir a doscientos kilómetros de Buenos Aires te exponía a los malones fin de semana de por medio) un artículo sobre la seguridad de datos. Después de leerlo pensé "necesitamos algo que bloquee todos los borrados en Odoo".

Por eso desarrollé un módulo llamado block_unlink el cual hace algo sencillo. Hereda del AbstractModel y extiende el método unlink. Entonces cuando ocurre el borrado mismo, se muestra un mensaje de error indicando que el borrado se encuentra deshabilitado


Notas técnicas

El módulo no hereda de un modelo, sino hereda de AbstractModel, para que sus customizaciones se apliquen a todos los modelos. Luego extiende el método unlink y apenas se invoca, muestra el mensaje de error. Simple pero poderoso concepto.

class BaseModelExtend(models.AbstractModel):
_inherit = 'base'

def unlink(self):
raise ValidationError('No se permite esta operacion')
Gustavo Orrillo 15 de mayo de 2024
Compartir
Categorías
Archivar
Identificarse dejar un comentario