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')